DEV: Clean up .gitignore (#12981)

DEV: Clean up .gitignore (#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
diff --git a/.gitignore b/.gitignore
index 5de911e..8aea19b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,33 +1,26 @@
-# See for more about ignoring files.
-# If you find yourself ignoring temporary files generated by your text editor
-# or operating system, you probably want to add a global ignore instead:
-#   git config --global core.excludesfile ~/.gitignore_global
-# Ignore bundler config
+# `discourse_dev` gem
 # Ignore the default SQLite database and db dumps
@@ -38,120 +31,29 @@ config/discourse.conf
-# Ignore all logfiles and tempfiles.
-# Ignore plugins except for the bundled ones.
+# Plugins except for the bundled ones
-# Ignore Eclipse .project file
-# Ignore Eclipse .buildpath file
-# Ignore byebug history
-# Ignore RubyMine settings
-# Ignore gem that is copied in
-# Vim temp files
-# don't check in multisite config
-# don't check in my renamed multisite config as well :)
-# Scripts used for downloading/refreshing db
-# .procfile
-# .env, local environment variables for use with foreman
-# exclude our git version file for now
-# ignore the Ruby Version manager (rvm)
-# ignore jetbrains ide file
-# vim swap
-# ignore nodejs files
-# Vagrant
+# Front-end
-# ignore auto-generated plugin js assets
+# Auto-generated plugin JS assets
-# ignore generated api documentation files
+# Generated API documentation files
-# ignore VSCode config files
-# ignore direnv
-# ember-cli generated
-# Copyright Deposits
-# file used with `discourse_dev` gem in development environment.
diff --git a/bin/rubocop b/bin/rubocop
new file mode 100755
index 0000000..d0c4882
--- /dev/null
+++ b/bin/rubocop
@@ -0,0 +1,29 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+# This file was generated by Bundler.
+# The application 'rubocop' is installed as part of a gem, and
+# this file is here to facilitate running it.
+require "pathname"
+ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
+bundle_binstub = File.expand_path("../bundle", __FILE__)
+if File.file?(bundle_binstub)
+  if, 300) =~ /This file was generated by Bundler/
+    load(bundle_binstub)
+  else
+    abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
+Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
+  end
+require "rubygems"
+require "bundler/setup"
+load Gem.bin_path("rubocop", "rubocop")

GitHub sha: 53c06442

This commit appears in #12981 which was approved by eviltrout and pmusaraj. It was merged by CvX.