Before you begin
The purpose of this guide is to encourage the Victorian Public Service to make projects open source and explain why it’s important.
By opening our projects and making them available for sharing and re-use, we can avoid duplication and drive innovation and collaboration across the Victorian Government.
This guide is focused on open source code. You can also open source many other parts of your project, including design systems and content.
This guide was developed in collaboration with the Department of Justice and Community Safety, the Department of Premier and Cabinet, VicRoads and members of the open source community.
What is open source?
Open source is publicly sharing your project for others to use. This means people are free to use, study, modify and redistribute the assets, depending on the licence. Your project is released to the community free of charge for others to use.
The Victorian Government is active in the open source community:
- Single Digital Presence (opens in a new window)(SDP) is an open, flexible technical solution that government agencies can use to reduce the cost and effort of digital development. SDP shares its code and design system.
- The vic.gov.au website content is shared under a Creative Commons Licence.
- The National API Design Standards(opens in a new window) promote consistency and standardisation when designing and building APIs.
- The Department of Justice and Community Safety(opens in a new window) uses open source for their online platform.
The benefits of open source for the Victorian Government
- sharing of information and best practice
- increasing trust and transparency in government
- giving back to the community
- increase re-use and decrease cost of development
- increase quality
- learning and development opportunities for developers
What does the Victorian Government recommend?
Where projects may provide a benefit to others the assets should be shared. This enables the community to benefit from our investment in code, content and design systems to help them solve similar problems.
What standards must be met?
Security
Comply with the Privacy and Data Protection Act 2014, including the Victorian Protective Data Security Framework and Standards (VPDSS) on the Office of the Victorian Information Commissioner website(opens in a new window).
Privacy
Comply with the Privacy and Data Protection Act 2014 and the Information Privacy Principles. Refer to the Office of the Victorian Information Commissioner(opens in a new window) website.
Code should be provided with a licence, a privacy statement and contact information (where appropriate).
Refer to protect privacy - digital guide for more information.
Accessibility
All code should comply with the Disability Discrimination Act 1992. You must comply with the Web Content Accessibility Guidelines(opens in a new window) (WCAG) 2.1AA.
If your audience is primarily people with a disability (for example, National Disability Insurance Scheme (NDIS) clients), your site must pass the test for the AAA standard.
Refer to make content accessible - digital guide(opens in a new window) for more information.
Creating open source code
Things to consider when creating open source
- Ensure your resources have capacity to maintain the code.
- Ensure you have a process for responding to feedback from the open source community.
- Decide where you will host your code.
The Australian Government open source standard has more detail.
If you aren’t going to open source your project, the principles outlined in this guide can still be applied when developing code, to ensure good practice. This is known as inner source. Learn more about inner source in this GitHub article(opens in a new window).
Using open source projects
You can use open source software for many applications, including operating systems, websites, automation and policies.
The benefits of using open source
- best practice developed over years of peer review
- flexibility
- speed to market
- reduced time and money spent
- avoid lock-in
- stop duplication
- increase transparency
Things to consider when using open source
When thinking about using an open source project, it’s important to assess the health of the project. Here are some common things to look for:
- How many contributors (a high number of contributors is preferred).
- Strength of backing for the project.
- Level of adoption and use.
- When it was last updated.
- Whether it has frequent commits.
- Whether it has good processes documented.
- Whether it has automated test builds.
- What licence applies and does that work for your purposes.
- It should have a regular update process (check to see if minor bugs are being fixed every week).
- It has been released to common package managers (if appropriate), for example, NPM, Maven, NuGet, Composer, PIP or PPM.
It’s also important to consider different open source options and see how they align to your success criteria.
You can find open source on:
Acknowledging the use of open source
You must acknowledge the use of any open source packages you’re using in your project. This can be as simple as including an acknowledgments list in your readme file.
You should also ensure you’re complying with the licence terms of any open source package you use. Some licences require you to acknowledge the fact you have used another creator’s work and state that you have made changes to that work. You may need to seek legal advice to ensure you are complying with the terms of the licences of the open source packages you use.
Contributing back to the open source community
Releasing and using open source is important but it’s just as important to contribute back to the open source community.
If you upload a patch or enhancement or fix a bug in the code, make sure you contribute that back to the code base. Open source projects evolve and improve by contributions from all users.
Developers wanting to build their reputation and portfolio in the open source community can do so by contributing to open source projects.
Updated