Create account / Log in

Low Hanging Fruit

Discussion area for the development team.

Moderators: uckelman, Tim M

Low Hanging Fruit

Postby tinjaw » August 3rd, 2020, 8:15 pm

I am sure there are some issues that are brain-dead simple to fix, but they aren't fixed because of low ROI. Maybe I can help myself to better learn the codebase by tackling some of these issues.

Do any of you have anything in particular in mind in this category?
User avatar
tinjaw
 
Posts: 31
Joined: April 10th, 2020, 12:11 pm

Re: Low Hanging Fruit

Postby Flint1b » August 3rd, 2020, 8:38 pm

Super-low hanging fruit: fix checkstyle violations, look at the latest build under https://travis-ci.com/github/vassalengine/vassal (or build the master branch locally), fix the warnings that checkstyle spits out (currently whitespace). Once the current warnings are gone, we will turn them into build-breaking errors, and activate the next rules as warnings. There is still a lot to do in that area.

Other low-hanging fruit:
- get rid of compiler warnings (might be a bit tricky sometimes but some are quite easy to get rid of)
- write unit tests for simple classes (the ones that don't access anything static)
- find all the main() methods that are used for unit-testing, move that code into proper unit tests under src/test/java, just mark these unit tests with @Ignore so they are not executed automatically (IntelliJ has nice support for finding/creating unit tests for a given class, just press ctrl+T)
- error handling, find catch() blocks that do nothing or call e.printStackTrace(), change that to proper logging

I can explain these things in more detail if you are interested.
User avatar
Flint1b
 
Posts: 461
Joined: May 19th, 2020, 12:27 am
Location: Colonia Agrippina

Re: Low Hanging Fruit

Postby uckelman » August 3rd, 2020, 8:53 pm

Chasing down recently reported bugs in the bug tracker is always a good thing to do.
User avatar
uckelman
Site Admin
 
Posts: 8847
Joined: December 10th, 2007, 9:48 am
Location: Durham, England

Re: Low Hanging Fruit

Postby Flint1b » August 3rd, 2020, 9:17 pm

I have one more, as a newcomer you are best suited to write a wiki article about how to get started with Vassal development, using IntelliJ. We only have a guide for Eclipse, and none of us uses Eclipse anymore, and also most of us are too advanced and don't know what the typical problems are from a newcomers point of view.
User avatar
Flint1b
 
Posts: 461
Joined: May 19th, 2020, 12:27 am
Location: Colonia Agrippina

Re: Low Hanging Fruit

Postby Cattlesquat » August 3rd, 2020, 9:29 pm

Flint1b wrote:I have one more, as a newcomer you are best suited to write a wiki article about how to get started with Vassal development, using IntelliJ. We only have a guide for Eclipse, and none of us uses Eclipse anymore, and also most of us are too advanced and don't know what the typical problems are from a newcomers point of view.


That's a huge thumbs-up from me! Great idea! Especially because I intend to switch over from Eclipse soon.
User avatar
Cattlesquat
 
Posts: 890
Joined: December 2nd, 2019, 4:57 pm
Location: Baltimore, Maryland, USA

Re: Low Hanging Fruit

Postby Flint1b » August 4th, 2020, 4:33 am

tinjaw wrote:Do any of you have anything in particular in mind in this category?


You're a DevOps guy, this is good, this is what we were missing. I am just a developer and usually have the luxury of having proper DevOps people setup all the build pipelines for me, I introduced this whole Maven+TravisCI pipeline here but a lot of it is new for me and I have to learn it as we go. There's still a lot of room for improvement, we only use Travis for certain checks but the full beta/release builds are still done manually. Have a look at our build cycle, the Travis config, you'll probably have good ideas what to do best to fully automate it. I was thinking something along the line of using git tags to initiate full release builds on Travis, and have Travis upload the release packages to some place. Also there's the automated documentation-generation PR that will be merged shortly, it will generate pdf documents and it would be cool to generate online documentation as well and upload it to some place where people could access it by browser, like those other modern projects do.
User avatar
Flint1b
 
Posts: 461
Joined: May 19th, 2020, 12:27 am
Location: Colonia Agrippina

Re: Low Hanging Fruit

Postby tinjaw » August 4th, 2020, 8:31 am

I have no experience in specificly using Maven and/or TravisCI, but I do have generic CI experience. It shouldn't be that difficult to adapt. It will be good to add that to my skillset too. I am more familiar with JenkinsX. And my Java is a few years old, but I will get current on that very fast.
User avatar
tinjaw
 
Posts: 31
Joined: April 10th, 2020, 12:11 pm

Re: Low Hanging Fruit

Postby uckelman » August 4th, 2020, 10:30 am

Thus spake tinjaw via messages:
> I have no experience in specificly using Maven and/or TravisCI, but I do
> have generic CI experience. It shouldn't be that difficult to adapt. It
> will be good to add that to my skillset too. I am more familiar with
> JenkinsX. And my Java is a few years old, but I will get current on that
> very fast.

I will veto any use of Jenkins. We use Jenkins in my day job, and it has
been so miserable that I wish I'd never heard of it.

--
J.
User avatar
uckelman
Site Admin
 
Posts: 8847
Joined: December 10th, 2007, 9:48 am
Location: Durham, England

Re: Low Hanging Fruit

Postby tinjaw » August 4th, 2020, 10:38 am

uckelman wrote:I will veto any use of Jenkins. We use Jenkins in my day job, and it has
been so miserable that I wish I'd never heard of it.


Have no fear. I see this not as an opportunity to preach Jenkins as it is to learn Travis.
User avatar
tinjaw
 
Posts: 31
Joined: April 10th, 2020, 12:11 pm

Re: Low Hanging Fruit

Postby uckelman » August 5th, 2020, 12:57 pm

Thus spake tinjaw via messages:
> I am sure there are some issues that are brain-dead simple to fix, but
> they aren't fixed because of low ROI. Maybe I can help myself to better
> learn the codebase by tackling some of these issues.
>
> Do any of you have anything in particular in mind in this category?

Tending to new bug reports in the tracker is valuable. The ones marked
"ABR" came in via the automatic bug reporter from uncaught exceptions;
the ones assigned to "bugs@vassalengine.org" aren't assigned to anyone,
that's the catch-all address.

The ABR ones should have stack traces with them and will have the
exception type in the title. Just marking duplicates is helpful, even
if you can't figure out the cause. Fixing these is a force multiplier:
unfixed, we'll see lots more of them; fixed, they'll stop coming in.

The ones which aren't ABR bugs were entered manually, so in some cases
have sufficient description for reproducing them. (The ABR ones you
often have to reason about from the stack traces and the code.)

When I mark duplicates, I transfer over any contact email that was left
to the main bug, and I try to email all the reporters when a bug is
fixed.

--
J.
User avatar
uckelman
Site Admin
 
Posts: 8847
Joined: December 10th, 2007, 9:48 am
Location: Durham, England

Re: Low Hanging Fruit

Postby LoadEffectiveAddress » August 15th, 2020, 12:13 am

uckelman wrote:Thus spake tinjaw via messages:
I will veto any use of Jenkins. We use Jenkins in my day job, and it has
been so miserable that I wish I'd never heard of it.


Kind of off-topic, but I use Jenkins at work and have had far fewer problems with it than with our other solution. I am curious about what makes it so miserable for you. Not looking for an opportunity to change your mind, but I find the angry rants of others to be educational sometimes (i.e. perhaps your problems paint a useful picture of things to avoid). Could I encourage you to post a rant (maybe as a private message if this is not an appropriate place)?
LoadEffectiveAddress
 
Posts: 4
Joined: August 14th, 2020, 11:28 pm

Re: Low Hanging Fruit

Postby uckelman » August 23rd, 2020, 12:11 am

Thus spake LoadEffectiveAddress:
>
> "uckelman" wrote:
> > Thus spake tinjaw via messages:
> > I will veto any use of Jenkins. We use Jenkins in my day job, and it
> > has
> > been so miserable that I wish I'd never heard of it.
> >
>
>
> Kind of off-topic, but I use Jenkins at work and have had far fewer
> problems with it than with our other solution. I am curious about what
> makes it so miserable for you. Not looking for an opportunity to change
> your mind, but I find the angry rants of others to be educational
> sometimes (i.e. perhaps your problems paint a useful picture of things
> to avoid). Could I encourage you to post a rant (maybe as a private
> message if this is not an appropriate place)?

It's a combination of things:

* We have an authentication situation which seemeed supported, then we
found was only halfway supprorted, but we couldn't change the setup
in which we had to work not to use it, so ended up fixing some plugin
bugs and writing some code...

* We have a rather large DAG of projects we build; we want what's built
for PRs to project A to be used by the build of downstream project B that
successful builds of A trigger... This seems like a natural thing to want
so that you can be sure upstream changes break nothing downstream... but
then you find that Jenkins has nothing for figuring out branch matching
in this kind of situation... so we ended up writing a _lot_ of custom code
for that.

* It seems that the Groovy inside Jenkins has some oddball differences from
real Groovy, which are just maddening trying to figure out empirically.

* Jenkins in general has been an "attractive nuisance" at every step.
We set out to do something with Jenkins that appeared easy. Then we'd
fail to do it for several hours---but nonetheless, what we were trying
to do would STILL have the appareance of being easy. Jenkins has this
way of making it always look like you're _just about there_, no matter
how long you've been fruitlessly bashing away at it.

--
J.
User avatar
uckelman
Site Admin
 
Posts: 8847
Joined: December 10th, 2007, 9:48 am
Location: Durham, England


Return to Developers

Who is online

Users browsing this forum: No registered users and 3 guests