This is all prefaced with "as I understand it".  I'd love to know the absolute truth, but want to give you feedback on what I understand without first doing googling.

`.bashrc` should only be about lightweight things like environmental variables, as even non-interactive bash processes will source this file unless explicitly told otherwise.  `.profile` and/or `.bash_profile`, on the other hand, are sourced in interactive bash shells (login shells) and typically contain interactive-y things like aliases and functions.