From fa076cf52dfc5ab6341ffacaf5d90b9ba304882f Mon Sep 17 00:00:00 2001 From: Tom Page Date: Mon, 6 Jan 2020 13:57:08 +0000 Subject: [PATCH] Add CONTRIBUTING.md. --- CONTRIBUTING.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 6 +++++- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..cf3bb9b4f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,56 @@ +# Contributing + +Thanks for your interest in contributing to this project! + +The following is a set of guidelines for contributing to this library. Most of them will +make the life of the reviewer easier and therefore decrease the time required for the +patch be included in the next version. + +Alfresco has an [active forum](http://community.alfresco.com/community/ecm) to support +community users of our products. If you have any questions then this is the fastest method +of getting an answer. + +We have a [coding standards guidelines page](https://hub.alfresco.com/t5/alfresco-content-services-hub/coding-standards-for-alfresco-content-services/ba-p/290457) +although you will find numerous examples where we have not adhered to them. Please try to +maintain consistency with the guidelines for new code, but avoid reformatting large +blocks of code if these are not related to your change. + +## Branches + +Our codebase consists of long-lived release branches and short-lived feature branches. The +code that we expect to include in the next minor version is stored on `master`. All other +release branches have the prefix `release/`. Feature branches may have any other prefix, +but we usually use `feature/` or `fix/`. We expect code on release branches to be ready +to release, and in the rare occasion when a release branch is broken then we try to revert +changes to fix the branch as soon as possible. + +As bug fixes often also need a change to ACS then we use a cherry-pick strategy to get the +fix to all necessary release branches. The fix should initially be merged to `master` and +it can then be cherry-picked back by using: + +```git cherry-pick -x -m 1 [mergeCommitId]``` + +## Community Mirror + +Pull requests to our community mirror will be accepted in our enterprise codebase and then +mirrored back to the community. You will always be credited with your commits, although if +you [sign your commits](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work) then the +signature will be stripped by the mirroring process.[^dependabot] + +[^dependabot]: This is the reason that pull requests submitted by Dependabot appear closed +rather than merged. + +## Builds + +Our builds are currently in our internal Bamboo instance. We have an [internal dashboard](http://pson01.alfresco.com:8081/SAI-FeatureBranches) +displaying the status of all branches, and also an [internal compatibility dashboard](http://pson01.alfresco.com:8081/SAI-Compatibility) +displaying results of integration testing with different versions of ACS. + +Our build process uses the scripts in the [build scripts](https://git.alfresco.com/search_discovery/BuildScripts) +project. + +Although the build results are not visible externally, it should be possible to run most of +the tests locally. We have divided our tests into unit tests, integration tests and +end-to-end tests. The unit and integration tests can be run using the maven `test` and +`verify` goals respectively. The end-to-end tests cannot currently be run externally as +they require some dependencies stored in our internal Nexus. diff --git a/README.md b/README.md index 95ab30356..b973c9523 100644 --- a/README.md +++ b/README.md @@ -40,4 +40,8 @@ More details are available at [search-services](/search-services) folder. **Following resources will not be available for Community users** -More details are available at [insight-engine](/insight-engine) folder. \ No newline at end of file +More details are available at [insight-engine](/insight-engine) folder. + +## Contributing guide + +Please use [this guide](CONTRIBUTING.md) to make a contribution to the project.