{"_id":"59365227e16643001bac5043","category":{"_id":"59365227e16643001bac5033","version":"59365226e16643001bac5030","project":"543026235eceb608003fde5f","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2017-06-05T13:44:53.935Z","from_sync":false,"order":2,"slug":"contributing","title":"Contributing"},"project":"543026235eceb608003fde5f","user":"565743e4c19631170079793c","parentDoc":null,"version":{"_id":"59365226e16643001bac5030","project":"543026235eceb608003fde5f","__v":1,"createdAt":"2017-06-06T06:56:38.999Z","releaseDate":"2017-06-06T06:56:38.999Z","categories":["59365227e16643001bac5031","59365227e16643001bac5032","59365227e16643001bac5033","59365227e16643001bac5034"],"is_deprecated":false,"is_hidden":false,"is_beta":true,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0.0"},"__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-06-05T16:24:09.744Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"So you're interested in giving us a hand? That's awesome! We've put together some guidelines that should help you get started quickly and easily. If you need help with anything, please come visit our [slack community](https://slack.ghost.org). Thank you for stopping by!\n\n**Quick Links:**\n- [developer install & setup](doc:working-with-ghost) \n- [feature roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap)\n- [feature wishlist](http://ideas.ghost.org)\n- [slack community](https://slack.ghost.org)\n- [community guidelines](https://ghost.org/about/guidelines/)\n- [dev blog](http://dev.ghost.org)\n[block:api-header]\n{\n  \"title\": \"Guideline Contents\"\n}\n[/block]\nThere are lots and lots of ways to get involved, this document covers:\n\n* [raising issues](#raising-issues)\n    * [bug reports](#bugs)\n    * [feature requests](#features)\n    * [change requests](#changes)\n* [working on Ghost core](#working-on-ghost-core)\n    * [submitting pull requests](#pull-requests)\n    * [checking out a pull request](#section-checking-out-a-pull-request)\n    * [looking for something to work on?](#section-looking-for-something-to-work-on-)\n    * [what makes it into Ghost core?](#section-what-makes-it-into-ghost-core-)\n* [testing and quality assurance](#testing)\n* [writing documentation](#documentation)\n* [contributor license agreement](#contributor-license-agreement)\n[block:api-header]\n{\n  \"title\": \"Raising Issues\"\n}\n[/block]\nIf you're looking to raise an issue because think you've found a problem with Ghost, or you'd like to make a request for a new feature in the codebase, or any other reason… please read this first.\n\nThe GitHub issue tracker is the preferred channel for [bug reports](#bugs), [change requests](#changes) and [submitting pull requests](#pull-requests), but please respect the following restrictions:\n\n* Please **search for existing issues**. Help us keep duplicate issues to a minimum by checking to see if someone has already reported your problem or requested your idea.\n\n* Please **do not** use the issue tracker for personal support requests (use [slack](http://slack.ghost.org) or [stackoverflow](http://stackoverflow.com/questions/tagged/ghost-blog) if you prefer).\n\n* Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others.\n\n<a name=\"bugs\"></a>\n## Bug Reports\n\nA bug is a _demonstrable problem_ that is caused by the code in the repository.\nGood bug reports are extremely helpful - thank you!\n\nGuidelines for bug reports:\n\n1. **Use the GitHub issue search** &mdash; check if the issue has already been reported.\n\n2. **Check if the issue has been fixed** &mdash; try to reproduce it using the latest `master` or look for [closed issues in the current milestone](https://github.com/tryghost/ghost/milestones).\n\n3. **Isolate the problem** &mdash; ideally create a [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live example.\n\n4. **Include a screencast if relevant** - Is your issue about a design or front end feature or bug? The most helpful thing in the world is if we can *see* what you're talking about. Use [LICEcap](http://www.cockos.com/licecap/) to quickly and easily record a short screencast (24fps) and save it as an animated gif! Embed it directly into your GitHub issue. Kapow.\n\n5. **Include as much info as possible!** Use the **Bug Report template** below or [click this link](https://github.com/TryGhost/Ghost/issues/new?title=Bug%3A&body=%23%23%23%20Issue%20Summary%0A%0A%23%23%23%20Steps%20to%20Reproduce%0A%0A1.%20This%20is%20the%20first%20step%0A%0AThis%20is%20a%20bug%20because...%0A%0A%23%23%23%20Technical%20details%0A%0A*%20Ghost%20Version%3A%20master%20-%20latest%20commit%3A%20%20INSERT%20COMMIT%20REF%0A*%20Client%20OS%3A%20%0A*%20Server%20OS%3A%20%0A*%20Node%20Version%3A%20%0A*%20Browser%3A%20%0A*%20Database%3A) to start creating a bug report with the template automatically.\n\n<br> A good bug report shouldn't leave others needing to chase you up for more information. Be sure to include the details of your environment.\n\nHere is a [real example](https://github.com/TryGhost/Ghost/issues/413) of a great bug report.\n\n<a name=\"bug-template\"></a>\n\nTemplate Example ([click to use](https://github.com/TryGhost/Ghost/issues/new?title=Bug%3A&body=%23%23%23%20Issue%20Summary%0A%0A%23%23%23%20Steps%20to%20Reproduce%0A%0A1.%20This%20is%20the%20first%20step%0A%0AThis%20is%20a%20bug%20because...%0A%0A%23%23%23%20Technical%20details%0A%0A*%20Ghost%20Version%3A%20master%20-%20latest%20commit%3A%20%20INSERT%20COMMIT%20REF%0A*%20Client%20OS%3A%20%0A*%20Server%20OS%3A%20%0A*%20Node%20Version%3A%20%0A*%20Browser%3A%20%0A*%20Database%3A)):\n```\nShort and descriptive example bug report title\n\n### Issue Summary\n\nA summary of the issue and the browser/OS environment in which it occurs.\n\n### Steps to Reproduce\n\n1. This is the first step\n2. This is the second step, etc.\n\nAny other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?\n\n### Technical details:\n\n* Ghost Version: master (latest commit: a761de2079dca4df49567b1bddac492f25033985)\n* Node Version: 4.4.7\n* Browser: Chrome 48.0.2564.109 on Mac OS X 10.10.4\n* Database: SQLite / MySQL\n```\n\n<a name=\"features\"></a>\n## Feature Requests\n\nIf you've got a great idea, we want to hear about it. Our [user wishlist](http://ideas.ghost.org) exists so that we can learn more about what our community wants us to build.\n\nPlease use your discretion to decide whether a feature request belongs on the [wishlist](http://ideas.ghost.org) or whether it's better suited to a GitHub issue.\n\nBefore making a suggestion, here are a few handy tips on what to consider:\n\n1. Visit the [Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap), [wishlist](http://ideas.ghost.org) & search to see if the feature has already been requested\n\n2. Check out [What makes it into Ghost core?](#section-what-makes-it-into-ghost-core-) - this explains the guidelines for what fits into the scope and aims of the project\n\n3. Have a quick think about whether your feature is for the admin UI, the blog output, themes or apps - or does it affect multiple areas? This can help when describing your idea.\n\n4. Remember, it's up to *you* to make a strong case to convince the project's leaders of the merits of a new feature. Please provide as much detail and context as possible, this means explaining the use case and why it is likely to be common. The strongest vote in favour of any feature request is hands-down, un-debatable traction on our user [wishlist](http://ideas.ghost.org).\n\n<a name=\"changes\"></a>\n## Change Requests\n\nChange requests cover both architectural and functional changes to how Ghost works. If you have an idea for a new or different dependency, a refactor, or an improvement to a feature, etc - please be sure to:\n\n1. **Use the GitHub search** and check someone else didn't get there first\n\n2. Take a moment to think about the best way to make a case for, and explain what you're thinking as it's up to you to convince the project's leaders the change is worthwhile. Some questions to consider are:\n\t- Is it really one idea or is it many?\n\t- What problem are you solving?\n\t- Why is what you are suggesting better than what's already there?\n\n<br>\n[block:api-header]\n{\n  \"title\": \"Working on Ghost core\"\n}\n[/block]\nIf you want to modify Ghost or Ghost-Admin files it's recommended that you get a development environment set up. We have a guides for Ghost and Ghost-Admin:\n\n- [Working with Ghost](doc:working-with-ghost)\n- [Working with Ghost-Admin](doc:working-with-the-admin-client)\n\n<a name=\"pull-requests\"></a>\n## Submitting pull requests\n\nPull requests are **awesome**. If you're looking to raise a PR for something which doesn't have an open issue, please think carefully about [raising an issue](#raising-issues) which your PR can close, especially if you're fixing a bug. This makes it more likely that there will be enough information available for your PR to be properly tested and merged. To make sure your PR is accepted as quickly as possible, please take a minute to check the guidelines on:\n\n* [commit messages](doc:git-workflow#section-notes-on-writing-good-commit-messages)\n* [cleaning-up history](doc:git-workflow#section-clean-up-history)\n* [not breaking the build](doc:git-workflow#section-check-it-passes-the-tests)\n\n##### Need Help?\n\nIf you're not completely clear on how to submit / update / *do* Pull Requests, please check out our in depth [Git Workflow guide](doc:git-workflow) for Ghost, or visit [slack](http://slack.ghost.org) and we'll help you out.\n\n## Checking out a Pull Request\n\nThe dev blog has [detailed instructions](http://dev.ghost.org/easy-git-pr-test/) on configuring your environment to allow you to checkout pull requests with this simple command: `pr #1234`\n\n## Looking for something to work on?\n\nIf you're interested in contributing to Ghost and don't know where to start, here's a few tips:\n\n- The [beginner label](https://github.com/TryGhost/Ghost/labels/beginner) indicates issues which should be suitable for someone new to the Ghost codebase\n- The [help wanted label](https://github.com/TryGhost/Ghost/labels/help%20wanted) highlights issues that need a champion\n\nIf you're still stuck, please come join us in [slack](https://slack.ghost.org) and let us know what you're interested in!\n\n## What makes it into Ghost core?\n\nIf you're trying to determine whether or not a feature you're interested in will be implemented in Ghost core, there are 4 key principles:\n\n- Is it fundamentally core to publishing digital content? Would it likely be useful to the majority of our user base? If yes, then it will probably be in Ghost core. E.g I18n, post scheduling, etc.\n- Is it so large and complex that other companies have entire teams and infrastructures dedicated to it? Then it will probably be provided through 3rd party integrations. E.g. Comments, and media management.\n- Is it only relevant to a small group, or for a short time / one off use? If yes, it is probably app territory. E.g. XML-RPC, Import tools\n- Is it only possible to achieve by adding to or modifying core? If yes, then it will be considered in terms of benefit vs complexity.\n\nThese are the guiding principles, they are somewhat subjective but they provide a framework for anyone to use to interpret whether or not a feature might be considered for Ghost core. There will always be exceptions.\n\nWhen making a feature request, keep in mind that Ghost is a publishing platform for the masses. It's aim is to be the go-to solution for publishing content to the web - we want to do one thing, REALLY well. The aim of the Ghost architecture is to provide for the most common use cases in Ghost core and provide for extensibility so that less common use cases can be catered for with apps and extensions.\n\n<a name=\"testing\"></a><br>\n[block:api-header]\n{\n  \"title\": \"Testing and Quality Assurance\"\n}\n[/block]\nNever underestimate just how useful quality assurance is. If you're looking to get involved with the code base and don't know where to start, checking out and testing a pull request is one of the most useful things you could do.\n\nEssentially though, [check out the latest master](#core), take it for a spin, and if you find anything odd, please follow the [bug report guidelines](#bug-reports) and let us know!\n\n[block:api-header]\n{\n  \"title\": \"Documentation\"\n}\n[/block]\nGhost's user documentation can be found at [help.ghost.org](http://help.ghost.org), if you have feedback or would like to write some user documentation, please let us know by [emailing support](mailto:support:::at:::ghost.org).\n\nGhost's developer documentation can be found at [docs.ghost.org](http://docs.ghost.org/). These docs are written and hosted on [readme.io](https://readme.io/) which has a suggested edits feature through which you can submit updates. If you'd like to get more involved than just making amendments, [email support](mailto:support@ghost.org) and let us know :)\n\n\n[block:api-header]\n{\n  \"title\": \"The Public Roadmap\"\n}\n[/block]\nWe have a [public trello board](https://trello.com/b/EceUgtCL/ghost-roadmap) which acts as a general roadmap and to make it easier for everyone to keep track of ongoing work. If you would like to receive regular updates on our progress, you can subscribe to the [Dev Blog](http://dev.ghost.org) which is updated with every public release and major announcement.\n\nFor information on how the new roadmap works, see [trello](https://trello.com/c/0e0L0alW/65-how-does-this-roadmap-work-click-here-to-find-out).\n[block:api-header]\n{\n  \"title\": \"Contributor License Agreement\"\n}\n[/block]\nBy contributing your code to Ghost you grant the Ghost Foundation a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, transferable license under all of Your relevant intellectual property rights (including copyright, patent, and any other rights), to use, copy, prepare derivative works of, distribute and publicly perform and display the Contributions on any licensing terms, including without limitation:\n(a) open source licenses like the MIT license; and (b) binary, proprietary, or commercial licenses. Except for the licenses granted herein, You reserve all right, title, and interest in and to the Contribution.\n\nYou confirm that you are able to grant us these rights. You represent that You are legally entitled to grant the above license. If Your employer has rights to intellectual property that You create, You represent that You have received permission to make the Contributions on behalf of that employer, or that Your employer has waived such rights for the Contributions.\n\nYou represent that the Contributions are Your original works of authorship, and to Your knowledge, no other person claims, or has the right to claim, any right in any invention or patent related to the Contributions. You also represent that You are not legally obligated, whether by entering into an agreement or otherwise, in any way that conflicts with the terms of this license.\n\nThe Ghost Foundation acknowledges that, except as explicitly described in this Agreement, any Contribution which you provide is on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.","excerpt":"Contributing guide","slug":"contributing","type":"basic","title":"Introduction"}

Introduction

Contributing guide

So you're interested in giving us a hand? That's awesome! We've put together some guidelines that should help you get started quickly and easily. If you need help with anything, please come visit our [slack community](https://slack.ghost.org). Thank you for stopping by! **Quick Links:** - [developer install & setup](doc:working-with-ghost) - [feature roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap) - [feature wishlist](http://ideas.ghost.org) - [slack community](https://slack.ghost.org) - [community guidelines](https://ghost.org/about/guidelines/) - [dev blog](http://dev.ghost.org) [block:api-header] { "title": "Guideline Contents" } [/block] There are lots and lots of ways to get involved, this document covers: * [raising issues](#raising-issues) * [bug reports](#bugs) * [feature requests](#features) * [change requests](#changes) * [working on Ghost core](#working-on-ghost-core) * [submitting pull requests](#pull-requests) * [checking out a pull request](#section-checking-out-a-pull-request) * [looking for something to work on?](#section-looking-for-something-to-work-on-) * [what makes it into Ghost core?](#section-what-makes-it-into-ghost-core-) * [testing and quality assurance](#testing) * [writing documentation](#documentation) * [contributor license agreement](#contributor-license-agreement) [block:api-header] { "title": "Raising Issues" } [/block] If you're looking to raise an issue because think you've found a problem with Ghost, or you'd like to make a request for a new feature in the codebase, or any other reason… please read this first. The GitHub issue tracker is the preferred channel for [bug reports](#bugs), [change requests](#changes) and [submitting pull requests](#pull-requests), but please respect the following restrictions: * Please **search for existing issues**. Help us keep duplicate issues to a minimum by checking to see if someone has already reported your problem or requested your idea. * Please **do not** use the issue tracker for personal support requests (use [slack](http://slack.ghost.org) or [stackoverflow](http://stackoverflow.com/questions/tagged/ghost-blog) if you prefer). * Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others. <a name="bugs"></a> ## Bug Reports A bug is a _demonstrable problem_ that is caused by the code in the repository. Good bug reports are extremely helpful - thank you! Guidelines for bug reports: 1. **Use the GitHub issue search** &mdash; check if the issue has already been reported. 2. **Check if the issue has been fixed** &mdash; try to reproduce it using the latest `master` or look for [closed issues in the current milestone](https://github.com/tryghost/ghost/milestones). 3. **Isolate the problem** &mdash; ideally create a [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live example. 4. **Include a screencast if relevant** - Is your issue about a design or front end feature or bug? The most helpful thing in the world is if we can *see* what you're talking about. Use [LICEcap](http://www.cockos.com/licecap/) to quickly and easily record a short screencast (24fps) and save it as an animated gif! Embed it directly into your GitHub issue. Kapow. 5. **Include as much info as possible!** Use the **Bug Report template** below or [click this link](https://github.com/TryGhost/Ghost/issues/new?title=Bug%3A&body=%23%23%23%20Issue%20Summary%0A%0A%23%23%23%20Steps%20to%20Reproduce%0A%0A1.%20This%20is%20the%20first%20step%0A%0AThis%20is%20a%20bug%20because...%0A%0A%23%23%23%20Technical%20details%0A%0A*%20Ghost%20Version%3A%20master%20-%20latest%20commit%3A%20%20INSERT%20COMMIT%20REF%0A*%20Client%20OS%3A%20%0A*%20Server%20OS%3A%20%0A*%20Node%20Version%3A%20%0A*%20Browser%3A%20%0A*%20Database%3A) to start creating a bug report with the template automatically. <br> A good bug report shouldn't leave others needing to chase you up for more information. Be sure to include the details of your environment. Here is a [real example](https://github.com/TryGhost/Ghost/issues/413) of a great bug report. <a name="bug-template"></a> Template Example ([click to use](https://github.com/TryGhost/Ghost/issues/new?title=Bug%3A&body=%23%23%23%20Issue%20Summary%0A%0A%23%23%23%20Steps%20to%20Reproduce%0A%0A1.%20This%20is%20the%20first%20step%0A%0AThis%20is%20a%20bug%20because...%0A%0A%23%23%23%20Technical%20details%0A%0A*%20Ghost%20Version%3A%20master%20-%20latest%20commit%3A%20%20INSERT%20COMMIT%20REF%0A*%20Client%20OS%3A%20%0A*%20Server%20OS%3A%20%0A*%20Node%20Version%3A%20%0A*%20Browser%3A%20%0A*%20Database%3A)): ``` Short and descriptive example bug report title ### Issue Summary A summary of the issue and the browser/OS environment in which it occurs. ### Steps to Reproduce 1. This is the first step 2. This is the second step, etc. Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead? ### Technical details: * Ghost Version: master (latest commit: a761de2079dca4df49567b1bddac492f25033985) * Node Version: 4.4.7 * Browser: Chrome 48.0.2564.109 on Mac OS X 10.10.4 * Database: SQLite / MySQL ``` <a name="features"></a> ## Feature Requests If you've got a great idea, we want to hear about it. Our [user wishlist](http://ideas.ghost.org) exists so that we can learn more about what our community wants us to build. Please use your discretion to decide whether a feature request belongs on the [wishlist](http://ideas.ghost.org) or whether it's better suited to a GitHub issue. Before making a suggestion, here are a few handy tips on what to consider: 1. Visit the [Roadmap](https://trello.com/b/EceUgtCL/ghost-roadmap), [wishlist](http://ideas.ghost.org) & search to see if the feature has already been requested 2. Check out [What makes it into Ghost core?](#section-what-makes-it-into-ghost-core-) - this explains the guidelines for what fits into the scope and aims of the project 3. Have a quick think about whether your feature is for the admin UI, the blog output, themes or apps - or does it affect multiple areas? This can help when describing your idea. 4. Remember, it's up to *you* to make a strong case to convince the project's leaders of the merits of a new feature. Please provide as much detail and context as possible, this means explaining the use case and why it is likely to be common. The strongest vote in favour of any feature request is hands-down, un-debatable traction on our user [wishlist](http://ideas.ghost.org). <a name="changes"></a> ## Change Requests Change requests cover both architectural and functional changes to how Ghost works. If you have an idea for a new or different dependency, a refactor, or an improvement to a feature, etc - please be sure to: 1. **Use the GitHub search** and check someone else didn't get there first 2. Take a moment to think about the best way to make a case for, and explain what you're thinking as it's up to you to convince the project's leaders the change is worthwhile. Some questions to consider are: - Is it really one idea or is it many? - What problem are you solving? - Why is what you are suggesting better than what's already there? <br> [block:api-header] { "title": "Working on Ghost core" } [/block] If you want to modify Ghost or Ghost-Admin files it's recommended that you get a development environment set up. We have a guides for Ghost and Ghost-Admin: - [Working with Ghost](doc:working-with-ghost) - [Working with Ghost-Admin](doc:working-with-the-admin-client) <a name="pull-requests"></a> ## Submitting pull requests Pull requests are **awesome**. If you're looking to raise a PR for something which doesn't have an open issue, please think carefully about [raising an issue](#raising-issues) which your PR can close, especially if you're fixing a bug. This makes it more likely that there will be enough information available for your PR to be properly tested and merged. To make sure your PR is accepted as quickly as possible, please take a minute to check the guidelines on: * [commit messages](doc:git-workflow#section-notes-on-writing-good-commit-messages) * [cleaning-up history](doc:git-workflow#section-clean-up-history) * [not breaking the build](doc:git-workflow#section-check-it-passes-the-tests) ##### Need Help? If you're not completely clear on how to submit / update / *do* Pull Requests, please check out our in depth [Git Workflow guide](doc:git-workflow) for Ghost, or visit [slack](http://slack.ghost.org) and we'll help you out. ## Checking out a Pull Request The dev blog has [detailed instructions](http://dev.ghost.org/easy-git-pr-test/) on configuring your environment to allow you to checkout pull requests with this simple command: `pr #1234` ## Looking for something to work on? If you're interested in contributing to Ghost and don't know where to start, here's a few tips: - The [beginner label](https://github.com/TryGhost/Ghost/labels/beginner) indicates issues which should be suitable for someone new to the Ghost codebase - The [help wanted label](https://github.com/TryGhost/Ghost/labels/help%20wanted) highlights issues that need a champion If you're still stuck, please come join us in [slack](https://slack.ghost.org) and let us know what you're interested in! ## What makes it into Ghost core? If you're trying to determine whether or not a feature you're interested in will be implemented in Ghost core, there are 4 key principles: - Is it fundamentally core to publishing digital content? Would it likely be useful to the majority of our user base? If yes, then it will probably be in Ghost core. E.g I18n, post scheduling, etc. - Is it so large and complex that other companies have entire teams and infrastructures dedicated to it? Then it will probably be provided through 3rd party integrations. E.g. Comments, and media management. - Is it only relevant to a small group, or for a short time / one off use? If yes, it is probably app territory. E.g. XML-RPC, Import tools - Is it only possible to achieve by adding to or modifying core? If yes, then it will be considered in terms of benefit vs complexity. These are the guiding principles, they are somewhat subjective but they provide a framework for anyone to use to interpret whether or not a feature might be considered for Ghost core. There will always be exceptions. When making a feature request, keep in mind that Ghost is a publishing platform for the masses. It's aim is to be the go-to solution for publishing content to the web - we want to do one thing, REALLY well. The aim of the Ghost architecture is to provide for the most common use cases in Ghost core and provide for extensibility so that less common use cases can be catered for with apps and extensions. <a name="testing"></a><br> [block:api-header] { "title": "Testing and Quality Assurance" } [/block] Never underestimate just how useful quality assurance is. If you're looking to get involved with the code base and don't know where to start, checking out and testing a pull request is one of the most useful things you could do. Essentially though, [check out the latest master](#core), take it for a spin, and if you find anything odd, please follow the [bug report guidelines](#bug-reports) and let us know! [block:api-header] { "title": "Documentation" } [/block] Ghost's user documentation can be found at [help.ghost.org](http://help.ghost.org), if you have feedback or would like to write some user documentation, please let us know by [emailing support](mailto:support@ghost.org). Ghost's developer documentation can be found at [docs.ghost.org](http://docs.ghost.org/). These docs are written and hosted on [readme.io](https://readme.io/) which has a suggested edits feature through which you can submit updates. If you'd like to get more involved than just making amendments, [email support](mailto:support@ghost.org) and let us know :) [block:api-header] { "title": "The Public Roadmap" } [/block] We have a [public trello board](https://trello.com/b/EceUgtCL/ghost-roadmap) which acts as a general roadmap and to make it easier for everyone to keep track of ongoing work. If you would like to receive regular updates on our progress, you can subscribe to the [Dev Blog](http://dev.ghost.org) which is updated with every public release and major announcement. For information on how the new roadmap works, see [trello](https://trello.com/c/0e0L0alW/65-how-does-this-roadmap-work-click-here-to-find-out). [block:api-header] { "title": "Contributor License Agreement" } [/block] By contributing your code to Ghost you grant the Ghost Foundation a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, transferable license under all of Your relevant intellectual property rights (including copyright, patent, and any other rights), to use, copy, prepare derivative works of, distribute and publicly perform and display the Contributions on any licensing terms, including without limitation: (a) open source licenses like the MIT license; and (b) binary, proprietary, or commercial licenses. Except for the licenses granted herein, You reserve all right, title, and interest in and to the Contribution. You confirm that you are able to grant us these rights. You represent that You are legally entitled to grant the above license. If Your employer has rights to intellectual property that You create, You represent that You have received permission to make the Contributions on behalf of that employer, or that Your employer has waived such rights for the Contributions. You represent that the Contributions are Your original works of authorship, and to Your knowledge, no other person claims, or has the right to claim, any right in any invention or patent related to the Contributions. You also represent that You are not legally obligated, whether by entering into an agreement or otherwise, in any way that conflicts with the terms of this license. The Ghost Foundation acknowledges that, except as explicitly described in this Agreement, any Contribution which you provide is on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.