I guess the first time you did not rebuild the entire solution you only rebuilt the Web project mojoPortal.Web so when you published it did not have all the features.
can you put the machineKey setting into the user.config file or does it have to be in the web.config file? (have not tried it). Just curious as if you cannot, then you pretty much have to edit the web.config file so it wouldn;t make any sense mocing the DB connection string to the user.config file ... would it?
No, you cannot put anything in user.config except for settings from the <appSettings section of Web.config. While it is true that you will have to edit the web.config during upgrades for things such as the machine key, having fewer things to edit in Web.config during upgrades is more convenient than having more things to edit, so putting the database connection string in user.config as well as other settings from <appSettings that we have changed from the default values into user.config helps.
You are right there are a couple of incorrect file references for scripts in the mojoPortal.Features.UI project, I have fixed that in the source code repository. However that should not have any impact on publishing because you should not publish mojoPortal.Features.UI directly, you should only publish mojoPortal.Web. The files for features are copied up to the Web folder during post build events which is why you must rebuild the entire solution in order to get all the features, otherwise the files don't exist beneath the Web folder and therefore are not included during publishing.
See also Packaging and Deployment in the developer docs.
Best,
Joe