This is the multi-page printable view of this section. Click here to print.
Contribution types
- 1: Provide advice
- 2: Contribute code
- 3: Fund projects
- 4: Undertake projects
- 5: Support the ready4 community
1 - Provide advice
What?
We need advice:
-
to help review and update our priority goals and develop, refine and implement strategies for achieving these goals;
-
to help plan and execute modelling projects that produce transparent, reusable and updatable computational models; and
-
to identify how our existing software and data can be usefully improved.
Who?
We wan advice from our users (coders, modellers and planners), stakeholders (funders, researchers and young people) and other supporters (those with relevant expertise in technical communication, building open source communities, product development, etc).
How?
Advice can be provided by:
-
Joining a volunteer advisory board to help shape the evolution of ready4. We plan on inviting expressions of interest (EOIs) for this type of role later in 2023. If you want to ensure that you are sent details of the EOI invitations, contact the ready4 project lead.
-
Participate in the advisory structures and events of individual modelling projects. The nature of these opportunities will vary by project and the team responsible for implementing each project. For those projects we lead ourselves, we typically promote such EOIs via the Orygen website and associated social media channels.
-
Flag software features, usability and documentation issues. If you have the capacity and willingness to also fix the issues you can approach this using the process for making a code contribution. Otherwise, you can do so by creating an issue on that software projects repository in our GitHub organisation. For example, to create a new issue relating to the ready4 foundation library, use https://github.com/ready4-dev/ready4/issues/new (you will need a GitHub account).
2 - Contribute code
What?
Test, improve or extend our software. This is essential to us achieving our following priority goals:
-
Priority 1. Launching the ready4 MVP systems model.
-
Priority 2. Maintaining ready4.
-
Priority 3. Applying ready4.
-
Priority 4. Growing a ready4 community.
Who?
To make a code contribution, you need to be a coder familiar with R, R Markdown and git. You will also need a GitHub account. For many types of contribution, you will also need to use our framework’s module authoring tools. We have yet to adequately document and refine these tools to make them easier for third parties to use (we plan to do this), so if you are interested in making anything other than a relatively minor code edit, we recommend that you first contact our project lead to discuss your idea.
As a contributor to ready4, you will also be expected to adhere to the
How ?
The process for making a code contribution, broadly conforms to the steps we itemise below, that we have minimally adapted from this template. If you need further help to make a contribution, you can contact the ready4 project lead directly.
-
Find an issue that you are interested in addressing or a feature that you would like to add. Ideally consider how your planned contribution matches our current priorities.
-
Fork the repository associated with the issue from our GitHub organization to your local GitHub organization. This means that you will have a copy of the repository under your-GitHub-username/repository-name.
-
Clone the repository to your local machine using:
git clone https://github.com/github-username/repository-name.git
- Create a new branch for your fix using:
git checkout -b branch-name-here
-
Make the appropriate changes for the issue you are trying to address or the feature that you want to add.
-
To add the file contents of the changed files to the “snapshot” git uses to manage the state of the project, also known as the index, use:
git add insert-paths-of-changed-files-here
- To store the contents of the index with a descriptive message, use:
git commit -m "Insert a short message of the changes made here"
- Push the changes to the remote repository using:
git push origin branch-name-here
-
Submit a pull request to the upstream repository.
-
Title the pull request with a short description of the changes made and the issue or bug number associated with your change. For example, you can title an issue like so “Added more log outputting to resolve #4352”.
-
In the description of the pull request, explain the changes that you made, any issues you think exist with the pull request you made, and any questions you have for the maintainer. It’s OK if your pull request is not perfect (no pull request is), the reviewer will be able to help you fix any problems and improve it!
-
Wait for the pull request to be reviewed by a maintainer.
-
Make changes to the pull request if the reviewing maintainer recommends them.
-
Celebrate your success after your pull request is merged!
3 - Fund projects
What?
Provide cash or in-kind resources to support us to achieve any or all of our priority goals:
-
Priority 1. Launching the ready4 MVP systems model.
-
Priority 2. Maintaining ready4.
-
Priority 3. Applying ready4.
-
Priority 4. Growing a ready4 community.
-
Priority 5. Extending ready4.
-
Priority 6. Integrating ready4 with other tools.
Who?
We are seeking support from multiple different types of funder. At this early stage of our development we would expect that the most impactful way of supporting ready4’s development will be to award funding for that purpose directly to ready4’s two institutional sponsors: Orygen and Monash University. Other ways to support ready4 will be to fund ready4 modelling projects led by other research institutions and which may or may not be formally affiliated with us.
How?
The two main categories of funding we seek are:
-
Core infrastructure. Essential to the success of priorities 1-2 and 3-6 above is adequately resourced support infrastructure. Financial support we receive for this purpose will primarily be dedicated to recruit a skilled team of data scientists (coders), modellers, technical documentation / training developers, community builders and stakeholder managers. Other important resource requirements relate to licensing appropriate technical solutions (hosting, security, workflow optimisation, etc) to support the ready4 community.
-
Modelling projects To advance priorities 3 and 5 above, teams with high quality plans to undertake modelling projects with ready4 need to be backed with financing. Typically funding provided to these types of projects will be primarily spent on employing modellers, data-scientists and other researchers and on supporting processes to meaningfully engage young-people, planners and other stakeholders.
If you would like to invite a funding proposal from ready4, contact the project lead. You can also simply make a direct donation to Orygen (please remember to specify www.ready4-dev.com as the reference for the project you would like to support!).
4 - Undertake projects
What?
A ready4 modelling project undertakes novel analysis of youth mental health topics by using, enhancing and/or authoring model modules, datasets and executables. Each ready4 modelling project has its own unique funder(s), governance, objectives and team. The links between modelling projects are in the form of a common framework and membership of a collaborative community.
Undertaking modelling projects will help us achieve our following priority goals:
-
Priority 3. Applying ready4.
-
Priority 5. Extending ready4.
Who?
Modelling projects should typically be led by a researcher (who may or may not be a modeller) or planner. The core project team will always include modelling expertise and, should authorship of new modules (or extensions to existing modules) be required, will also need to include coders. Advisory structures to engage young people and planners are also recommended.
How?
There are three main steps in implementing a ready4 modelling project.
Step 1: Develop model
Each project’s computational model is constructed by adopting one or more of the following strategies:
- selecting a subset of existing ready4 modules and using them in unmodified form;
- selecting a subset of existing ready4 modules and contributing code edits to these modules to add desired functionality;
- selecting a subset of existing ready4 modules and using them as templates from which to author new inheriting modules (which can be code contributions to an existing module library or distributed as part of a new library); and/or
- authoring new ready4 modules (most likely to be distributed in new code libraries).
As part of the validation and verification process for all new and derived modules, tests should be defined, bundled as part of the relevant module libraries and rerun every time these libraries are edited.
Step 2: Add data
By data we typically mean digitally stored information, principally relating to model parameter values, that can be added to the ready4 computational model to tailor it to a specific decision context (e.g. a particular population / jurisdiction / service / intervention) and set of underpinning beliefs (e.g. preferred evidence sources). Data for a ready4 modelling project will be from one or both of the following options:
- finding and using existing open access data from other ready4 projects;
- supplying new project specific data, appropriately describing these data and (for non-confidential records) sharing these data publicly.
Step 3: Run analyses
ready4 project analyses apply algorithms contained in ready4 modules to supplied data to generate insight and can be implemented by:
- adapting existing replication programs;
- authoring new analysis programs; and / or
- developing a user-interface to allow non-technical users to run custom analyses.
When reporting analyses, using a reporting template can be useful.
5 - Support the ready4 community
What?
Help other members of the ready4 community to apply ready4 by authoring documentation, developing training and posting answers in online help. This support is essential for us to advance the following project goals:
-
Priority 2. Maintaining ready4.
-
Priority 4. Growing a ready4 community.
-
Priority 5. Extending ready4.
Who?
Any community member (user or other stakeholders) can help us to improve the accessibility, clarity and usefulness of our documentation. Coders and modellers are particularly welcome to contribute support that leverages their technical expertise.
How?
The types of support that we welcome contributions on include:
- Improving the documentation contained on this website. To do this, you will need a GitHub account. Once you have that, you can:
-
flag a general issue and suggest improvements by clicking on the “Create documentation issue” link or visiting https://github.com/ready4-dev/ready4web/labels/documentation ; and/or
-
suggest edits to a specific page by clicking on the “Edit this page” link.
- Improve the documentation for specific library, executable or dataset:
-
for software documentation edits, you can use the same workflow as that for making a code contribution; and
-
for improvements to dataset documentation, we have yet to set up a streamlined workflow for this process, so for moment please contact the ready4 project lead directly if you ar interested in making this type of contribution.
- Contributing to developing other training and support resources (e.g. answering questions in online help, video turorials, etc). We believe that this type of content is most likely to become relevant when we have made more progress in developing the ready4 community. But again, if you are interested in this area, please contact the project lead to discuss.