From 9fe507d675ac80decbe714c4fc62ce7d2380ba2f Mon Sep 17 00:00:00 2001 From: probablycorey Date: Wed, 27 Nov 2013 10:59:11 -0800 Subject: [PATCH 01/11] Update readme and build instructions --- README.md | 25 ++++++------------------- docs/building-atom.md | 7 ++++--- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index e35858487..7562b6015 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,17 @@ -# Atom — Futuristic Text Editing +# Atom — The hackable, ~~collaborative~~ editor of tomorrow! -![atom](https://s3.amazonaws.com/speakeasy/apps/icons/27/medium/7db16e44-ba57-11e2-8c6f-981faf658e00.png) +![Atom](https://www.atom.io/assets/logo-e793a022e41eff6879fd6205bc06ef92.png) -Check out our [guides](https://www.atom.io/docs/latest/) and [API documentation](https://www.atom.io/docs/api/v34.0.0/api/) +Check out our [guides and API documentation](https://www.atom.io/docs/latest/) ## Installing -Download the latest Atom release from [speakeasy](https://speakeasy.githubapp.com/apps/27). +Download the latest [Atom release](https://github.com/atom/atom/releases/latest). -It will automatically update when a new release is available. +Atom will automatically update when a new release is available. ## Building -### Requirements - - * Mountain Lion - * Looking for Windows support? Read [here][building]. - * Boxen (Obviously Atom won't release with this requirement) - -### Installation - - 1. `gh-setup atom` - - 2. `cd ~/github/atom` - - 3. `script/build` - + Follow the instructions in the [build docs][building] [building]: https://github.com/atom/atom/blob/master/docs/building-atom.md diff --git a/docs/building-atom.md b/docs/building-atom.md index b2ea2414a..4b96be9a0 100644 --- a/docs/building-atom.md +++ b/docs/building-atom.md @@ -6,10 +6,11 @@ atom][download]. ## OSX -* Use Mountain Lion +* Use OS X 10.8 or later * Install the latest node 0.10.x release (32bit preferable) +* Install cmake * Clone [atom][atom-git] to `~/github/atom` -* Run `~/github/atom/script/bootstrap` +* Run `~/github/atom/script/build` ## Windows @@ -26,7 +27,7 @@ atom][download]. * Use the Windows GitHub shell and cd into `C:\Users\\github\atom` * Run `script\bootstrap` -[download]: http://www.atom.io +[download]: https://github.com/atom/atom/releases/latest [win-node]: http://nodejs.org/download/ [win-python]: http://www.python.org/download/ [win-github]: http://windows.github.com/ From 1f20dbf16d7b3288336c91e4d8cf6714397bcd3e Mon Sep 17 00:00:00 2001 From: probablycorey Date: Wed, 27 Nov 2013 11:19:37 -0800 Subject: [PATCH 02/11] Remove philosophy portion from contributions. I feel like these suggestions are too subjective. I think we could expand upon these ideas in a separate document, but they are a bit overwhelming for new contributors. --- CONTRIBUTING.md | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 95089b04a..1a334b694 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,34 +34,3 @@ * Temporary directory is not `/tmp` on Windows, use `os.tmpdir()` when possible -## Philosophy - -### Write Beautiful Code -Once you get something working, take the time to consider whether you can achieve it in a more elegant way. We're planning on open-sourcing Atom, so let's put our best foot forward. - -### When in doubt, pair-up -Pairing can be an effective and fun way to pass on culture, knowledge, and taste. If you can find the time, we encourage you to work synchronously with other community members of all experience levels to help the knowledge-mulching process. It doesn't have to be all the time; a little pairing goes a long way. - -### Write tests, and write them first -The test suite keeps protects our codebase from the ravages of entropy, but it only works when we have thorough coverage. Before you write implementation code, write a failing test proving that it's needed. - -### Leave the test suite better than you found it -Consider how the specs you are adding fit into the spec-file as a whole. Is this the right place for your spec? Does the spec need to be reorganized now that you're adding this extra dimension? Specs are only as useful as the next person's ability to understand them. - -### Solve today's problem -Avoid adding flexibility that isn't needed *today*. Nothing is ever set in stone, and we can always go back and add flexibility later. Adding it early just means we have to pay for complexity that we might not end up using. - -### Favor clarity over brevity or cleverness. -Three lines that someone else can read are better than one line that's tricky. - -### Don't be defensive -Only catch exceptions that are truly exceptional. Assume that components we control will honor their contracts. If they don't, the solution is to find and fix the problem in code rather than cluttering the code with attempts to foresee all potential issues at runtime. - -### Don't be afraid to add classes and methods -Code rarely suffers from too many methods and classes, and often suffers from too few. Err on the side of numerous short, well-named methods. Pull out classes with well-defined roles. - -### Rip shit out -Don't be afraid to delete code. Don't be afraid to rewrite something that needs to be refreshed. If it's in version control, we can always resurrect it. - -### Maintain a consistent level of abstraction -Every line in a method should read at the same basic level of abstraction. If there's a section of a method that goes into a lot more detail than the rest of the method, consider extracting a new method and giving it a clear name. From 1b5762274cc6f139035b389ade3141dcd110f5b2 Mon Sep 17 00:00:00 2001 From: probablycorey Date: Wed, 27 Nov 2013 11:20:22 -0800 Subject: [PATCH 03/11] Update contribution guidelines --- CONTRIBUTING.md | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1a334b694..09ac1812e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,34 +3,31 @@ ## Issues * Include screenshots and animated GIFs whenever possible, they are immensely - helpful + helpful. * Include the behavior you expected to happen and other places you've seen that behavior such as Emacs, vi, Xcode, etc. - * Check the Console app for stack traces to include if reporting a crash - * Check the Dev tools (`alt-cmd-i`) for errors and stack traces to include + * Check the Console app for stack traces to include if reporting a crash. + * Check the Dev tools (`alt-cmd-i`) for errors and stack traces to include. -## Code +## Pull Requests + * Include screenshots and animated GIFs whenever possible. * Follow the [JavaScript](https://github.com/styleguide/javascript) and [CSS](https://github.com/styleguide/css) styleguides * Include thoughtfully worded [Jasmine](http://pivotal.github.com/jasmine/) specs - * Add 3rd-party packages as a `package.json` dependency + * Avoid placing files in `vendor`. 3rd-party packages should be added as a + `package.json` dependency. * Commit messages are in the present tense - * Commit messages that improve the format of the code start with :lipstick: - * Commit messages that improve the performance start with :racehorse: - * Commit messages that remove memory leaks start with :non-potable_water: - * Commit messages that improve documentation start with :memo: - * Files end with a newline + * Files end with a newline. + * Requires should be in the following order: + * Built in Atom and Atom Shell modules + * Node Modules + * Local Modules (using relative links) * Class variables and methods should be in the following order: - * Class variables (variables starting with a `@`) * Class methods (methods starting with a `@`) - * Instance variables * Instance methods * Beware of platform differences - * The home directory is `process.env.USERPROFILE` on Windows, while on OS X - and Linux it's `process.env.HOME` - * Path separator is `\` on Windows, and is `/` on OS X and Linux, so use - `path.join` to concatenate filenames + * Use `fs.getHomeDirectory()` to get home directory. + * Use `path.join()` to concatenate filenames. * Temporary directory is not `/tmp` on Windows, use `os.tmpdir()` when possible - From e15b96691e591ab25f28418c476d8331b58ea091 Mon Sep 17 00:00:00 2001 From: probablycorey Date: Wed, 27 Nov 2013 13:29:49 -0800 Subject: [PATCH 04/11] Sort node modules to the top of require list --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 09ac1812e..4de2057c2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,8 +20,8 @@ * Commit messages are in the present tense * Files end with a newline. * Requires should be in the following order: - * Built in Atom and Atom Shell modules * Node Modules + * Built in Atom and Atom Shell modules * Local Modules (using relative links) * Class variables and methods should be in the following order: * Class methods (methods starting with a `@`) From 94d4ad618caa00a0b8b228a40cd46e4d3192fba5 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 4 Dec 2013 08:48:22 -0800 Subject: [PATCH 05/11] Add require(atom) for home directory example --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4de2057c2..31e08a8fe 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,7 +27,7 @@ * Class methods (methods starting with a `@`) * Instance methods * Beware of platform differences - * Use `fs.getHomeDirectory()` to get home directory. + * Use `require('atom').fs.getHomeDirectory()` to get the home directory. * Use `path.join()` to concatenate filenames. * Temporary directory is not `/tmp` on Windows, use `os.tmpdir()` when possible From 49a32dd2dcfc059fa46b34b929101253b2718f09 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 4 Dec 2013 08:48:45 -0800 Subject: [PATCH 06/11] Remove cmake dependency --- docs/building-atom.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/building-atom.md b/docs/building-atom.md index 4b96be9a0..03c3120c3 100644 --- a/docs/building-atom.md +++ b/docs/building-atom.md @@ -8,7 +8,6 @@ atom][download]. * Use OS X 10.8 or later * Install the latest node 0.10.x release (32bit preferable) -* Install cmake * Clone [atom][atom-git] to `~/github/atom` * Run `~/github/atom/script/build` From e03a7c336dc009ec62d142b85574ee8d0f24ba7b Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 4 Dec 2013 08:50:07 -0800 Subject: [PATCH 07/11] Add example to require ordering section --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 31e08a8fe..ee65433ea 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,9 +20,9 @@ * Commit messages are in the present tense * Files end with a newline. * Requires should be in the following order: - * Node Modules - * Built in Atom and Atom Shell modules - * Local Modules (using relative links) + * Built in Node Modules (such as `path`) + * Built in Atom and Atom Shell Modules (such as `atom`, `shell`) + * Local Modules (using relative paths) * Class variables and methods should be in the following order: * Class methods (methods starting with a `@`) * Instance methods From 6891922e07f6172cec91551876757bae812b3546 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 4 Dec 2013 08:50:43 -0800 Subject: [PATCH 08/11] Use friendlier emoji --- CONTRIBUTING.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee65433ea..a3f65ee1e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,4 @@ -# :rotating_light: Contributing to Atom :rotating_light: - +# :tada: Contributing to Atom :tada: ## Issues * Include screenshots and animated GIFs whenever possible, they are immensely From 57c0261f96fcd9aa6e30c6ea037c08e2f6d2bf62 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 4 Dec 2013 08:53:24 -0800 Subject: [PATCH 09/11] Add Git commit messages section --- CONTRIBUTING.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a3f65ee1e..ccbc3c424 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,6 @@ specs * Avoid placing files in `vendor`. 3rd-party packages should be added as a `package.json` dependency. - * Commit messages are in the present tense * Files end with a newline. * Requires should be in the following order: * Built in Node Modules (such as `path`) @@ -30,3 +29,12 @@ * Use `path.join()` to concatenate filenames. * Temporary directory is not `/tmp` on Windows, use `os.tmpdir()` when possible + +## Git Commit Messages + * Use the present tense + * Reference issues and pull requests liberally + * Consider starting the commit message with an applicable emoji: + * :lipstick: when improving the format/structure of the code + * :racehorse: when improving performance + * :non-potable_water: when plugging memory leaks + * :memo: when writing docs From f0825ca526922e92cd76f9823384dfa8ee7168b0 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 4 Dec 2013 08:55:19 -0800 Subject: [PATCH 10/11] Add simple explanation --- CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ccbc3c424..19bf061d1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,8 @@ # :tada: Contributing to Atom :tada: +These are just guidelines, not rules, use your best judgement and feel free +to propose changes to this document in a pull request. + ## Issues * Include screenshots and animated GIFs whenever possible, they are immensely helpful. From cececc2297cd40175fe461c99b6ca5518814e158 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 4 Dec 2013 08:58:04 -0800 Subject: [PATCH 11/11] Update to new logo url --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7562b6015..cb49d621e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Atom — The hackable, ~~collaborative~~ editor of tomorrow! -![Atom](https://www.atom.io/assets/logo-e793a022e41eff6879fd6205bc06ef92.png) +![Atom](https://www.atom.io/assets/logo-f725ebd356beb17f950b172f03d37244.png) -Check out our [guides and API documentation](https://www.atom.io/docs/latest/) +Check out our [guides and API documentation](https://www.atom.io/docs/latest/). ## Installing @@ -12,6 +12,6 @@ Atom will automatically update when a new release is available. ## Building - Follow the instructions in the [build docs][building] +Follow the instructions in the [build docs][building]. [building]: https://github.com/atom/atom/blob/master/docs/building-atom.md