diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39ec5274..629f66f8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: - name: Generate coverage report run: xcrun llvm-cov export -format="lcov" .build/debug/*PackageTests.xctest/Contents/MacOS/*PackageTests -instr-profile .build/debug/codecov/default.profdata > coverage.lcov - name: Upload code coverage report - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@master with: token: ${{secrets.CODECOV_TOKEN}} file: coverage.lcov @@ -59,7 +59,7 @@ jobs: - name: Generate coverage report run: llvm-cov export -format="lcov" .build/debug/*PackageTests.xctest -instr-profile .build/debug/codecov/default.profdata > coverage.lcov - name: Upload code coverage report - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@master with: token: ${{secrets.CODECOV_TOKEN}} file: coverage.lcov diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 19513b04..ed63bdb3 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@master - name: Generate documentation uses: SwiftDocOrg/swift-doc@master with: diff --git a/.github/workflows/markdown-link-check.yml b/.github/workflows/markdown-link-check.yml index 2932cef4..5bb33b4e 100644 --- a/.github/workflows/markdown-link-check.yml +++ b/.github/workflows/markdown-link-check.yml @@ -6,5 +6,8 @@ jobs: markdown-link-check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@master - - uses: gaurav-nelson/github-action-markdown-link-check@v1 + - name: Checkout + uses: actions/checkout@master + - name: markdown-link-check + uses: gaurav-nelson/github-action-markdown-link-check@master + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..b8acc741 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,93 @@ +# πŸ’ Contributing to this project + + +> First off, thank you for considering contributing to this project. +> It’s [people like you][ref-contributors] that keep this project alive and make it great! +> Thank you! πŸ™πŸ’œπŸŽ‰πŸ‘ + +The following is a set of **guidelines for contributing** to this project. +Use your best judgment and feel free to propose changes to this document in a pull request. + +**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) + +### πŸ’‘ Your contribution - the sky is the limit 🌈 + +This is an open source project and we love to receive contributions from our community β€” [**you**][ref-contributors]! + +There are many ways to contribute, from writing __tutorials__ or __blog posts__, improving the [__documentation__][ref-documentation], submitting __bug reports__ and __feature requests__ or +__writing code__ which can be incorporated into the repository itself. + +When contributing to this project, please feel free to discuss the change you wish to make via issue with the repository owners before making a change. + + + +### 🐞 You want to report a bug or file an issue? + +1. Ensure that it was **not already reported** and is being worked on by checking [open issues][ref-issues]. +2. Create a [new issue][ref-issues-new] with a **clear and descriptive title** +3. Write a **detailed comment** with as much relevant information as possible including + - *how to reproduce* the bug + - a *code sample* or an *executable test case* demonstrating the expected behavior that is not occurring + - any *files that could help* trace it down (i.e. logs) + +### 🩹 You wrote a patch that fixes an issue? + +1. Open a [new pull request (PR)][ref-pull-request-new] with the patch. +2. Ensure the PR description clearly describes the problem and solution. +3. Link the relevant **issue** if applicable ([how to link issues in PRs][ref-pull-request-how-to]). +4. Ensure that [**no tests are failing**][ref-gh-actions] and **coding conventions** are met +5. Submit the patch and await review. + +### 🎁 You want to suggest or contribute a new feature? + +That's great, thank you! You rock 🀘 + +If you want to dive deep and help out with development on this project, then first get the project [installed locally][ref-readme]. +After that is done we suggest you have a look at tickets in our [issue tracker][ref-issues]. +You can start by looking through the beginner or help-wanted issues: + - [__Good first issues__][ref-issues-first] are issues which should only require a few lines of code, and a test or two. + - [__Help wanted issues__][ref-issues-help] are issues which should be a bit more involved than beginner issues. +These are meant to be a great way to get a smooth start and won't put you in front of the most complex parts of the system. + +If you are up to more challenging tasks with a bigger scope, then there are a set of tickets with a __feature__, __enhancement__ or __improvement__ tag. +These tickets have a general overview and description of the work required to finish. +If you want to start somewhere, this would be a good place to start. +That said, these aren't necessarily the easiest tickets. + +For any new contributions please consider these guidelines: +1. Open a [new pull request (PR)][ref-pull-request-new] with a **clear and descriptive title** +2. Write a **detailed comment** with as much relevant information as possible including: + - What your feature is intended to do? + - How it can be used? + - What alternatives where considered? + - Has this feature impact on performance or stability of the project? + +#### Your contribution responsibilities + +Don't be intimidated by these responsibilities, they are easy to meet if you take your time to develop your feature 😌 + +- [x] Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback. +- [x] Ensure (cross-)platform compatibility for every change that's accepted. An addition should not reduce the number of platforms that the project supports. +- [x] Ensure **coding conventions** are met. Lint your code with the project's default tools. +- [x] Add tests for your feature that prove it's working as expected. Code coverage should not drop below its previous value. +- [x] Ensure none of the existing tests are failing after adding your changes. +- [x] Document your public API code and ensure to add code comments where necessary. + + +### βš™οΈ How to set up the environment + +Please consult the [README][ref-readme] for installation instructions. + + + +[ref-code-of-conduct]: t.b.d. +[ref-contributors]: https://github.com/fireblade-engine/ecs/graphs/contributors +[ref-documentation]: https://github.com/fireblade-engine/ecs/wiki +[ref-gh-actions]: https://github.com/fireblade-engine/ecs/actions +[ref-issues-first]: https://github.com/fireblade-engine/ecs/issues?q=is%3Aopen+is%3Aissue+label%3A"good+first+issue" +[ref-issues-help]: https://github.com/fireblade-engine/ecs/issues?q=is%3Aopen+is%3Aissue+label%3A"help+wanted" +[ref-issues-new]: https://github.com/fireblade-engine/ecs/issues/new/choose +[ref-issues]: https://github.com/fireblade-engine/ecs/issues +[ref-pull-request-how-to]: https://docs.github.com/en/github/writing-on-github/autolinked-references-and-urls +[ref-pull-request-new]: https://github.com/fireblade-engine/ecs/compare +[ref-readme]: https://github.com/fireblade-engine/ecs/blob/master/README.md diff --git a/Makefile b/Makefile index f30b7b39..23d0a326 100644 --- a/Makefile +++ b/Makefile @@ -55,13 +55,21 @@ cleanArtifacts: testReadme: markdown-link-check -p -v ./README.md -setupEnvironment: - brew update +generateCode: + sourcery --config ./.sourcery.yml --verbose +generateTestsCode: + sourcery --config ./.sourceryTests.yml --verbose + +brewInstallDeps: brewUpdate brew install swiftenv brew install swiftlint brew install sourcery -generateCode: - sourcery --config ./.sourcery.yml --verbose -generateTestsCode: - sourcery --config ./.sourceryTests.yml --verbose \ No newline at end of file +brewSetup: + which -s brew || /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" + +brewUpdate: brewSetup + brew update + +setupEnvironment: brewInstallDeps + open Package.swift diff --git a/README.md b/README.md index 9af39d30..8e52c72a 100644 --- a/README.md +++ b/README.md @@ -233,15 +233,22 @@ See the [Fireblade ECS Demo App](https://github.com/fireblade-engine/ecs-demo) t Consult the [wiki](https://github.com/fireblade-engine/ecs/wiki) for in-depth [documentation](https://github.com/fireblade-engine/ecs/wiki). -## 🏷️ Versioning -We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/fireblade-engine/ecs/tags). +## πŸ’ How to contribute -## ✍️ Authors +If you want to contribute please see the [CONTRIBUTION GUIDE](CONTRIBUTING.md) first. -* [Christian Treffs](https://github.com/ctreffs) - *Initial work* -* [Manuel Weidmann](https://github.com/vyo) +To start your project contribution run these in your command line: +1. `git clone git@github.com:fireblade-engine/ecs.git fireblade-ecs` +2. `cd fireblade-ecs` +3. `make setupEnvironment` + +Before commiting code please ensure to run: + +- `make precommit` + +This project is currently maintained by [Christian Treffs](https://github.com/ctreffs). See also the list of [contributors](https://github.com/fireblade-engine/ecs/contributors) who participated in this project. ## πŸ” License