Browse Source

feat(docs): Add contributing docs

pull/490/head
jld3103 1 year ago
parent
commit
ba681dca67
No known key found for this signature in database
GPG Key ID: 9062417B9E8EB7B3
  1. 4
      README.md
  2. 2
      docs/README.md
  3. 46
      docs/contributing.md

4
README.md

@ -50,6 +50,10 @@ To decrease the developer burden, a lot of useful widgets and utilities have bee
Trying to make everything re-usable is a major goal of this project, as we want to close the gap between platforms and functionalities and make development of new clients and apps enjoyable and fast. Trying to make everything re-usable is a major goal of this project, as we want to close the gap between platforms and functionalities and make development of new clients and apps enjoyable and fast.
Developing a new Nextcloud client can be as easy as adding some UI and then necessary state management, everything else is taken care of for you. Developing a new Nextcloud client can be as easy as adding some UI and then necessary state management, everything else is taken care of for you.
## Contributing
Checkout our [contributing docs](./docs/contributing.md) to get started with developing with Neon.
## Development and support ## Development and support
We have a Matrix space where you can ask questions: https://matrix.to/#/#nextcloud-neon:matrix.org We have a Matrix space where you can ask questions: https://matrix.to/#/#nextcloud-neon:matrix.org

2
docs/README.md

@ -1,5 +1,7 @@
# Documentation # Documentation
## [Contributing](contributing.md)
## [Architecture overview](architecture.md) ## [Architecture overview](architecture.md)
## [Login user flow](login.md) ## [Login user flow](login.md)

46
docs/contributing.md

@ -0,0 +1,46 @@
# Contributing
## Setup
This project uses an assortment of tools for the development.
Currently included are:
- [fvm](https://pub.dev/packages/fvm) for managing Flutter versions
- [melos](https://pub.dev/packages/melos) for managing packages in this monorepo
- [husky](https://pub.dev/packages/husky) for managing git hooks
- [commitlint_cli](https://pub.dev/packages/commitlint_cli) for validating commits according to the conventional commits specification
To set up all these tools run the `./tool/setup.sh` script.
Note that you need to have Dart installed and [`~/.pub-cache/bin/` needs to be in your PATH](https://dart.dev/tools/pub/cmd/pub-global#running-a-script-from-your-path) before running the script.
## Conventional commits
We use conventional commits to have meaningful commit messages and be able to generate changelogs.
A non-breaking feature contribution to `neon_notes` could look like this:
```bash
git commit -m "feat(neon_notes): Add a super cool feature."
```
You can read the full documentation at https://www.conventionalcommits.org.
## Tools
We maintain a collection of scripts in `./tool/`.
They range from setting up a local Nextcloud server (`./tool/dev.sh`) to generating assets.
## Monorepo
For easier development we use a monorepo structure.
This means that we have multiple packages in one git repository.
We use [melos](https://pub.dev/packages/melos) to manage the packages in this repository.
Take a look at our [melos.yaml](../melos.yaml) to find useful commands for running commands like build_runner or the analyzer in all packages.
## Linting
We use very strict static code analysis (also known as linting) rules.
This enables us to maintain and verify a consistent code style throughout the repository.
Please make sure your code passes linting.
You can read more about it on [dart.dev](https://dart.dev/tools/linter-rules).
## Testing
If you found a bug and are here to fix it, please make sure to also submit a test that validates that the bug is fixed.
This way we can make sure it will not be introduced again.
## Documentation
Whenever you are submitting new features make sure to also add documentation comments in the code.
Please adhere to the [effective-dart](https://dart.dev/effective-dart/documentation) documentation guidelines.
Loading…
Cancel
Save