-
Notifications
You must be signed in to change notification settings - Fork 6
Contributing
If you want to contribute to this project you are very welcome to do so! It could be in the form of bug reports, feature requests, code changes or whatever. For changes please start by filing an issue for what you want to do, even when you plan on doing it yourself. Then there can be a discussion on the issue if it's something that is feasible and desired and maybe how the solution should be. Minor, simple bug fixes may not always need an issue though.
Any changes made should be compiled and tested. So you are going to need an Amiga environment to make changes to the code. It's probably more convenient to use an emulator like FS-UAE than actual Amiga hardware. As far as I know there is no git port to Amiga OS and with an emulator you can have a shared filesystem with the host operating system where you can use git. (I also do editing of source files in Emacs under Linux and then compile and run in the emulated Amiga environment.)
If you don't have any copy of Amiga OS (Kickstart, Workbench etc) to run in the emulator and don't know where to get hold of one it can be purchased from the Amiga Forever project. The company behind Amiga Forever, Cloanto, is the current rights holder of the original Amiga OS components. The documentation for FS-UAE also has some pointers on how to get hold of Amiga OS or how to extract it from an actual Amiga.
The master branch should always be in a deployable state so don't make a pull request (to the master branch at least) until the change you're working on doesn't break anything. That doesn't mean that a big new feature need to be submitted as one big pull request. Please break things down into smaller pieces that can be implemented one by one.
Some other guidelines are:
- New code should be reasonably well designed and readable. Just because there is a lot of crappy existing code there's no excuse to add more crappy code.
- When changing existing code make an effort to clean it up. Be a good boy scout and leave the code a bit better than you found it.
- The "swenglishness" of the code should be reduced over time. The code should as far as possible be in English and not in Swedish.
Also see the Code style guide
NiKom is compiled with the SAS/C compiler for Amiga OS. The last version of it is 6.58. It was once a commercial product but you should be able to find it for download with some searching. Once SAS/C is properly installed you can build all of NiKom using the "buildall" script. It takes one parameter which is either "dev", "bin" or "full".
- Dev - builds the main binaries. Only builds the 68020 version.
- Bin - Builds a binary distribution which includes all binaries (both 68000 and 68020) together with release notes and license.
- Full - Builds a full distribution that includes documentation, text files, ARexx scripts etc.
> execute buildall dev
If not parameter is given it will default to "dev".
To get started with development you probably want to first execute "buildall dev". Then you can go into the directory of the component you want to work on and make incremental compilation with "smake". The compiled binary can be found in "NoDebug/68020".
There is work underway to make it possible to compile NiKom with GCC in Linux. This is not fully working yet though.