Skip to content

Commit 1d5e185

Browse files
committed
adds developer guidlines, still incomplete
1 parent 0c035c9 commit 1d5e185

File tree

3 files changed

+95
-3
lines changed

3 files changed

+95
-3
lines changed

CONTRIBUTING.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,8 @@ continue to add more commits to the branch you have sent the Pull Request from.
4040
1. Create a new branch (e.g. `issue-12`, `feat.add_foo`, etc) and check it out.
4141
1. Make your changes and commit them. (Did the tests pass?)
4242
1. Push your new branch to your fork. (e.g. `git push myname issue-12`)
43-
1. Open a Pull Request from your new branch to the original fork's `master` branch.
43+
1. Open a Pull Request from your new branch to the original fork's `master` branch.
44+
45+
## Developer Guidelines
46+
47+
See DEVELOPING.md for guidelines for developing this project.

DEVELOPING.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Development Guidelines
2+
3+
This document describes tools, tasks and workflow that one needs to be familiar with in order to effectively maintain
4+
this project. If you use this package within your own software as is but don't plan on modifying it, this guide is
5+
**not** for you.
6+
7+
## Tools
8+
9+
* [Gradle](http://www.gradle.org/): used to run predefined tasks. It also manages dependencies for the project. If you
10+
do not have it already installed, you won't need to install it. The gradle wrapper is included in the project and you
11+
can invoke it using `./gradlew` substituted for `gradle`.
12+
13+
## Tasks
14+
15+
### Building
16+
17+
Gradle's [Java Plugin](http://www.gradle.org/docs/current/userguide/java_plugin.html) provides various tasks to build
18+
this software. The most common tasks are:
19+
20+
* `gradle build` - build jars and test
21+
* `gradle clean` - remove previously built artifacts.
22+
23+
### Testing
24+
25+
This project's tests are written as JUnit test cases. Common tasks:
26+
27+
* `gradle check` - run the test suite.
28+
29+
### Generating Documentation
30+
31+
**TODO**
32+
33+
* Github Pages
34+
* docs directory
35+
36+
### Releasing
37+
38+
**TODO**
39+
40+
* Maven Central
41+
* Github Releases (jar files)
42+
* Github Pages upload should be a dependency
43+
44+
### IDE Integration
45+
46+
Gradle's [IDEA Plugin](http://www.gradle.org/docs/current/userguide/idea_plugin.html) and
47+
[Eclipse Plugin](http://www.gradle.org/docs/current/userguide/eclipse_plugin.html) provide tasks to generate project
48+
files for these IDEs. In general, neither of these are necessary to work on the project. If you prefer to use one of
49+
these IDEs, you may find those tasks helpful.
50+
51+
## Workflow
52+
53+
### Versioning
54+
55+
The project uses [semantic versioning](http://semver.org/) as a policy for incrementing version numbers. For planned
56+
work that will go into a future version, there should be a Milestone created in the Github Issues named with the version
57+
number (e.g. "v2.2.1").
58+
59+
**TODO** During development the version number should end in "-pre". The version number is hardcoded into the class
60+
`com.opentok.constants.Version`, and also specified in `build.gradle`.
61+
62+
### Branches
63+
64+
* `master` - the main development branch.
65+
* `feat.foo` - feature branches. these are used for longer running tasks that cannot be accomplished in one commit.
66+
once merged into master, these branches should be deleted.
67+
* `vx.x.x` - if development for a future version/milestone has begun while master is working towards a sooner
68+
release, this is the naming scheme for that branch. once merged into master, these branches should be deleted.
69+
70+
### Tags
71+
72+
* `vx.x.x` - commits are tagged with a final version number during release.
73+
74+
### Issues
75+
76+
Issues are labelled to help track their progress within the pipeline.
77+
78+
* no label - these issues have not been triaged.
79+
* `bug` - confirmed bug. aim to have a test case that reproduces the defect.
80+
* `enhancement` - contains details/discussion of a new feature. it may not yet be approved or placed into a
81+
release/milestone.
82+
* `wontfix` - closed issues that were never addressed.
83+
* `duplicate` - closed issue that is the same to another referenced issue.
84+
* `question` - purely for discussion
85+
86+
### Management
87+
88+
When in doubt, find the maintainers and ask.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@ work with OpenTok 1.0 archives.)
192192

193193
# Development and Contributing
194194

195-
Interested in contributing? We :heart: pull requests! See the Development and [Contribution](CONTRIBUTING.md)
196-
guidelines.
195+
Interested in contributing? We :heart: pull requests! See the [Development](DEVELOPING.md) and
196+
[Contribution](CONTRIBUTING.md) guidelines.
197197

198198
# Support
199199

0 commit comments

Comments
 (0)