First off, thank you for considering contributing to TumblThree. It's people like you that make TumblThree such a great application. Your contributions to TumblThree are welcome, and warmly received! In doing so, here are the guidelines we'd appreciate you following:
- New to Open Source Software?
- Code of Conduct
- Got a Question, found an error or something missing?
- Where can I find what to contribute?
- Coding
- Other Contributions
- How to Open a TumblThree Pull Request?
- Collaborators
- The lifecycle of an issue
- The lifecycle of a PR
- All Contributors
For questions about how to use TumblThree, discussion regarding development issues or any other TumblThree related discussion, please direct these to our Issues.
If you've found a bug in the source or mistake in the documentation, you can help us by submitting an issue to our GitHub Issues, and even make a pull request addressing the issue. Please ensure an issue is created prior to creating a pull request, and reference the issue number from the PR.
You can request a new feature by submitting an Issue.
If you would like to implement a new feature yourself then first consider what kind of change it is:
- Major Changes - A new feature that is beyond an engineered extensibility point or otherwise of a non-trivial nature... Ensure an issue is open first. Failing to do so may result in your PR being rejected.
- Small Changes - A simple change, bugfix, or feature leveraging a planned extension point... You may create an issue if one doesn't already exist and a PR with no further consultation. Your PR has a higher probability of being accepted. But if no discussion has taken place prior to submission, prefix your PR with [WIP] to signify that your work is in progress, and discussion should take place within the pull request.
If you are not sure what you can contribute, please read the sections on this page. You can also have a look on the Issues and search for labels like or . Or you go through the issues and look, if something interests you and looks feasible to you.
Welcome! We aim to be a newbie-friendly community, so we have reserved issues for first-time OSS contributors.
- Find a issue and leave a comment saying you would like to work on it
- A maintainer will confirm the issue has been assigned to you
- If there are no open issues, you can come up with your own issue, or look on our ideas page if something interests you
- Issues tagged are reserved for those who have never made a PR to an open source community
- If you are assigned an issue, you have 14 days to complete it. You may ask for an extension if you need more time, but this rule is here to ensure issues do not go "stale"
- Feel free to ask any questions on your issue thread!
So you have finished working on your issue, congratulations! It's time to get it merged back into the main repo via a pull request.
- If you are making a PR, you should have an issue assigned to you[1]
- Write "closes #{issue number}" in your PR description so the issue is linked and automatically closed upon merge
- Include a brief description of what the PR addresses
- The build must be passing
[1] Exception: minor fixes (typos, etc.) do not need to have an open issue, you can just create a PR for it
- You can talk about the overall architecture changes or design decisions made in the PR
- Include link to other relevant issues or PRs
If you are not finished an issue but would like feedback, you can make a PR asking for reviews with [WIP]
at the start of your PR title. Remember to remove the [WIP]
when it is ready to be merged!
- Visual Studio 2019 (or higher), with all .NET features and latest patches/updates
- PowerShell
A summary of the steps necessary to build the source code is available on the Wiki page "How to build the source code and help further developing".
Besides the information already mentioned in the section "Something Missing?" above, you can find more information and ideas on the Wiki page "New Feature Requests and Possible Enhancements".
Of course, you don’t have to contribute code to TumblThree. If you don't know how to code, there are other ways you can provide your help and support. The following points shall give you an example and are not meant to be a fixed list of what can be done. Whatever your ideas and plans for your contribution are, get in contact with us or open an issue.
- Find an easily usable design/theme that can be used for a new website
- Design new graphics for the buttons in the TumblThree application
- Write and improve the project’s documentation
- Improve the existing Wiki
- Write content for the new TumblThree website (e.g. GitHub Pages) and build a menu structure
- Link to duplicate issues, and suggest new issue labels, to keep things organized
- Go through open issues and suggest closing old ones
- Ask clarifying questions on recently opened issues to move the discussion forward
- Answer questions for people on open issues
- Help moderate discussion boards or conversation channels
Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub.
You can find a short guide in our Wiki if you are new to Git. It shows you How to Open a TumblThree Pull Request to contribute any file (whether it's code or not) to our repository.
By submitting a pull request for this project, you agree to license your contribution under the MIT license to this project.
The people who are most active in the community.
- We appreciate the time you have taken to get to know the project, and you have been given push access to the main repository
- You are empowered to choose your own role, and be as involved (or not involved) with the project as you want
- You can (but are not limited to): answer questions, tag and approve issues, review PRs, merge PRs, do nothing, etc.
- You can update your "contribution emojis" as you take on more roles, but keep it to a reasonable amount of icons
- Use your judgement to make branches on the main repo, or push changes directly to master
- Delete remote branches once they are merged in
- Don't stress about making mistakes (force-pushes are disabled on master, so what's the worst that can happen...)
Your help in maintaining the project & community would be much appreciated.
Let's be like Panel #1, not Panel #2 :)
Take initiative, and be an active member of the community! Some examples:
- Suggest process improvements
- Answer questions that people ask on GitHub
- Take on larger or more complex issues
- Write issues
- A user submits an issue
- A collaborator reviews it, and asks any clarifying questions
- A collaborator assigns tags:
discussion
,first-timers-only
,blocked
,duplicate
,invalid
,wontfix
... - Once it is ready for development
help wanted
, and the category tag (feature
,bug
, ...) are added - Wait for a contributor to volunteer
- When a contributor comments that they would like to work on the issue, a collaborator will assign the issue
- Once a story is finished, the contributor should close the issue via a PR description
- If there has been no progress on the issue in 14 days, a maintainer should ask the assignee for its status and act accordingly (provide help, give more time, or if needed the issue should be closed and a new issue should be created to be re-assigned)
- A PR is submitted by a contributor
- A maintainer reviews the PR and uses github's built-in "review changes" system to request changes
- The contributor addresses any concerns
- Repeat previous 2 steps as needed
- Once both parties are satisfied, the PR will be merged into master
The code is released to production when needed.
We like the all-contributors specification. Contributions of any kind are welcome! See the list of contributors!
If at any point you feel like these guidelines should be changed, please open a PR against this file with the proposed changes and we can discuss it as a community.