Skip to content

Commit 23c57ce

Browse files
committed
docs: Updates README, adds CONTRIBUTING.md
1 parent 3d92be9 commit 23c57ce

File tree

2 files changed

+149
-4
lines changed

2 files changed

+149
-4
lines changed

CONTRIBUTING.md

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<!-- TOC -->
2+
3+
- [Contributing](#contributing)
4+
- [Branches](#branches)
5+
- [Commits](#commits)
6+
- [Use the Imperative](#use-the-imperative)
7+
- [Use the Body to Explain the Background and Reasoning, not the Implementation](#use-the-body-to-explain-the-background-and-reasoning-not-the-implementation)
8+
- [Subject Line Standard Terminology](#subject-line-standard-terminology)
9+
- [Documentation](#documentation)
10+
- [Code Review](#code-review)
11+
- [Deploy](#deploy)
12+
- [Task Workflow](#task-workflow)
13+
- [Definition of Done](#definition-of-done)
14+
15+
<!-- /TOC -->
16+
17+
# Contributing
18+
<a id="markdown-contributing" name="contributing"></a>
19+
*Detailed expectations for those contributing to this repository. A documented branching strategy is recommended. Trunk based development as default.*
20+
21+
This project uses a [trunk based development](https://trunkbaseddevelopment.com/) branching strategy.
22+
23+
[Trunk-based Development vs. Git Flow](https://www.toptal.com/software/trunk-based-development-git-flow)
24+
25+
## Branches
26+
<a id="markdown-branches" name="branches"></a>
27+
*Branch naming must be consistent. Additonal patterns above case may be added as necessary. Automated enforcement in CI is recommended.*
28+
29+
Branch names must be in [kebab-case](https://en.toolpage.org/tool/kebabcase).
30+
31+
## Commits
32+
<a id="markdown-commits" name="commits"></a>
33+
*Consistent, verbose commits reduce the need for additional documentation. May be used for generating changelogs. Detailed instructions must be included either through a documented specification or custom documentation. Automated enforcement in CI is recommended.*
34+
35+
This project uses the [conventional commit](https://www.conventionalcommits.org/en/v1.0.0-beta.4/) specification for commits.
36+
37+
https://github.com/talos-systems/conform
38+
39+
### Use the Imperative
40+
<a id="markdown-use-the-imperative" name="use-the-imperative"></a>
41+
*Consistent tense in commit messages. Automated enforcement in CI is recommended.*
42+
43+
In keeping with the standard output of git itself, all commit subject lines must be written using the imperative:
44+
45+
Your commit subject line must be able to complete the sentence
46+
47+
> If applied, this commit will ...
48+
49+
If it doesn't, it's non-conformant. The body may use any style you want.
50+
51+
### Use the Body to Explain the Background and Reasoning, not the Implementation
52+
<a id="markdown-use-the-body-to-explain-the-background-and-reasoning-not-the-implementation" name="use-the-body-to-explain-the-background-and-reasoning-not-the-implementation"></a>
53+
54+
*Especially* if the diff is rather large or extremely clustered, you can save all fellow developers some time by explaining *why* you did *what*.
55+
56+
When possible the addition of screenshots, recorded gifs or other visual media is recommended.
57+
58+
### Subject Line Standard Terminology
59+
<a id="markdown-subject-line-standard-terminology" name="subject-line-standard-terminology"></a>
60+
61+
First Word | Meaning
62+
--- | --
63+
Add | Create a capability e.g. feature, test, dependency.
64+
Cut | Remove a capability e.g. feature, test, dependency.
65+
Fix | Fix an issue e.g. bug, typo, accident, misstatement.
66+
Bump | Increase the version of something e.g. dependency.
67+
Make | Change the build process, or tooling, or infra.
68+
Start | Begin doing something; e.g. create a feature flag.
69+
Stop | End doing something; e.g. remove a feature flag.
70+
Refactor | A code change that MUST be just a refactoring.
71+
Reformat | Refactor of formatting, e.g. omit whitespace.
72+
Optimize | Refactor of performance, e.g. speed up code.
73+
Document | Refactor of documentation, e.g. help files.
74+
75+
## Documentation
76+
<a id="markdown-documentation" name="documentation"></a>
77+
*Documentation must be treated as an integral aspect of development. This section describes expectations for documentation rigor and placement.*
78+
79+
In cases where the impact of a change is such that it is affects a fundamental component of the system, additional documentation is needed above what is presented in commit messages. This is by discretion, but it is advised to err on the side of more documentation than less.
80+
81+
In these cases, documentation should be added as markdown files within the project directory.
82+
83+
## Code Review
84+
<a id="markdown-code-review" name="code-review"></a>
85+
*Expectations for conducting code reviews, the merger of code and subesquent tasks*
86+
87+
Pull requests require a minimum of one reviewer to accept changes prior to merge. It is the responsibility of the person submitting the pull request to schedule a code review.
88+
89+
[Google Engineering - Code Review Developer Guide](https://google.github.io/eng-practices/review/)
90+
91+
## Deploy
92+
<a id="markdown-deploy" name="deploy"></a>
93+
*Deployment steps from the perspective of an engineer required to deploy to all of the available evironments.*
94+
95+
Once a pull request is merged the changed will be automatically deployed to the appropriate environment.
96+
97+
# Task Workflow
98+
<a id="markdown-task-workflow" name="task-workflow"></a>
99+
*Description of how tasks are tracked through project management software and expectations of different roles.*
100+
101+
![Task Workflow Diagram](task%20workflow.png)
102+
103+
# Definition of Done
104+
<a id="markdown-definition-of-done" name="definition-of-done"></a>
105+
A task is complete when
106+
- All acceptance criteria have been met
107+
- Implementation has been code reviewed
108+
- All automated tests pass (e.g: Unit, end-to-end testing)
109+
- All manual tests pass (e.g: Functional, user interface testing)
110+
- Necessary documentation is reviewed
111+
- Implementation is deployed to the appropriate environment

README.md

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,34 @@
1-
# Google Drive Upload
2-
Simple uploader application written in [Micronaut](https://micronaut.io) and targeted at GCP for uploading files to a limited access Google Drive folder.
1+
<!-- TOC -->
32

4-
## Configuration
3+
- [Check-ins](#check-ins)
4+
- [Project Links](#project-links)
5+
- [Setup](#setup)
6+
- [directory.json](#directory-json)
7+
- [credentials.json](#credentials-json)
8+
- [Running the application](#running-the-application)
9+
- [Contributing](#contributing)
10+
11+
<!-- /TOC -->
12+
13+
# Check-ins
14+
<a id="markdown-check-ins" name="check-ins"></a>
15+
This web application is written in [Micronaut](https://micronaut.io) for uploading files and tracking skill set of team members. This application will also be used for PDL checkins and to auto-generate resumes from the skill set.
16+
17+
# Project Links
18+
<a id="markdown-project-links" name="project-links"></a>
19+
**Project Document:** \*TBA\*
20+
21+
**Project Board:** [Board](https://github.com/oci-labs/check-ins/projects/1)
22+
23+
**Environments:** \*TBA\*
24+
25+
# Setup
26+
<a id="markdown-setup" name="setup"></a>
527
There are two files required to run the application successfully. Both of which must be created and placed in
628
`src/main/resources/secrets`
729

830
### directory.json
31+
<a id="markdown-directory-json" name="directory-json"></a>
932
This is a simple JSON file containing the identifier for the Google Drive folder into which the uploaded files are to be deposited.
1033

1134
```json
@@ -15,6 +38,17 @@ This is a simple JSON file containing the identifier for the Google Drive folder
1538
```
1639

1740
### credentials.json
41+
<a id="markdown-credentials-json" name="credentials-json"></a>
1842
This JSON file should create the generated credentials for a service account that has access to write to the identified Google Drive folder. Information on configuring GCP service account credentials can be [found here](https://cloud.google.com/iam/docs/creating-managing-service-account-keys).
1943

20-
Note: Be sure that the target Google Drive folder has edit access granted to the service account.
44+
Note: Be sure that the target Google Drive folder has edit access granted to the service account.
45+
46+
### Running the application
47+
<a id="markdown-running-the-application" name="running-the-application"></a>
48+
To build this module, execute the following command twice : `./gradlew assembleServerAndClient`
49+
Once the build is successful, execute: `./gradlew run`.
50+
Open the browser to run the application at `http://localhost:8080`.
51+
52+
# Contributing
53+
<a id="markdown-contributing" name="contributing"></a>
54+
[Contributing](./CONTRIBUTING.md)

0 commit comments

Comments
 (0)