Contribution

There is a newer version of this page. You can find it here.

Everyone who already tried to contribute to an open source project knows, that this can be a tricky task. Every project manages its code slightly different, defines different rights to commit, have different ways to communicate.

  • On one project you have to apply for a mailing list and post patches
  • On another project you commit to your own branch or fork
  • Some may have strong coding guidelines
  • Others are test driven developed and you need to pass a CI server

Best practices

As the scope of the projects on CODESYS Forge is very similar, we are defining some best practices here. But every project is still free to deviate from those rules.

Communication

If you need to contact one of the developers, just visit his profile and click on "send message". He will then receive an E-Mail.

Some projects might have a Forum. If so, this should be the first place to ask questions

Commit Code

For a more detailed description about Source Code or Ticket Management visit the following pages:

Otherwise you should follow the following rules:

  1. Create a Ticket if it doesn't exist, yet
  2. Assign the ticket to you
  3. Maybe add some comments to the ticket about how you plan to solve the issue

Now, it depends on your confidence:

  1. If the change is small and you have a high confidence, you can commit your change directly to "trunk" (SVN) or "Master" (Git).
  2. If the modification is bigger or you are not sure about your solution, you should commit it on a "branch" (SVN) or " Fork" (Git).
  3. If you commited directly to trunk/Master, you can now close the ticket. If you used a branch/Fork, set the status to "pending", add a comment to it and wait for a maintainer to integrate it.

Note, in every commit, you have to reference your ticket. For a better transparency there should be no commit without a ticket number.

Summary of rules

  • Either commit directly on trunk/Master or create your own branch/Fork
  • Name your branches or Forks after the corresponding ticket number. E.g.: "branches/ticket#26"
  • Don't close a ticket, which isn't merged, yet
  • Never commit w/o a ticket number
  • Also for releases, you should create a ticket, to trace the work involved in the release process.