From b1f1eea71ef563b2477da6022054e200faca6030 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Mon, 6 Jan 2014 13:07:49 -0500 Subject: [PATCH 1/7] Docs: Reduce contributing guidelines by linking to contribute.jquery.org --- CONTRIBUTING.md | 135 ++++++------------------------------------------ 1 file changed, 15 insertions(+), 120 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7b92529f495..e2f9897d494 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,24 +1,22 @@ # Contributing to jQuery UI -1. [Getting Involved](#getting-involved) -2. [Discussion](#discussion) -3. [How To Report Bugs](#how-to-report-bugs) -4. [jQuery UI Coding Standards](#jquery-ui-coding-standards) -5. [Tips For Bug Patching](#tips-for-bug-patching) +Welcome! Thanks for your interest in contributing to jQuery UI. Most of our information on how to contribute to this and all other jQuery Foundation projects is over at [contribute.jquery.org](http://contribute.jquery.org). You'll definitely want to take a look at the articles on contributing [code](http://contribute.jquery.org/code). +You may also want to take a look at our [commit & pull request guide](http://contribute.jquery.org/commits-and-pull-requests/) and [style guides](http://contribute.jquery.org/style-guide/) for instructions on how to maintain your fork and submit your code. Before we can merge any pull request, we'll also need you to sign our [contributor license agreement](http://contribute.jquery.org/cla). +You can find us on [IRC](http://irc.jquery.org), specifically in #jqueryui-dev should you have any questions. If you've never contributed to open source before, we've put together [a short guide with tips, tricks, and ideas on getting started](http://contribute.jquery.org/open-source/). ## Getting Involved There are a number of ways to get involved with the development of jQuery UI. Even if you've never contributed code to an Open Source project before, we're always looking for help identifying bugs, writing and reducing test cases and documentation. -This is the best way to contribute to jQuery UI. Please read through the full guide detailing [How to Report Bugs](#how-to-report-bugs). +This is the best way to contribute to jQuery UI. Please read through the full guide detailing [How to Report Bugs](http://contribute.jquery.org/bug-reports/). ## Discussion ### Forum and IRC -The jQuery UI development team frequently tracks posts on the [Developing jQuery UI Forum](http://forum.jquery.com/developing-jquery-ui). If you have longer posts or questions please feel free to post them there. If you think you've found a bug please [file it in the bug tracker](#how-to-report-bugs). +The jQuery UI development team frequently tracks posts on the [Developing jQuery UI Forum](http://forum.jquery.com/developing-jquery-ui). If you have longer posts or questions please feel free to post them there. If you think you've found a bug please [file it in the bug tracker](http://contribute.jquery.org/bug-reports/). Additionally most of the jQuery UI development team can be found in the [#jqueryui-dev](http://webchat.freenode.net/?channels=jqueryui-dev) IRC channel on irc.freenode.net. @@ -30,42 +28,12 @@ The meeting is held in the [#jquery-meeting](http://webchat.freenode.net/?channe Past Meeting Notes: [2008 - 2011](https://docs.google.com/spreadsheet/ccc?key=0AusvKVL7jmFUcHVBQk9tMUxkRGl0emVwZGdLd0QtUlE), -[2012 - current](https://docs.google.com/spreadsheet/ccc?key=0ArIM4UVbwE-3dFg1T0k4VlE1bF82Nm9tbW90cVNxN0E) +[2012 - 2013](https://docs.google.com/spreadsheet/ccc?key=0ArIM4UVbwE-3dFg1T0k4VlE1bF82Nm9tbW90cVNxN0E) +[2014 - present](https://docs.google.com/spreadsheet/ccc?key=0AgyHrN8YnS0IdER6clpleEd6WnBrRTgybnhUSTVMRUE) -## How to Report Bugs - -### Make sure it is a jQuery UI bug - -Many bugs reported to our bug tracker are actually bugs in user code, not in jQuery UI code. Keep in mind that just because your code throws an error and the console points to a line number inside of jQuery or jQuery UI, this does *not* mean the bug is a jQuery UI bug. - -If you are new to jQuery and/or jQuery UI, it is usually a much better idea to ask for help first in the [Using jQuery Forum](http://forum.jquery.com/using-jquery), the [Using jQuery UI Forum](http://forum.jquery.com/using-jquery-ui) or the [jQuery IRC channel](http://webchat.freenode.net/?channels=%23jquery). You will get much quicker support, and you will help avoid tying up the jQuery UI team with invalid bug reports. These same resources can also be useful if you want to confirm that your bug is indeed a bug in jQuery UI before filing any tickets. - - -### Disable any browser extensions - -Make sure you have reproduced the bug with all browser extensions and add-ons disabled, as these can sometimes cause things to break in interesting and unpredictable ways. Try using incognito, stealth or anonymous browsing modes. - - -### Try the latest version of jQuery UI - -Bugs in old versions of jQuery UI may have already been fixed. In order to avoid reporting known issues, make sure you are always testing against the latest stable release. - -### Try an older version of jQuery UI - -Sometimes, bugs are introduced in newer versions of jQuery UI that do not exist in previous versions. When possible, it can be useful to try testing with an older release. - -### Reduce, reduce, reduce! - -When you are experiencing a problem, the most useful thing you can possibly do is to [reduce your code](http://webkit.org/quality/reduction.html) to the bare minimum required to reproduce the issue. This makes it *much* easier to isolate and fix the offending code. Bugs that are reported without reduced test cases generally take much longer to fix than bugs that are submitted with them, so you really should try to do this if at all possible. - -## jQuery UI Coding Standards - -See: [jQuery UI Coding Standards](http://wiki.jqueryui.com/w/page/12137737/Coding%20standards) - ## Tips For Bug Patching - ### Environment: localhost w/ PHP, Node & Grunt jQuery UI uses node & gruntjs to automate the building and validation of source code. @@ -75,15 +43,13 @@ Some tests depend on PHP running locally, so make sure you have the following in * Some kind of localhost server program that supports PHP (any will do) * Node.js * NPM (comes with the latest version of Node.js) -* Grunt (install with: `npm install grunt -g` - +* Grunt (install with: `npm install -g grunt` Maintaining a list of platform specific instructions is outside of the scope of this document and there is plenty of existing documentation for the above technologies. - ### Build a Local Copy of jQuery UI -Create a fork of the jQuery UI repo on github at http://github.com/jquery/jquery-ui +Create a fork of the jQuery UI repo on GitHub at http://github.com/jquery/jquery-ui Change directory to your web root directory, whatever that might be: @@ -91,25 +57,25 @@ Change directory to your web root directory, whatever that might be: $ cd /path/to/your/www/root/ ``` -Clone your jQuery UI fork to work locally +Clone your jQuery UI fork to work locally. ```bash $ git clone git@github.com:username/jquery-ui.git ``` -Change directory to the newly created dir jquery-ui/ +Change directory to the newly created directory. ```bash $ cd jquery-ui ``` -Add the jQuery master as a remote. I label mine "upstream" +Add the official jQuery repository as a remote. We recommend naming it "upstream". ```bash $ git remote add upstream git://github.com/jquery/jquery-ui.git ``` -Get in the habit of pulling in the "upstream" master to stay up to date as jQuery UI receives new commits +Get in the habit of pulling in the "upstream" master to stay up to date as jQuery UI receives new commits. ```bash $ git pull upstream master @@ -121,80 +87,9 @@ To lint the JavaScript, HTML, and CSS, as well as run a smoke test in PhantomJS, $ grunt ``` -To run the tests for a specific plugin in your browser, open the approriate file from the /tests/unit/ directory, for example: http://localhost/tests/unit/accordion/accordion.html. The domain will be dependent on your local server configuation; if there is a port, be sure to include it. - -Success! You just tested jQuery UI! - - -### Fix a bug from a ticket filed at bugs.jqueryui.com: - -**NEVER write your patches to the master branch** - it gets messy (I say this from experience!) - -**ALWAYS USE A "TOPIC" BRANCH!** Like so (#### = the ticket #)... - -Make sure you start with your up-to-date master: - -```bash -$ git checkout master -``` - -Create and checkout a new branch that includes the ticket # - -```bash -$ git checkout -b bug_#### - -# ( Explanation: this useful command will: -# "checkout" a "-b" (branch) by the name of "bug_####" -# or create it if it doesn't exist ) -``` - -Now you're on branch: bug_#### - -Determine the file you'll be working in... - -Open up the corresponding /tests/unit/?????.js and add the initial failing unit tests. This may seem awkward at first, but in the long run it will make sense. To truly and efficiently patch a bug, you need to be working against that bug. - -Next, open the source files and make your changes - -Run http://localhost/tests/unit/???? --> **ALL TESTS MUST PASS** - -Once you're satisfied with your patch... - -Stage the files to be tracked: - -```bash -$ git add filename -# (you can use "git status" to list the files you've changed) -``` - - -( I recommend NEVER, EVER using "git add . " ) - -Once you've staged all of your changed files, go ahead and commit them - -```bash -$ git commit -m "Component: Brief description of fix. Fixes #0000 - Ticket description." -``` - -See the [commit message style guide](http://wiki.jqueryui.com/w/page/25941597/Commit%20Message%20Style%20Guide) for more details on how to format your commit message. - -For a multiple line commit message, leave off the `-m "description"`. - -You will then be led into vi (or the text editor that you have set up) to complete your commit message. - -Then, push your branch with the bug fix commits to your github fork - -```bash -$ git push origin -u bug_#### -``` - -Before you tackle your next bug patch, return to the master: - -```bash -$ git checkout master -``` - +To run the tests for a specific plugin in your browser, open the approriate file from the `/tests/unit/` directory, for example: `http://localhost/tests/unit/accordion/accordion.html`. The domain will be dependent on your local server configuation; if there is a port, be sure to include it. +Make sure to read our [commits and pull requests documentation](http://dev.contribute.jquery.org/commits-and-pull-requests/) for full details on working with branches and forks, as well as our commit guidelines. ### jQuery UI supports the following browsers: From cb82ed6424433bb5668b08d383035a65e5a0849b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Wed, 8 Jan 2014 10:07:53 -0500 Subject: [PATCH 2/7] [amend] remove discussion section, minor tweaks --- CONTRIBUTING.md | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e2f9897d494..d4556bdb3da 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,7 @@ Welcome! Thanks for your interest in contributing to jQuery UI. Most of our info You may also want to take a look at our [commit & pull request guide](http://contribute.jquery.org/commits-and-pull-requests/) and [style guides](http://contribute.jquery.org/style-guide/) for instructions on how to maintain your fork and submit your code. Before we can merge any pull request, we'll also need you to sign our [contributor license agreement](http://contribute.jquery.org/cla). -You can find us on [IRC](http://irc.jquery.org), specifically in #jqueryui-dev should you have any questions. If you've never contributed to open source before, we've put together [a short guide with tips, tricks, and ideas on getting started](http://contribute.jquery.org/open-source/). +You can find us on [IRC](http://irc.jquery.org), specifically in #jqueryui-dev should you have any questions. If you've never contributed to open source before, we've put together [a short guide with tips, tricks, and ideas on getting started](http://contribute.jquery.org/open-source/). For other forms of discussion and support, please see the [jQuery UI support center](http://jqueryui.com/support/). ## Getting Involved @@ -12,44 +12,27 @@ There are a number of ways to get involved with the development of jQuery UI. Ev This is the best way to contribute to jQuery UI. Please read through the full guide detailing [How to Report Bugs](http://contribute.jquery.org/bug-reports/). -## Discussion - -### Forum and IRC - -The jQuery UI development team frequently tracks posts on the [Developing jQuery UI Forum](http://forum.jquery.com/developing-jquery-ui). If you have longer posts or questions please feel free to post them there. If you think you've found a bug please [file it in the bug tracker](http://contribute.jquery.org/bug-reports/). - -Additionally most of the jQuery UI development team can be found in the [#jqueryui-dev](http://webchat.freenode.net/?channels=jqueryui-dev) IRC channel on irc.freenode.net. - -### Weekly Status Meetings - -Every week (unless otherwise noted) the jQuery UI dev team has a meeting to discuss the progress of current work and to bring forward possible new blocker bugs for discussion. - -The meeting is held in the [#jquery-meeting](http://webchat.freenode.net/?channels=jquery-meeting) IRC channel on irc.freenode.net at [Noon EST](http://www.timeanddate.com/worldclock/fixedtime.html?month=1&day=17&year=2011&hour=12&min=0&sec=0&p1=43) on Wednesdays. - -Past Meeting Notes: -[2008 - 2011](https://docs.google.com/spreadsheet/ccc?key=0AusvKVL7jmFUcHVBQk9tMUxkRGl0emVwZGdLd0QtUlE), -[2012 - 2013](https://docs.google.com/spreadsheet/ccc?key=0ArIM4UVbwE-3dFg1T0k4VlE1bF82Nm9tbW90cVNxN0E) -[2014 - present](https://docs.google.com/spreadsheet/ccc?key=0AgyHrN8YnS0IdER6clpleEd6WnBrRTgybnhUSTVMRUE) +### Weekly Meetings +Every week (unless otherwise noted) the jQuery UI team has a meeting to discuss the progress of current work and to bring forward possible new blockers for discussion. The meeting is held on [IRC](http://irc.jquery.org) in the #jquery-meeting channel at [Noon EST](http://www.timeanddate.com/worldclock/fixedtime.html?month=1&day=17&year=2011&hour=12&min=0&sec=0&p1=43) on Wednesdays. Meeting notes are posted on http://meetings.jquery.org/category/ui/ after each meeting. ## Tips For Bug Patching -### Environment: localhost w/ PHP, Node & Grunt +### Environment: localhost w/ PHP, Node.js & Grunt -jQuery UI uses node & gruntjs to automate the building and validation of source code. +jQuery UI uses Node.js & Grunt to automate the building and validation of source code. Some tests depend on PHP running locally, so make sure you have the following installed: * Some kind of localhost server program that supports PHP (any will do) -* Node.js -* NPM (comes with the latest version of Node.js) +* Node.js and NPM (comes with the latest version of Node.js) * Grunt (install with: `npm install -g grunt` Maintaining a list of platform specific instructions is outside of the scope of this document and there is plenty of existing documentation for the above technologies. ### Build a Local Copy of jQuery UI -Create a fork of the jQuery UI repo on GitHub at http://github.com/jquery/jquery-ui +Create a fork of the jQuery UI repo on GitHub at http://github.com/jquery/jquery-ui. Change directory to your web root directory, whatever that might be: @@ -63,7 +46,7 @@ Clone your jQuery UI fork to work locally. $ git clone git@github.com:username/jquery-ui.git ``` -Change directory to the newly created directory. +Change to the newly created directory. ```bash $ cd jquery-ui From 2e40fead5814799e91b0dd04ad148995975d6f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Wed, 8 Jan 2014 10:50:30 -0500 Subject: [PATCH 3/7] [amend] link to nodejs.org --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d4556bdb3da..5fc5c764377 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,7 +25,7 @@ jQuery UI uses Node.js & Grunt to automate the building and validation of source Some tests depend on PHP running locally, so make sure you have the following installed: * Some kind of localhost server program that supports PHP (any will do) -* Node.js and NPM (comes with the latest version of Node.js) +* [Node.js](http://nodejs.org/) (includes NPM, necessary for the next step) * Grunt (install with: `npm install -g grunt` Maintaining a list of platform specific instructions is outside of the scope of this document and there is plenty of existing documentation for the above technologies. From d9f674e83f24491e3bc7db307185b51d41067501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Wed, 8 Jan 2014 10:54:37 -0500 Subject: [PATCH 4/7] [amend] Clarify that the git URL needs to be edited --- CONTRIBUTING.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5fc5c764377..4f989350f9a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,8 +42,10 @@ $ cd /path/to/your/www/root/ Clone your jQuery UI fork to work locally. +*Note: be sure to replace `[USERNAME]` with your GitHub username.* + ```bash -$ git clone git@github.com:username/jquery-ui.git +$ git clone git@github.com:[USERNAME]/jquery-ui.git ``` Change to the newly created directory. From e280cacc4d4c15d6727f1c039b45ffda9f288787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Wed, 8 Jan 2014 18:15:54 -0500 Subject: [PATCH 5/7] [amend] Remove list of browsers, link to browser support page --- CONTRIBUTING.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4f989350f9a..20c5f7b86f9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -74,12 +74,6 @@ $ grunt To run the tests for a specific plugin in your browser, open the approriate file from the `/tests/unit/` directory, for example: `http://localhost/tests/unit/accordion/accordion.html`. The domain will be dependent on your local server configuation; if there is a port, be sure to include it. -Make sure to read our [commits and pull requests documentation](http://dev.contribute.jquery.org/commits-and-pull-requests/) for full details on working with branches and forks, as well as our commit guidelines. - -### jQuery UI supports the following browsers: +Ideally you would test in all of our [supported browsers](http://jqueryui.com/browser-support/), but if you don't have all of these browsers available, that's ok. -* Chrome Current-1 -* Safari Current-1 -* Firefox Current-1 -* Opera Current-1 -* IE 7+ +Make sure to read our [commits and pull requests documentation](http://dev.contribute.jquery.org/commits-and-pull-requests/) for full details on working with branches and forks, as well as our commit guidelines. From ebfc629a80dba472df575646d3cff1a534fc4d0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Wed, 8 Jan 2014 18:17:46 -0500 Subject: [PATCH 6/7] [amend] Add npm install step --- CONTRIBUTING.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 20c5f7b86f9..6b566ec5f6c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,6 +66,12 @@ Get in the habit of pulling in the "upstream" master to stay up to date as jQuer $ git pull upstream master ``` +Install the dependencies. + +```bash +npm install +``` + To lint the JavaScript, HTML, and CSS, as well as run a smoke test in PhantomJS, run grunt: ```bash From 08db028605eda5f03381ff7198331ee207d86585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Thu, 9 Jan 2014 12:36:26 -0500 Subject: [PATCH 7/7] [amend] Add links to XAMPP and MAMP --- CONTRIBUTING.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6b566ec5f6c..1be96bf1796 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,12 +24,10 @@ jQuery UI uses Node.js & Grunt to automate the building and validation of source Some tests depend on PHP running locally, so make sure you have the following installed: -* Some kind of localhost server program that supports PHP (any will do) +* A web server with PHP support (any will do, such as [XAMPP](http://www.apachefriends.org/en/xampp.html) or [MAMP](http://www.mamp.info/en/index.html)) * [Node.js](http://nodejs.org/) (includes NPM, necessary for the next step) * Grunt (install with: `npm install -g grunt` -Maintaining a list of platform specific instructions is outside of the scope of this document and there is plenty of existing documentation for the above technologies. - ### Build a Local Copy of jQuery UI Create a fork of the jQuery UI repo on GitHub at http://github.com/jquery/jquery-ui.