We value your participation in this open source project. This page will give you a quick overview of how to get involved.
You can contribute to the project in any or all of the following ways:
- Ask a question
- Submit a bug report
- Request a new feature
- Suggest ways to improve the developer experience of an existing feature
- Add documentation
- Add a new feature, resolve an existing issue or add a new test to the project. (Goto Code Contribution Guidelines).
In case you are new to the open source ecosystem, we would be more than happy to guide you through the entire process. Just join our Discord server and drop a message in the #foss channel.
PRs with precise changes (like adding a new test, resolving a bug/issue, adding a new feature) are always preferred over a single PR with a ton of file changes as they are easier to review and merge.
We currently do not accept PRs that involve:
- Code refactoring without any new feature addition/existing issue resolution.
- Bumping of dependency versions (SDKs, Packages).
You can find all existing issues here. A good place to start is to take a look at "good first issues".
Step 1 - Identify the issue you want to work on.
Step 2 - Comment on the issue so that we can discuss how to approach and solve the problem.
Step 3 - Fork the foss42/apidash
repo to your account.
Step 4 - Create a new branch in your fork and name it add-feature-xyz
or resolve-issue-xyz
.
Step 5 - Run API Dash locally (More details here).
Step 6 - Make code changes in the branch.
Step 7 - Once code changes have been made. Make sure you add the relevant tests in the test
folder and run tests (More details here).
Step 8 - Open a Pull Request with a clear title and description and add a reference to the issue (#issue-number
).
Step 9 - Wait for feedback and review. We will closely work with you on the Pull Request.
Step 1 - Open an issue so that we can discuss on the new feature.
Step 2 - Fork the foss42/apidash
repo to your account.
Step 3 - Create a new branch in your fork and name it add-feature-xyz
.
Step 4 - Run API Dash locally (More details here).
Step 5 - Make the necessary code changes required to implement the feature in the branch.
Step 6 - Once the feature is implemented. Make sure you add the relevant tests in the test
folder and run tests (More details here).
Step 7 - Open a Pull Request with a clear title and description and add a reference to the issue (#issue-number
).
Step 8 - Wait for feedback and review. We will closely work with you on the Pull Request.
You can contribute by adding missing/new tests for:
- Widgets (
lib/widgets/
) - Models (
lib/models/
) - Utilities (
lib/utils/
) - Riverpod providers (
lib/providers/
) - Code generation (
lib/codegen/
) - Services (
lib/services/
).
Step 1 - Identify the test you want to add or improve.
Step 2 - Fork the foss42/apidash
repo to your account.
Step 3 - Create a new branch in your fork and name it add-test-xyz
.
Step 4 - Add the test to an existing test file or create a new test file in the test
folder.
Step 5 - Run the tests locally (More details here).
Step 6 - Open a Pull Request with a clear title and description of the tests you are adding.
Step 7 - Wait for feedback and review. We will closely work with you on the Pull Request.
This project supports the latest Dart 3 & Flutter version. If you are using older Flutter version that does not support Dart 3, you might get errors.
In case you are setting up Flutter for the first time, just go ahead and download the latest (Stable) SDK from the Flutter SDK Archive. Then proceed with the Flutter installation.
In case you have already setup Flutter, make sure to switch to stable
branch and upgrade it.
- Fork the project.
- Create a clone of the forked project on your computer to run it locally.
- Based on your desktop environment, enable Windows, macOS or Linux for the project. Select the same target device.
- Run the project by executing the following command:
flutter run
To run tests execute the following command:
flutter test --coverage
To generate coverage report as html execute:
genhtml coverage/lcov.info -o coverage/html
Note: On macOS you need to have lcov
installed on your system (brew install lcov
) to run the above command.
To view the coverage report in the browser for further analysis, execute:
open coverage/html/index.html
To run tests specified in a single file, execute the following command:
flutter test <file_path>.dart
Example:
flutter test test/widgets/codegen_previewer_test.dart
Instead of copy pasting from pub.dev, it is recommended that you use flutter pub add package_name
to add a new package to pubspec.yaml
. You can read more here.
Add below keys to macos/Runner/DebugProfile.entitlements
and macos/Runner/Release.entitlements
.
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.files.downloads.read-write</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
If not added, you can encounter a network connection error similar to the following while running your Flutter app on macOS:
ClientException with SocketException: Connection failed (OS Error: Operation not permitted, errno = 1)
You can read more here
Add the multiDexEnabled true
line to the defaultConfig
section at android/app/build.gradle file
android {
...
defaultConfig {
...
multiDexEnabled true
}
}