DEV: Clean up .gitignore (PR #12981)

(inspired by @martin-brennan’s recent adventure with tags exclusion)

tl;dr: some of it is obsolete, some is dev-env specific and should live in your ~/.gitignore.

To enable global gitignore (~/.gitignore) run:

git config --global core.excludesFile '~/.gitignore'

Then create that file and add your VIM/VSCode/Sublime/Emacs/Eclipse/RubyMine/JetBrains/macOS/Arch/Windows 95-specific stuff.

Reasons for removal:

  • bin - never really ignored, all the files are checked in
  • .DS_Store, ._.DS_Store - OS specific
  • .sass-cache/*, /.bundle, /bundle/*, /cache, /logfile, !/plugins/discourse-nginx-performance-report, MiniProfiler/Ruby/rack-mini-profiler-2.0.1a.gem, config/fog_credentials.yml, /public/stylesheet-cache/*, script/download_db, script/refresh_db, config/version.rb - no longer used?
  • /log/*.log - covered by /log
  • bootsnap-load-path-cache, bootsnap-compile-cache - bootsnap now keeps its trash temporary files in /tmp
  • /.project, /.buildpath, /.byebug_history, /.idea, discourse.sublime-workspace, *~, *.swp, *.swo, *.swm, config/multisite1.yml, .rvmrc, .ruby-version, .ruby-gemset, .rbenv, bundler_stubs/*, *.db, *.iml, *.swn, /package-lock.json, .vscode, .envrc, tags - dev-env specific, see the note at the top of the commit


Linting failure is because ember-template-lint was previously ignoring app/assets/javascripts/discourse/app/templates/tags/show.hbs

I’m good with this. In general I agree people should use global stuff for their system specific things.

Alright, let’s pull all the bandaids :grinning_face_with_smiling_eyes:

I think this warrants a notice on meta for developers.

Hopefully this saves someone else some pain :sweat:. Thanks!

This pull request has been mentioned on Discourse Meta. There might be relevant details there: