HowTo - Support
Mattermost
The easiest way to get on board with us is to join our Mattermost. Mattermost is an instant messaging service, just like Slack, if you're familiar with that. You can register here, say hello in the Town Square channel or go straight ahead to the AskForTask channel to ask what needs to be done next.
GitLab
Our projects are organized and located at GitLab, if you don't have an account yet, you can register here.
In addition to hosting the Git repositories, GitLab also manages our tasks as so called issues on boards. You may know this from GitHub, Trello or JIRA. Please find details information about the individual boards and how we use them below (How are you working at DevelopersForFuture > Boards and Issues). You can find the boards in the navigation on the left side under "Issues" for each project repository.
If you haven't worked with GitLab before, you might want to take a look at the documentation and if you have any further questions, feel free to ask in our Mattermost!
Mattermost
If you have any questions or ideas, the Town Square channel channel in our Mattermost is a good place to go. There are always some of us to welcome you and guide you further. If you are looking for a task to support our movement and contribute to our projects, you can leave a message in the AskForTask channel and we will find something for you.
Gitlab
Additionally we use issues in the Gitlab repository developersforfuture for submitting bug reports or improvement requests, pitching ideas for new projects or discussing specific topics (similar to a forum thread). So if you have an idea ready to pitch and want to gather some feedback or start a discussion, feel free to create an issue for that. If you found a bug or have an improvement idea related to some specific project, we are always happy when you create the issue directly in the project repository instead.
Social Media
You can also reach us on Twitter as @DevsForFuture and on Instagram as DevsForFuture.
Project Repositories
You will find multiple repositories in our Gitlab group. They are created as soon as we start a new project, which needs an own code base, so that we have a dedicated version control and issue tracking. When you browse through the repositories you will have a good overview on all the projects we are working or have been working on - but there is one which might make you wonder because there is a lot of activity but no source code at all: The developersforfuture project. Here our whole organization takes place. Every new idea starts here with an issue where the overall progress is documented and also organizational and content topics are discussed within issues.
Boards and issues
We've already talked about the GitLab boards - that's where we are organizing most of our work. A board represents the workflow of a project, where each step or phase is one column. The issues (tasks or features) go from column to column, usually starting at "Open" (to be done) in the leftmost column, moving to the right and ending at the rightmost column, usually "Closed" (done). The phases in between can be different for each project board, depending on how much quality assurance, communication or deployment steps are needed.
Especially at the beginning a full board can be quite overwhelming and confusing. The labels we attach to the issues should help to get a better understanding:
- Issue and labels: https://i.imgur.com/g0f6nQB.png
You can also use the labels to filter the tickets on the board, e.g. to quickly find issues where JavaScript knowledge is required:
- Filtering issues with labels: https://i.imgur.com/E8DmEks.png
General Boards
To organize general tasks for DevelopersForFuture (creating content, discussing ideas, maintaining infrastructure) as well as to create a high level overview of ongoing projects, we use the boards in the developersforfuture project, each of them representing a specific task category:
- Content - This is about creating new content like articles or blog posts.
- Development - The name says it all: this is about development projects. The issues in this board are the Epics, giving an overview of the requirements and goals for the projects, which are then implemented in a separate project repository.
- Discussion - Ideas that need to be discussed first.
- Events - Even developers need to get some fresh air. But only if there is a real issue for it 😉.
- Infrastructure - This is about all the applications we are operating. This also includes our internal applications/services for DevelopersForFuture.
Contributing code
Let's say you've grabbed some development task of your choice and would like to submit a solution for it. You can do so "as usual" via merge requests (also called pull requests) that you can set up via GitLab.
If you're familiar with GitHub or some similar platform, you'll quickly find your way around. If you're new to merge requests, there's a fairly detailed description and a video in the GitLab documentation.
The short version: You develop your solution in your project's fork. When you're done, you submit a merge request to the project. Then another active developer in the project can have a look at your changes and try them out - basically doing a code review. If everything looks fine and works, your changes will be approved and merged to the main branch.
Boards and Issues
We've already talked about the GitLab boards - that's where we are organizing most of our work. A board represents the workflow of a project, where each step or phase is one column. The issues (tasks or features) go from column to column, usually starting at "Open" (to be done) in the leftmost column, moving to the right and ending at the rightmost column, usually "Closed" (done). The phases in between can be different for each project board, depending on how much quality assurance, communication or deployment steps are needed.
Especially at the beginning a full board can be quite overwhelming and confusing. The labels we attach to the issues should help to get a better understanding:
You can also use the labels to filter the tickets on the board, e.g. to quickly find issues where JavaScript knowledge is required: