Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 26 additions & 17 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,48 @@
# Contributing

Want to help? Great! 🙌 Work is driven by GitHub Issues, so that's the best place to start.

## Tree Hygiene

This project follows a **Gitflow** feature branching model. Please also use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) so others can scan the tree and understand changes at a glance. Pull requests for feature branches target the `develop` branch and once reviewed by a maintainer, will have their commits squashed for tidiness.

## Repo Structure

```
|- fastlane. : Build scripts and configuration
|- samples : Sample apps demonstrating usage of Mockzilla
|- mockzilla : The directory forming the core Mockzilla KMM module
|- mockzilla-common: Common utilities used by multiple other modules
|- mockzilla-management: A kotlin wrapper around the http apis defined in `mockzilla`
|- mockzilla-management-ui: Compose multiplatform app used to maniplulate mockzilla at runtime
|- SwiftMockzilla : The directory forming the SPM package
|- FlutterMockzilla: The directory containing the federated Flutter plugin

|- fastlane : Build scripts and configuration
|- samples : Sample apps demonstrating usage of Mockzilla
|- mockzilla : The core Mockzilla KMP module
|- mockzilla-common : Common utilities shared across modules
|- mockzilla-management : Kotlin wrapper around the HTTP APIs defined in `mockzilla`
|- mockzilla-management-ui : Compose Multiplatform management UI
| |- mockzilla-desktop : Desktop app
| |- mockzilla-mobile-ui : Mobile management UI (Android/iOS)
| |- mockzilla-management-ui-common : Shared UI code
|- SwiftMockzilla : The SPM package
|- SwiftMockzillaMobileUi : Swift management UI for mobile
|- FlutterMockzilla : The federated Flutter plugin
|- js-scripts : Web/JS support scripts
```

## Issues

All work is tracked using Github Issues. Before starting please ensure you create an Issue associated with your work if one does not exist.
All work is tracked using GitHub Issues. Before diving in, make sure there's an issue linked to your work — create one if it doesn't exist yet.

[https://github.com/Apadmi-Engineering/Mockzilla/issues](https://github.com/Apadmi-Engineering/Mockzilla/issues)

## Write your code!

For guidance on contributing to the Flutter packages, please checkout the [Flutter README](https://github.com/Apadmi-Engineering/Mockzilla/tree/develop/FlutterMockzilla).
For guidance on contributing to the Flutter packages, please check out the [Flutter README](https://github.com/Apadmi-Engineering/Mockzilla/tree/develop/FlutterMockzilla).

1. Checkout the tests. The library is setup with TDD in mind, we recommend writing your tests first!
1. Check out the tests. The library is set up with TDD in mind we recommend writing your tests first!
2. Implement your feature/bugfix!

### Testing through the demo apps.
### Testing through the demo apps

It's a good idea to sanity check your work by using the library through the demo apps.

Open the root of this repo in Android Studio and run the `samples.demo-kmm.AndroidApp` or `samples.demo-android` targets. The KMM iOS app can also be run through XCode as normal.
Open the root of this repo in Android Studio and run the `samples.demo-kmm.AndroidApp` or `samples.demo-android` targets. The KMM iOS app can also be run through Xcode as normal.

Note: Currently there's no way to test the Swift package locally without it first being deployed.

## Internal API (`@InternalMockzillaApi`)
Expand Down Expand Up @@ -70,6 +81,4 @@ Creating a pull request will check everything compiles and runs all your tests.
This section is specifically for Apadmi maintainers creating releases.

1. Releases are all managed automatically. To release a new version, merge the open release pull request as described here: [https://github.com/google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action).
2. Deploy the release to maven central from [https://s01.oss.sonatype.org/#stagingRepositories](https://s01.oss.sonatype.org/#stagingRepositories).


2. Deploy the release to Maven Central from [https://s01.oss.sonatype.org/#stagingRepositories](https://s01.oss.sonatype.org/#stagingRepositories).
Loading