Contributing to development
Welcome to the W3Champions project, below is an orientation with a little info on how our stack works, how the project is developed, deployed, maintained and delivered.
This project has grown in size to be much larger than any one person, so we expect a lot of questions, and this page will help direct you to the best person to answer them: Team
So to begin with, the project is a microservice architecture with all of our services deployed in Docker.
You can read a little more about our infrastructure on this page: Infrastructure
For some more specific info about each microservice, this page is helpful: Components
There is a orientation video for the entire W3Champions tech stack here: Dev Orientation (It’s not expected that you will watch this in entirety! but it may be good as a reference if you need more context)
Jira
If you are new to the project, please contact one of the project admins and give them an email address that we can use to invite you to the Jira project.
We use Jira’s boards to loosely organise what tasks are being worked on (and of course confluence, where this document is located, for our documentation!).
We use Jira boards because:
We would like to know what tasks are unassigned in our backlog, to keep a record and allow developers to browse for new tasks.
We would like to know what tasks we accomplished each season, for reference that we can write our update notes.
We would like to know what tasks are blocking other tasks for epics and what needs to happen to proceed.
We would like to know who has claimed a task to work on, so as not to duplicate work.
If you’d like to find a task to work on, the first and usually best place to look is on the W3Champion Project’s backlog on the Jira board:
We also have a webhook to the W3Champions discord channel #jira - this webhook pushes a message whenever a new ticket is created , a comment is added to a ticket , or a ticket is closed
Github
We store and version our code on Github here: w3champions
The majority of our stack is open-source, but there are a few private repos that we keep closed for security. We will gladly give new developers access to the github org on request to work on these components.
Each microservice is its own repo, and when the master branch of the repo receives a new commit, it automatically triggers our Devops process: DevOps
If you are working on a task that has a Jira ticket, please submit PRs with a tag like [W3C-25] in the title corresponding to the name of the ticket. This helps track where we are at, and will drastically increase the chance your PR gets reviewed!
If you want a PR reviewed, let us know in the #development channel on discord and someone will take a look.
Discord
If you haven’t already, you can join our discord here: https://discord.gg/aFJQbxg
Let one of the admins know and we’ll give you access to the staff channels.
We have channels for various aspects of the project which are hopefully quite self-describing:
The most important channels for new developers are:
#staff-general is the general chat for staff members, quite a lot of people who are friends to the project have access, so consider this a public channel.
#development will be the place to ask for PR reviews or for any help with development tasks.
#new-staff contains a lot of discussion with people who are new to contributing, and has a lot of useful pinned links.
#bot-spam if you want to know or try out any of the discord bot commands.