Skip to content

Commit 77854d0

Browse files
authored
Update CONTRIBUTING.md
close #11
1 parent e85e9cc commit 77854d0

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed

CONTRIBUTING.md

+126
Original file line numberDiff line numberDiff line change
@@ -1 +1,127 @@
1+
# Contributing to SF Java UI
2+
3+
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
4+
5+
The following is a set of guidelines for contributing to SF Java UI, which is hosted in the [JsonSchema-JavaUI organization](https://github.com/JsonSchema-JavaUI) on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
6+
7+
## Code of Conduct
8+
9+
This project and everyone participating in it is governed by the [Open source project contributor convenant](http://contributor-covenant.org/). By participating, you are expected to uphold this code. Please report unacceptable behavior to [[email protected]](mailto:[email protected]).
10+
11+
## I don't want to read this whole thing I just have a question!!!
12+
13+
> **Note:** [Please fill an issue to ask a question.](https://github.com/JsonSchema-JavaUI/sf-java-ui/issues/new).
14+
15+
## What should I know before I get started?
16+
17+
### Json schema form library
18+
19+
Schema Form is inspired by the nice [JSON Form](https://github.com/joshfire/jsonform) library and
20+
aims to be roughly compatible with it, especially its form definition. So what sets Schema Form
21+
apart from JSON Form?
22+
23+
1. Schema Form integrates deeply with AngularJS and uses AngularJS conventions to handle forms.
24+
2. Schema Form uses [tv4](https://github.com/geraintluff/tv4) for validation, making it compatible
25+
with version 4 of the JSON schema standard.
26+
3. By default, Schema Form generates Bootstrap 3-friendly HTML.
27+
28+
for more details please visit the official [schema form web site](http://schemaform.io/) or the [github page](https://github.com/json-schema-form/angular-schema-form)
29+
30+
### Package Conventions
31+
32+
Thera are a few conventions that have developed over time around packages:
33+
34+
* New layout annotations must be added under [io.asfjava.ui.core.form](https://github.com/JsonSchema-JavaUI/sf-java-ui/tree/master/src/main/java/io/asfjava/ui/core/form)
35+
* New layout generators must be added to [io.asfjava.ui.core.generators](https://github.com/JsonSchema-JavaUI/sf-java-ui/tree/master/src/main/java/io/asfjava/ui/core/generators)
36+
37+
### Design Decisions
38+
39+
When we make a significant decision in how we maintain the project and what we can or cannot support, we will document it in the [design document](https://github.com/JsonSchema-JavaUI/design-decisions). If you have a question around how we do things, check to see if it is documented there. If it is *not* documented there, please [open a new issue](https://github.com/JsonSchema-JavaUI/design-decisions/issues) on [the issue tracker](https://github.com/JsonSchema-JavaUI/design-decisions/issues) and ask your question.
40+
41+
## How Can I Contribute?
42+
43+
### Reporting Bugs
44+
45+
This section guides you through submitting a bug report for SF Java UI. Following these guidelines helps maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, and find related reports :mag_right:.
46+
47+
Before creating bug reports, please check [this list](#before-submitting-a-bug-report) as you might find out that you don't need to create one. When you are creating a bug report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out [the required template](ISSUE_TEMPLATE.md), the information it asks for helps us resolve issues faster.
48+
49+
> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
50+
51+
#### How Do I Submit A (Good) Bug Report?
52+
53+
Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). After you've determined which cause your bug is related to, create an issue on that repository and provide the following information by filling in [the template](ISSUE_TEMPLATE.md).
54+
55+
Explain the problem and include additional details to help maintainers reproduce the problem:
56+
57+
* **Use a clear and descriptive title** for the issue to identify the problem.
58+
* **Describe the exact steps which reproduce the problem** in as many details as possible.
59+
* **don't just say what you did, but explain how you did it**,
60+
* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
61+
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
62+
* **Explain which behavior you expected to see instead and why.**
63+
* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem.
64+
* **If the problem is related to performance or memory**, include a CPU profile capture
65+
* **If Chrome's developer tools pane is shown without you triggering it**,
66+
67+
### Suggesting Enhancements
68+
69+
This section guides you through submitting an enhancement suggestion for SF Java UI, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:.
70+
71+
Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion) as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). Fill in [the template](ISSUE_TEMPLATE.md), including the steps that you imagine you would take if the feature you're requesting existed.
72+
73+
#### Before Submitting An Enhancement Suggestion
74+
75+
* **Check if there's already [an opened issue](https://github.com/JsonSchema-JavaUI/sf-java-ui/labels/enhancement) which provides that enhancement.**
76+
* **Perform a [cursory search](https://github.com/JsonSchema-JavaUI/sf-java-ui/issues)** to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
77+
78+
#### How Do I Submit A (Good) Enhancement Suggestion?
79+
80+
Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on that repository and provide the following information:
81+
82+
* **Use a clear and descriptive title** for the issue to identify the suggestion.
83+
* **Provide a step-by-step description of the suggested enhancement** in as many details as possible.
84+
* **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
85+
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
86+
* **Explain why this enhancement would be useful**
87+
* **Specify the version of the [Angular Schema Form](https://github.com/json-schema-form/angular-schema-form).**
88+
89+
### Your First Code Contribution
90+
91+
Unsure where to begin contributing to SF Java UI? You can start by looking `help-wanted` issues:
92+
93+
### Pull Requests
94+
95+
* Fill in [the required template](PULL_REQUEST_TEMPLATE.md)
96+
* Do not include issue numbers in the PR title
97+
* Include screenshots and animated GIFs in your pull request whenever possible.
98+
* Follow the [Java](#java-styleguide) and [Java 8](#java8-styleguide) styleguides.
99+
* Include thoughtfully-worded, well-structured [JUnit](https://github.com/junit-team/junit4) specs. Run them using `mvn test`.
100+
* Document new code based on the [Documentation Styleguide](#documentation-styleguide)
101+
* Avoid platform-dependent code.
102+
## Styleguides
103+
104+
### Git Commit Messages
105+
106+
* Use the present tense ("Add feature" not "Added feature")
107+
* Use the imperative mood
108+
* Limit the first line to 72 characters or less
109+
* Reference issues and pull requests liberally after the first line
110+
* When only changing documentation, include `[ci skip]` in the commit description
111+
* Consider starting the commit message with an applicable emoji:
112+
* :art: `:art:` when improving the format/structure of the code
113+
* :racehorse: `:racehorse:` when improving performance
114+
* :non-potable_water: `:non-potable_water:` when plugging memory leaks
115+
* :memo: `:memo:` when writing docs
116+
* :penguin: `:penguin:` when fixing something on Linux
117+
* :apple: `:apple:` when fixing something on macOS
118+
* :checkered_flag: `:checkered_flag:` when fixing something on Windows
119+
* :bug: `:bug:` when fixing a bug
120+
* :fire: `:fire:` when removing code or files
121+
* :green_heart: `:green_heart:` when fixing the CI build
122+
* :white_check_mark: `:white_check_mark:` when adding tests
123+
* :lock: `:lock:` when dealing with security
124+
* :arrow_up: `:arrow_up:` when upgrading dependencies
125+
* :arrow_down: `:arrow_down:` when downgrading dependencies
126+
1127

0 commit comments

Comments
 (0)