Make your project open source – digital guide

Building better products and services for Victoria by promoting open source.

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:

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 guide to open source software for Australian Government Agencies(opens in a new window) is a good resource if you want more in depth information.

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

Join the conversation on digital

Get advice and share your insights with other digital practitioners. Join the Single Digital Presence Community of Practice(opens in a new window).