Thank you for your interest in Codename One! We have always been community driven and contibuting a pull request is the highest form of that.
Before you start working on something we would suggest talking to us in the discussion forum or asking a question on stack overflow with the codenameone tag. You can also contact us via the chat widget on the main Codename One website.
There are a lot of nuances and pitfalls when making a change or even with submitting an issue and it's worthwhile to ask first so the issue is clear.
Since Codename One is such a large project with so many different pieces contributing to each one of these pieces is a radically different process which is why discussion with the community is helpful.
Once we have a sense of what needs doing we suggest filing an issue so we can track the process. Filing an issue is a contibution in its own right. When you write clear concise issues with good test cases & screenshots we can assign them to a specific milestone and move the product forward more easily.
This is probably one of the most important things you can do as a contributor and probably one of the easiest things you can do. There are two big pieces of documentation you can edit right here on github!
The first is the JavaDoc which you can edit directly in the source code, if there is an ommission or a mistake you can just press the edit button on the file and make the change directly even without an IDE. These pull requests are highly appreciaed and will help future generations of developers!
The Codename One developer guide is genenrated from the wiki pages of this project you can just edit the wiki directly and your changes propogate into the developers guide. Don't forget to edit the authors section and add some credit!
The wiki uses the asciidoc format to generate HTML & PDF versions. There are plenty of guides on the internet to asciidoc but the syntax is pretty simple. Please try to maintin the convention for the guide as we automate many pieces in the guide generation and conversion.
We have a blog post that covers forking, running the simulator and submitting a pull request here. While it's pretty exhaustive it doesn't cover more esoteric features like ParparVM or the iKVM fork. For those our only reference is the source.
By contributing code you are granting Codename One shared ownership of your work. You still own it but Codename One will have the right to relicense your work based on our needs & treat this work as if it was developed by a Codename One engineer. This is important as we might need to provide propriatery licenses for commercial companies and we might want to change the general project license in the future to attract more developers.