257 lines
14 KiB
Markdown
257 lines
14 KiB
Markdown
# Usage
|
|
Add the desired library as following
|
|
```kotlin
|
|
implementation("me.proton.core:<name-of-the-lib>:<version>")
|
|
```
|
|
where `<name-of-the-lib>` reflect the one listed below, on lowercase, with `-` instead of spaces
|
|
`Util Android Shared Preferences: **0.1**` can be resolved as `me.proton.core:util-android-share-preferences:0.1`
|
|
|
|
Where there are all or some of `domain`, `data`, `presentation`, they can be imported together with the parent module.
|
|
```kotlin
|
|
implementation("~:network-domain:~")
|
|
implementation("~:network-data:~")
|
|
```
|
|
or
|
|
```kotlin
|
|
implementation("~:network:~")
|
|
```
|
|
while the first one is suitable for multi-module projects, the latter is the suggested solution for monolithic clients.
|
|
|
|
# Conventional Commits
|
|
|
|
- For each Merge Request, all commits must adhere to [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec.
|
|
- Whenever possible, use a module name as a scope (e.g. `fix(account-manager): Fix login issue.`).
|
|
- Use a proper sentence as a description — start with an uppercase letter, end with a dot.
|
|
|
|
## Allowed commit types
|
|
|
|
- <font color="grey">`build`</font><sup>*</sup>: Changes that affect build system (e.g. Gradle update)
|
|
- `chore`: Changes other than source or test code (e.g. library version updates)
|
|
- <font color="grey">`ci`</font><sup>*</sup>: CI configuration
|
|
- <font color="grey">`docs`</font><sup>*</sup>: Documentation changes
|
|
- `feat`: A new feature
|
|
- `fix`: Bug fixes
|
|
- `i18n`: Internationalization and translations
|
|
- `perf`: Performance Improvements
|
|
- `refactor`: A change in the source code that neither fixes a bug nor adds a feature
|
|
- `revert`: Reverting a commit
|
|
- <font color="grey">`style`</font><sup>*</sup>: Code style changes, not affecting code meaning (formatting)
|
|
- <font color="grey">`test`</font><sup>*</sup>: Adding new tests or improving existing ones
|
|
- `theme`: Changes related to UI theming
|
|
|
|
<sup>*</sup> Commits with those types, will be *skipped* when generating changelog.
|
|
|
|
# Gradle tasks
|
|
|
|
- `:my_module:projectHealth` or `buildHealth` - Runs dependency analysis on a single module or the whole project.
|
|
- `generateChangelog` - Generates a changelog since the last release (tag). Output is written to `CHANGELOG.md` file.
|
|
|
|
# Release
|
|
|
|
## Core libraries
|
|
Release process is based on [trunk branch for release process](https://trunkbaseddevelopment.com/branch-for-release/).
|
|
Release is done by the CI.
|
|
|
|
To trigger a new release, navigate to the latest CI build on the `main` branch and launch
|
|
the `trigger-new-libs-release` job. Before launching it, you can specify the next version number,
|
|
by entering a `NEXT_VERSION` variable. If unspecified, the version number will be calculated automatically.
|
|
|
|
The `trigger-new-libs-release` job will generate and update the changelog, and commit the changes to
|
|
the `main` branch. At this point you will be able to review the automatic changes.
|
|
If the changes are correct, you should push a new branch named `release/libs/X.Y.Z`.
|
|
|
|
When the release is successfully done:
|
|
* A message is post on internal communication tool using the content of the [`CHANGELOG.MD`](./CHANGELOG.md) under the entry `## [X.Y.Z].
|
|
* A tag `release/libs/X.Y.Z` is created from the commit used to do the release.
|
|
|
|
## Version
|
|
- Stable release `X.Y.Z` are published on `MavenCentral`.
|
|
- Snapshot from every commit on the `main` branch are available using version `main-SNAPSHOT` under `https://s01.oss.sonatype.org/content/repositories/snapshots/` repo.
|
|
|
|
## Coordinates
|
|
Core libraries coordinates can be found under [coordinates section](#coordinates)
|
|
|
|
| Coordinates |
|
|
|------------------------------------------------------|
|
|
| me.proton.core:account |
|
|
| me.proton.core:account-dagger |
|
|
| me.proton.core:account-data |
|
|
| me.proton.core:account-domain |
|
|
| me.proton.core:account-manager |
|
|
| me.proton.core:account-manager-dagger |
|
|
| me.proton.core:account-manager-data |
|
|
| me.proton.core:account-manager-data-db |
|
|
| me.proton.core:account-manager-domain |
|
|
| me.proton.core:account-manager-presentation |
|
|
| me.proton.core:account-manager-presentation-compose |
|
|
| me.proton.core:account-manager-test |
|
|
| me.proton.core:account-recovery |
|
|
| me.proton.core:account-recovery-dagger |
|
|
| me.proton.core:account-recovery-data |
|
|
| me.proton.core:account-recovery-domain |
|
|
| me.proton.core:account-recovery-presentation-compose |
|
|
| me.proton.core:account-recovery-test |
|
|
| me.proton.core:auth |
|
|
| me.proton.core:auth-dagger |
|
|
| me.proton.core:auth-data |
|
|
| me.proton.core:auth-domain |
|
|
| me.proton.core:auth-presentation |
|
|
| me.proton.core:auth-test |
|
|
| me.proton.core:contact |
|
|
| me.proton.core:contact-data |
|
|
| me.proton.core:contact-domain |
|
|
| me.proton.core:contact-dagger |
|
|
| me.proton.core:configuration-data |
|
|
| me.proton.core:configuration-dagger-staticdefaults |
|
|
| me.proton.core:configuration-dagger-content-resolver |
|
|
| me.proton.core:core-platform |
|
|
| me.proton.core:country |
|
|
| me.proton.core:country-dagger |
|
|
| me.proton.core:country-data |
|
|
| me.proton.core:country-domain |
|
|
| me.proton.core:country-presentation |
|
|
| me.proton.core:crypto |
|
|
| me.proton.core:crypto-android |
|
|
| me.proton.core:crypto-common |
|
|
| me.proton.core:crypto-dagger |
|
|
| me.proton.core:crypto-validator |
|
|
| me.proton.core:crypto-validator-dagger |
|
|
| me.proton.core:crypto-validator-data |
|
|
| me.proton.core:crypto-validator-domain |
|
|
| me.proton.core:crypto-validator-presentation |
|
|
| me.proton.core:data |
|
|
| me.proton.core:data-room |
|
|
| me.proton.core:domain |
|
|
| me.proton.core:event-manager |
|
|
| me.proton.core:event-manager-dagger |
|
|
| me.proton.core:event-manager-data |
|
|
| me.proton.core:event-manager-domain |
|
|
| me.proton.core:feature-flag |
|
|
| me.proton.core:feature-flag-data |
|
|
| me.proton.core:feature-flag-domain |
|
|
| me.proton.core:feature-flag-dagger |
|
|
| me.proton.core:human-verification |
|
|
| me.proton.core:human-verification-dagger |
|
|
| me.proton.core:human-verification-data |
|
|
| me.proton.core:human-verification-domain |
|
|
| me.proton.core:human-verification-presentation |
|
|
| me.proton.core:human-verification-test |
|
|
| me.proton.core:key |
|
|
| me.proton.core:key-dagger |
|
|
| me.proton.core:key-data |
|
|
| me.proton.core:key-domain |
|
|
| me.proton.core:key-transparency |
|
|
| me.proton.core:key-transparency-dagger |
|
|
| me.proton.core:key-transparency-data |
|
|
| me.proton.core:key-transparency-domain |
|
|
| me.proton.core:key-transparency-presentation |
|
|
| me.proton.core:label |
|
|
| me.proton.core:label-dagger |
|
|
| me.proton.core:label-data |
|
|
| me.proton.core:label-domain |
|
|
| me.proton.core:mail-message |
|
|
| me.proton.core:mail-message-dagger |
|
|
| me.proton.core:mail-message-data |
|
|
| me.proton.core:mail-message-domain |
|
|
| me.proton.core:mail-settings |
|
|
| me.proton.core:mail-settings-dagger |
|
|
| me.proton.core:mail-settings-data |
|
|
| me.proton.core:mail-settings-domain |
|
|
| me.proton.core:mail-settings-dagger |
|
|
| me.proton.core:mail-send-preferences |
|
|
| me.proton.core:mail-send-preferences-dagger |
|
|
| me.proton.core:mail-send-preferences-data |
|
|
| me.proton.core:mail-send-preferences-domain |
|
|
| me.proton.core:metrics |
|
|
| me.proton.core:metrics-dagger |
|
|
| me.proton.core:metrics-data |
|
|
| me.proton.core:metrics-domain |
|
|
| me.proton.core:network |
|
|
| me.proton.core:network-dagger |
|
|
| me.proton.core:network-data |
|
|
| me.proton.core:network-domain |
|
|
| me.proton.core:network-presentation |
|
|
| me.proton.core:notification |
|
|
| me.proton.core:notification-dagger |
|
|
| me.proton.core:notification-data |
|
|
| me.proton.core:notification-domain |
|
|
| me.proton.core:notification-presentation |
|
|
| me.proton.core:notification-test |
|
|
| me.proton.core:observability |
|
|
| me.proton.core:observability-dagger |
|
|
| me.proton.core:observability-data |
|
|
| me.proton.core:observability-domain |
|
|
| me.proton.core:observability-tools |
|
|
| me.proton.core:payment |
|
|
| me.proton.core:payment-dagger |
|
|
| me.proton.core:payment-data |
|
|
| me.proton.core:payment-domain |
|
|
| me.proton.core:payment-presentation |
|
|
| me.proton.core:payment-iap |
|
|
| me.proton.core:payment-iap-dagger |
|
|
| me.proton.core:payment-iap-data |
|
|
| me.proton.core:payment-iap-domain |
|
|
| me.proton.core:payment-iap-presentation |
|
|
| me.proton.core:payment-iap-test |
|
|
| me.proton.core:plan |
|
|
| me.proton.core:plan-dagger |
|
|
| me.proton.core:plan-data |
|
|
| me.proton.core:plan-domain |
|
|
| me.proton.core:plan-presentation |
|
|
| me.proton.core:plan-presentation-compose |
|
|
| me.proton.core:plan-test |
|
|
| me.proton.core:push |
|
|
| me.proton.core:push-dagger |
|
|
| me.proton.core:push-data |
|
|
| me.proton.core:push-domain |
|
|
| me.proton.core:presentation |
|
|
| me.proton.core:presentation-compose |
|
|
| me.proton.core:proguard-rules |
|
|
| me.proton.core:report |
|
|
| me.proton.core:report-dagger |
|
|
| me.proton.core:report-data |
|
|
| me.proton.core:report-domain |
|
|
| me.proton.core:report-presentation |
|
|
| me.proton.core:report-test |
|
|
| me.proton.core:challenge |
|
|
| me.proton.core:challenge-dagger |
|
|
| me.proton.core:challenge-data |
|
|
| me.proton.core:challenge-domain |
|
|
| me.proton.core:challenge-presentation |
|
|
| me.proton.core:telemetry |
|
|
| me.proton.core:telemetry-dagger |
|
|
| me.proton.core:telemetry-data |
|
|
| me.proton.core:telemetry-domain |
|
|
| me.proton.core:telemetry-presentation |
|
|
| me.proton.core:test-android |
|
|
| me.proton.core:test-android-instrumented |
|
|
| me.proton.core:test-kotlin |
|
|
| me.proton.core:test-quark |
|
|
| me.proton.core:test-rule |
|
|
| me.proton.core:user |
|
|
| me.proton.core:user-dagger |
|
|
| me.proton.core:user-data |
|
|
| me.proton.core:user-domain |
|
|
| me.proton.core:user-recovery |
|
|
| me.proton.core:user-recovery-dagger |
|
|
| me.proton.core:user-recovery-data |
|
|
| me.proton.core:user-recovery-domain |
|
|
| me.proton.core:user-recovery-presentation |
|
|
| me.proton.core:user-recovery-presentation-compose |
|
|
| me.proton.core:user-recovery-test |
|
|
| me.proton.core:user-settings |
|
|
| me.proton.core:user-settings-dagger |
|
|
| me.proton.core:user-settings-data |
|
|
| me.proton.core:user-settings-domain |
|
|
| me.proton.core:user-settings-presentation |
|
|
| me.proton.core:user-settings-presentation-compose |
|
|
| me.proton.core:user-settings-test |
|
|
| me.proton.core:util-android-dagger |
|
|
| me.proton.core:util-android-datetime |
|
|
| me.proton.core:util-android-shared-preferences |
|
|
| me.proton.core:util-android-strict-mode |
|
|
| me.proton.core:util-android-work-manager |
|
|
| me.proton.core:util-android-sentry |
|
|
| me.proton.core:util-android-device |
|
|
| me.proton.core:util-kotlin |
|