It's been jolly nearly a week since the ComputerCraft went open source, so I thought I'd post some statistics, thoughts and what not. Note these are only correct at the time of writing
- There are 33 forks of ComputerCraft, possibly more. Computality is a 1.11.2 fork of CC, but isn't marked as such on GitHub.
- Of those forks, 14 of them have additional commits, many of which have been merged into the main repo.
- There have been 48 pull requests, of which 32 have been merged.
- There have been 83 new commits to the repo (I'm excluding merge commits here).
- There are 5 non-dan200 contributors.
These commits have fixed several bugs, as well as adding some new features. This includes:
- Added .getResponseHeaders() to HTTP responses.
- Return a HTTP response when a HTTP error occurs.
- Added a GUI to change ComputerCraft config options.
- os.time() and os.day() now accept parameters to give the real world time.
- Added os.epoch()
- Monitor text now glows in the dark.
- Added a "Pocket Computer upgrde API" so mod developers can add their own pocket upgrades.
- Added pocket.equipBack()/pocket.unequipBack() to add/remove pocket upgrades.
- shell.resolveProgram picks up on .lua files, meaning you don't need the file extension in the shell.
- The terminal pallet can now be configured with term.setPaletteColor()/term.getPaletteColor().
By the looks of it, there are several other exciting features in the pipeline.
I know a couple of people have some features they'd like to add to CC and want to put together a pull request. That's great - the more the merrier. However, I'd suggest a couple of things before wacking the fork button:
- Use Git: There have been several people committing via GitHub's web interface. For single file changes that's fine, but when you're changing anything more than that it gets confusing for everyone. If you don't know how to use Git, I'd really recommend following their Tutorial, or downloading one of the many GUIs out there - GitHub have a very user-friendly client.
- Don't commit to master: Create a new branch and add your commits to there. This means you can have multiple PRs on the go at once and, if master gets updated, it is much easier to rebase your commits. I've written a guide on how my repo is set up and how I handle merging.
- Think about what you're adding: Have a read through the suggestions forum and the list of closed PRs and think about what people's reactions have been to various additions. There is no point going to all the effort of a PR if it isn't going to benefit anyone. Try to avoid PRing in your favourite program or API unless you think it genuinely belongs in ComputerCraft. I'd personally prioritise improving the existing functionality of ComputerCraft than adding 20 new features.
If you're unsure, create an issue and ask. Even if your original idea is discarded, you might find some even better suggestions. There is also an IRC channel if you need to ask anything.
- Check it runs: Please, test everything. I've failed to do this once and it is dreadfully embarrassing, and causes more hassle for us all.
- Check it looks right: Have a prod through the rest of the code. Make sure yours follows roughly the same formatting and stylistic rules. While this is rather petty, a consistent codebase is easier to deal with.
- Contribute Have a look at other people's PRs. If you've got some feedback, say it (though try to be articulate).
Edited by SquidDev, 07 May 2017 - 10:15 PM.