Skip to content
This repository was archived by the owner on Apr 14, 2023. It is now read-only.

Commit

Permalink
Add FINOS project blueprint files
Browse files Browse the repository at this point in the history
  • Loading branch information
Ryan Stuart committed Jun 28, 2019
1 parent 05c824b commit 6456242
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 81 deletions.
75 changes: 17 additions & 58 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,90 +1,49 @@
# Contributing to DataHelix
:+1: First off, thanks for taking the time to contribute! :+1:

# Contributor License Agreement (CLA)
A CLA is a document that specifies how a project is allowed to use your contribution; they are commonly used in many open source projects.
A CLA is a document that specifies how a project is allowed to use your
contribution; they are commonly used in many open source projects.

**_All_ contributions to _all_ projects hosted by [FINOS](https://www.finos.org/) must be made with a [Foundation CLA](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/83034172/Contribute) in place, and there are [additional legal requirements](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/75530375/Legal+Requirements) that must also be met.**
**_All_ contributions to _all_ projects hosted by [FINOS](https://www.finos.org/)
must be made with a
[Foundation CLA](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/83034172/Contribute)
in place, and there are [additional legal requirements](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/75530375/Legal+Requirements)
that must also be met.**

As a result, PRs submitted to the DataHelix project cannot be accepted until you have a CLA in place with the Foundation.

# Contributing Issues

## Prerequisites

* [ ] Have you [searched for duplicates](https://github.com/scottlogic/datahelix/issues?utf8=%E2%9C%93&q=)? A simple search for exception error messages or a summary of the unexpected behaviour should suffice.
* [ ] Have you [searched for duplicates](https://github.com/ScottLogic/DataHelix/issues?utf8=%E2%9C%93&q=)? A simple search for exception error messages or a summary of the unexpected behaviour should suffice.
* [ ] Are you running the latest version?
* [ ] Are you sure this is a bug or missing capability?

## Raising an Issue
* Create your issue [here](https://github.com/scottlogic/datahelix/issues/new).
* Create your issue [here](https://github.com/ScottLogic/DataHelix/issues/new).
* New issues contain two templates in the description: bug report and enhancement request. Please pick the most appropriate for your issue, **then delete the other**.
* Please also tag the new issue with either "Bug" or "Enhancement".
* Please use [Markdown formatting](https://help.github.com/categories/writing-on-github/) liberally to assist in readability.
* Please use [Markdown formatting](https://help.github.com/categories/writing-on-github/)
liberally to assist in readability.
* [Code fences](https://help.github.com/articles/creating-and-highlighting-code-blocks/) for exception stack traces and log entries, for example, massively improve readability.

## Coding Style

Regarding coding style we favor a minimalistic and pragmatic approach. We add additional rules as they are needed rather than specifying up front.

### Java Coding Style

We adopt a modified subset of the [Google Java Coding Style](https://google.github.io/styleguide/javaguide.html):

* [2.2](https://google.github.io/styleguide/javaguide.html#s2.2-file-encoding) Files are encoded in UTF-8
* [2.3.1](https://google.github.io/styleguide/javaguide.html#s2.3.1-whitespace-characters) Use ASCII hard space (0x20) not tab for indentation
* [4.1.1](https://google.github.io/styleguide/javaguide.html#s4.1.1-braces-always-used) Braces are used where optional (an exception is made for auto-generated code such as equals methods)
* [4.1.2](https://google.github.io/styleguide/javaguide.html#s4.1.2-blocks-k-r-style) Nonempty blocks: K & R style
* [4.1.3](https://google.github.io/styleguide/javaguide.html#s4.1.3-braces-empty-blocks) Empty blocks: may be concise
* _**Contrary** to [4.2](https://google.github.io/styleguide/javaguide.html#s4.2-block-indentation)_: Block indentation: **4 spaces**
* [4.3](https://google.github.io/styleguide/javaguide.html#s4.3-one-statement-per-line) One statement per line
* [4.4](https://google.github.io/styleguide/javaguide.html#s4.4-column-limit) Column limit: 100
* [4.5.1](https://google.github.io/styleguide/javaguide.html#s4.5.1-line-wrapping-where-to-break) Where to break (but _**not**_ [4.5.2](https://google.github.io/styleguide/javaguide.html#s4.5.2-line-wrapping-indent))
* The `this.` qualifier should not be included, except where required.

__Exception:__
* Package names referring to a version number only take the form `v` + `majorVerion` + `_` + `minorVersion` e.g. package `v0_1` refers to version `0.1`


### Scala Coding Style

We adopt only one rule from the [Scala Style Guide](https://docs.scala-lang.org/style/). We also add two more rules to make our Java and Scala styles consistent.

* Files are encoded in UTF-8 (Note 1)
* Each level of indentation is 2 spaces. Tabs are not used
* Column limit: 100 (Note 1)

Note 1: This rule was not mentioned in the Scala style guide, but we add it anyway to make our styles for Java and Scala consistent.


### Markdown Style

* Use single spaces after sentence terminators, rather than double-spacing


# Contributing Pull Requests (Code & Docs)
To make review of PRs easier, please:

* Please make sure your PRs will merge cleanly - PRs that don't are unlikely to be accepted.
* For code contributions, follow the existing code layout.
* For documentation contributions, follow the general structure, language, and tone of the [existing docs](https://github.com/scottlogic/datahelix/wiki).
* For documentation contributions, follow the general structure, language, and tone of the [existing docs](https://github.com/ScottLogic/DataHelix/wiki).
* Keep commits small and cohesive - if you have multiple contributions, please submit them as independent commits (and ideally as independent PRs too).
* Reference issue #s if your PR has anything to do with an issue (even if it doesn't address it).
* Minimise non-functional changes (e.g. whitespace shenanigans).
* Minimise non-functional changes (e.g. whitespace).
* Ensure all new files include a header comment block containing the [Apache License v2.0 and your copyright information](http://www.apache.org/licenses/LICENSE-2.0#apply).
* If necessary (e.g. due to 3rd party dependency licensing requirements), update the [NOTICE file](../NOTICE) with any new attribution or other notices
* See [Coding Guidelines](https://github.com/ScottLogic/datahelix/wiki/Coding-Guidelines) for additional information.
* If necessary (e.g. due to 3rd party dependency licensing requirements), update the [NOTICE file](https://github.com/ScottLogic/DataHelix/blob/master/NOTICE) with any new attribution or other notices


## Commit and PR Messages

* **Reference issues, wiki pages, and pull requests liberally!**
* We adopt a subset of [Chris Beams's style guide](https://chris.beams.io/posts/git-commit/):

1. Separate subject from body with a blank line
2. Limit the subject line to 50 characters
3. Capitalize the subject line
4. Do not end the subject line with a period
5. Use the imperative mood in the subject line
6. (Not followed) ~~Wrap the body at 72 characters~~
7. Use the body to explain _what_ and _why_ vs. _how_
* Use the present tense ("Add feature" not "Added feature")
* Use the imperative mood ("Move button left..." not "Moves button left...")
* Limit the first line to 72 characters or less
3 changes: 1 addition & 2 deletions .github/ISSUE_TEMPLATE/Bug_report.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
---
name: 🐛 Bug Report
about: If something isn't working as expected 🤔.
labels: bug
projects: scottlogic/15

---

## Bug Report
Expand Down
14 changes: 1 addition & 13 deletions .github/ISSUE_TEMPLATE/Feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,12 @@ about: I have a suggestion (and may want to implement it 🙂)!

## Feature Request

### User story
... describe the problem and why it should be worked on in one concise statement.
... e.g. As a xxx I want to yyy so that zzz or
As a xxx I want to yyy because zzz

### Description of Problem:
...what *problem* are you trying to solve that the project doesn't currently solve?

...please resist the temptation to describe your request in terms of a solution.
...please resist the temptation to describe your request in terms of a solution. Job Story form ("When [triggering condition], I want to [motivation/goal], so I can [outcome].") can help ensure you're expressing a problem statement.

### Potential Solutions:
...clearly and concisely describe what you want to happen. Add any considered drawbacks.

... if you've considered alternatives, clearly and concisely describe those too.

### Acceptance Criteria:
...describe the things that should be checked or changed to confirm the task is complete

...think about behaviour rather than implementation

...think about tests and the quality of the product
30 changes: 26 additions & 4 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@

Copyright 2018 Scott Logic Ltd

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Expand Down Expand Up @@ -176,4 +173,29 @@
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS
END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2018 Scott Logic Ltd

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
4 changes: 2 additions & 2 deletions LICENSE.spdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
SPDXVersion: SPDX-2.0
DataLicense: CC0-1.0
Creator: Scott Logic Ltd
PackageName: data-generator
PackageName: DataHelix
PackageOriginator: Scott Logic Ltd
PackageHomePage: https://github.com/finos/data-generator
PackageHomePage: https://github.com/ScottLogic/DataHelix
PackageLicenseDeclared: Apache-2.0
6 changes: 4 additions & 2 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
DataHelix - FINOS
Copyright 2018 Scott Logic Ltd
Copyright 2018 - 2019 Scott Logic Ltd

This product includes software developed at the Fintech Open Source Foundation (https://www.finos.org/).
This product includes software developed at the Fintech Open Source Foundation (https://www.finos.org/).

{Other notices, as necessary}

0 comments on commit 6456242

Please sign in to comment.