tl;dr : The next major EveHQ version project is starting, to improve the software’s code quality. Also if you are developer read below on how to contribute.
It has been just over a month now since EveHQ went through its ownership transition. Over that time, I’ve been going through the code (and there is a lot of it) to understand its workings while fixing some of the bugs you have reported. I have also been working on a roadmap plan on where I would like to see the EveHQ project go in the future.
A significant part of that plan requires a code base that is in a very manageable state. EveHQ’s codebase, which was started in 2006 has been evolving in a way that new functionality is added (and fixed) as needed, but it hasn’t gone through any cycles of architectural review and refactoring (at least from my perspective). This has lead the code to become a bit of a spaghetti ball, where code in one place affects code in a seemingly unrelated place, or in performing an action in the software runs a bunch of logic it really shouldn’t need to (but that logic was listening for events). Automated testing also plays a big part in manageable (and high quality) code bases, and the EveHQ code currently isn’t designed for quality automated tests. This makes it difficult at times to fix bugs, because one cannot easily tell if an accidental negative side effect happens somewhere else in the code due to the fix.
It is my immediate primary goal in the road map plan to do some “house cleaning” and “remodeling” of the EveHQ code base to get it up to the quality bar I hold my RL work code at. However this is a large amount of work and I cannot just stop producing minor updates to the current user base, so I am planning to kick start the v3 project and develop it in parallel with v2.x.
This is the code base as it is today. Bug fixes, feature enhancements and minor improvements will continue to be added into this code base. The amount of feature work that goes into this code base will be determined by the estimated time, but most major feature proposals will be looked at in the v3 code base.
This will be a new code base and not just a branch of the v2 code. Having a clean break allows for features and functions to be ported over with a new component design at the functional level, using v2.x as a template of user expectation.
Contributions from the community
Since taking over the codebase in September, I’ve been contacted by quite a number of EveHQ users who are also developers and beta testers, asking if & how they can contribute. I am always happy to have more hands helping with fixing bugs, writing improvements, etc. I will be opening the v2 code base to outside submissions immediately, with the v3 codebase in the near future after I get the developer documentation done (ie: expectations, styles, etc). The general process for writing a fix or enhancement for the v2 code base is as follows:
- Setup an account on the Bug tracker.
- Find a bug or other work item not explicitly tagged for v3, and post a comment that you want to work on it. I will assign it to you.
- Make a fork of the source code on BitBucket into your own work space.
- Work on the changes in your own fork, and when you are done, file a Pull request from the main fork.
- I will review the code changes and accept the requests pending any feedback or change discussions we have about the request.
Contributors after completing a work item will be added to the “team” in the bug tracker, so they can assign work items to themselves. I will also be setting up a forum section
I will post this information to the v2 developer wiki, along with details on any software & tools required.
For people interested in beta testing (or testing in general), I will have something for you in the nearish future. I am planning to get an automated build system put in place that will create daily (or weekly) “pre” builds of the code bases, so that brave people can try out potentially unstable code to see if a bug has been fixed or new functionality is working as intended. I will make an announcement when that facility is ready.
I am really looking forward to the future of EveHQ, and this is first step on the path to that future. I know not everyone gets excited about computer code as a software engineer does, but I hope you will be pleased at the end of this work with the improvements.