Consider gitignoring some files to keep the repo from being dirty all the time

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   composer.lock
	modified:   library/vendor/autoload.php
	modified:   library/vendor/composer/ClassLoader.php
	modified:   library/vendor/composer/autoload_real.php
	modified:   sites/default/sqlconf.php
 

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%01^012^012825CE%%general_function_argument.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%03^037^03754EA8%%general_list.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%03^03B^03B2A3BF%%general_edit.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%12/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%1E/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%20/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%35^353^353F1EA5%%general_lookup.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%36^36D^36D22E87%%general_edit.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%58^584^58479605%%general_fragment.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%5B/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%61/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%61^618^61835302%%general_new.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%76/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%85/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%8B^8B4^8B421EDB%%general_list.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%96^96C^96C0BEE9%%general_new.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%A8/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%A9^A90^A90BB8E3%%general_new.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%B0^B0E^B0E8718F%%annotate_new.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%B2^B24^B24910D7%%general_list.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%BF/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%C2^C2D^C2DA4E8D%%general_list.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%C9/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%CA^CAB^CABCC49D%%general_list.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%CB^CB2^CB2C7511%%general_list.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%EC^EC5^EC5593AF%%general_upload.html.php
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%F1/
	interface/main/calendar/modules/PostCalendar/pntemplates/compiled/%%F7^F7B^F7BAC3B5%%general_list.html.php
	sites/default/edi/2017-04-12-0923-batch.txt
	sites/default/edi/2017-06-26-1029-batch.pdf
	sites/default/edi/process_bills.log
	sites/default/letter_templates/autosaved
	sites/default/letter_templates/testThese should

These should probably be gitignored…

/edi should not have anything in the actual repo, and the gitignore files for that are typically added by the installer…as most installations do not run directly as a git repository…though that is something that should be considered, especially for demo stuff. The PostCalendar system is going bye-bye completely with all the rest of the smarty template stuff, and has been a bigger pain than Robby is even making it out to be. These templates grow, so the whole /compiled directory should be gitignored. There should be (somewhere) a guide to everything that should be treated this way, as indicated by the normal upgrade process, but generally speaking the whole /sites directory is generally best to ignore as well.

Robby, We can’t very well include a gitignore with the base code (I think), but I think everything you are saying is is necessary for the demo sites. What would you like to see done?

EDIT: Well, actually, I think you said what you think should be done (though the config file would have to be a local thing I think, and the calendar template stuff is typical cleared via the UI before doing an upgrade), so I guess my real question is “Do those composer files actually do anything for the typical user at all?” If not, then we should not have them unless it is actually managing the darn dependencies. Currently, it is not. Each time one of our guru code monkeys adds one of those composer thingies, more junk is added, typically with a mess of libraries that are not needed and are not centralized. Composer is not a part of the actual install process, nor is it helping keep anything simple, organized, or anything else. It is also nearly impossible to use with Windows. Unless the whole application refers to an autoload to handle libraries, then it is just adding to the mess.

That is exactly where you add it :wink: Unless they’re being tracked for a reason…you could still have the conf file but have it named something like sqlconf.php.example and then have people rename it – or have the installer rename it – but ignore sqlconf.php – there are other ways to mitigate this – you could use dotenv, which the installer can handle probably as well.

When a new developer clones your codebase, they will have an additional one-time step to manually copy the .env.example file to .env and fill-in their own values (or get any sensitive values from a project co-worker).

Seems like what we do now re:dotenv. I guess the real answer is instead of including another project dependency, if there is some big issue with repos (only used by devs that should know what they are up to), then have the gitignore included (unless using GIT as a backup method…ooops, breaks that), and have setup generated the config when it runs.