JOSM & Wayland, how will it evolve?

I’m going to reply to some things in this thread.

On-topic:

Yep. Running JOSM with a newer JRE will “magically” make it work on Wayland natively. This is because JOSM uses Swing for the UI elements, and we don’t do any window environment specific things ourselves.

Off-topic

I’ve spent quite some time working on a conversion for the JOSM plugin repo to git, and JOSM core to git. I gave @stoecker access to the GitHub repo with the current conversion scripts. If you want to finish up the conversion, I’m more than open to replying to questions (poke me via @vorpalblade or on JOSM Trac). Realistically, it was probably “good enough” a few months back, but I was really trying to split out each plugin into its own repo at the same time.

This is one of the reasons why I invested time in making the maven build system. It is something that almost every IDE can import and use, although there are some quirks due to needing a josm-unittest package for plugin tests. Given the widespread use of maven, I would be extremely surprised if someone could not figure out how to get things working. If you wanted gradle/<random other build system>, those won’t happen. gradle because I’ve had way to much breakage on version updates, and the other random build systems because there isn’t good widespread IDE support.

It is also one of the reasons why I was working on-and-off on converting parts of JOSM from svn to git. The other reason is I often found myself working on multiple things at once (e.g. “1 big project + bug fixes for tickets”), and sometimes I was making changes to the same files.

Yes, I would have liked to continue working on JOSM. Rather unfortunately, I think one of the jobs I’m looking at will view continued work on JOSM as a conflict of interest.

In any case, I’ve got until Friday, and I’m trying to wrap up/clean up as much stuff as possible before I disappear.

What tooling would you suggest? If it is gradle, the answer is no. In my experience, there is almost always some kind of breakage when updating gradle between major versions, and that ended up being more work than I want to do between all the plugins that used it. maven should be more than enough for new developers since it is extremely easy to import the project into an IDE.

If it is github, the first step is always going to be converting the JOSM repos from svn to git.

If it is git, I’ve got a WIP repo for scripts to do the conversion that I shared with @stoecker. You can take a look at the generated repos at tsmock (Taylor Smock) · GitHub – I just updated them last week.

If it is “CI”, we already have GH workflows for JOSM core and I wrote a GH action for JOSM plugins.

The versioning system isn’t silly; it is a simple incrementing number. It does mean that we can’t do point releases, but that hasn’t been a big issue.

As noted elsewhere in this post, I’ve got scripts to convert JOSM and the JOSM plugin repo to git. Also, as noted elsewhere in this post, I’m still not happy with the conversions. They are probably “good enough”, but I was hoping to get something that was as close to perfect as possible. As far as patches go, I did accept patches by PR on GitHub, if people poked me about them. TBH, this is one area where I failed; looking at other people’s patches. If I got poked, I typically looked at them. But I had to get poked, since I usually forgot to look at the patches report on Trac.

The “awful bug reporting” system has one key advantage over GitHub and most other git forges: anonymous bug reports. Said bug reporting system is also part of the “archaic wiki” which has a ton of scripting for various things that could be replicated via GitHub actions. Do you want to spend the time on converting stuff? It should be fairly easy to do. Here are some possible steps:

  1. Write script that pulls down diffs from relevant wiki pages and applies them to the repo
  2. Write GH action that runs daily/weekly and syncs the wiki page history to the git repo
  3. Publish GH pages and test via adding additional sites to the respective JOSM subsystem

As far as the “perpetually out of date editor layer index” goes, it has layers that the ELI doesn’t have, much like the ELI has layers that our index doesn’t have. If you want to make the JOSM index more synchronized with the ELI, feel free to help out: https://josm.openstreetmap.de/wiki/ImageryCompare .

In short, instead of complaining, you could have worked the problem. Of all your points, the one I agree with the most is the “archaic wiki”. I’m worried that Trac will lose all support and a major vulnerability will be found. However, to move off of Trac to anything else, the following needs to happen:

  1. Convert the repos from svn to git (see previous comments on the conversion scripts I have)
  2. Make git mirrors of the various wiki pages that need scripts and add CI scripts for the intended platform (GitHub/Gitea/Forgejo, Gitlab, etc.)
  3. Make git mirror of help pages
  4. Synchronize existing tickets with new system. Make certain that tickets with patches attached are PRs instead of issues, but try to keep the current numbering system so that existing references don’t break or can be trivially rewritten.
  5. Convert remaining Jenkins CI scripts to CI scripts for intended platform (optional)
6 Likes

Me too. OTOH the ‘archaic’ Trac works much better than many new systems I have to use at work, so I’m not too worried :wink:

…At least since the newest release switched to python 3…

3 Likes

See also Struggling to switch to JOSM - #54 by jidanni

Why not a middle ground compromise of GitLab, either the gitlab.com hosted platform (which allows you to switch to self hosting in the future if needed) or running your own instance. Even Debian which is incredibly archaic does now use GitLab.

There’s been times when I want to make minor contributions, but the whole development ecosystem is an impediment for a casual or first time contributor.

5 Likes

Vincent tried to setup GitLab and failed after a lot of time spent.

1 Like

Both gitea and forgeo provide easy to setup self hosted github clones that are an order of magnitude easier to use than gitlab and nicely fit a project of JOSMs size (aka not the corporate source code versioning system for Microsoft or google).

That doesn’t imply that a migration wouldn’t be any work naturally.

6 Likes

Nor doesn’t it imply that people will stop whining if the thing is
hosted on a non-GitHub git platform :wink:

1 Like

I work at a technology company but I’m not in a technical role. Good to see these debates happen everywhere LOL! FWIW one of the biggest (if not the biggest) open source project on GitHub is Home Assistant and their pace of modern upgrades seems incredibly quick. May be something to imitate. It’s very first time contributor friendly to the point I’ve even considered jumping in on something small or design/copy wise.

From this conversation, it doesn’t sound like I’d be able to touch JOSM with a 10 foot pole until I significantly improve my technical chops. That is to the detriment of the future of the project as with any journey the first step is the hardest.

Even OSM, all our first edits we barely knew what OSM was I’m sure but we work through it, collaborate, and grow more confident to be able to contribute more. High barrier of entry discourages that first step.

2 Likes

And if self-hosting is too much work, JOSM could do worse than reach out to a service like Codeberg, which is a hosted Forgejo run by a German e.V. - no concerns about jumping in bed with Microsoft there.

3 Likes

Yup, Gitlab is confusing, Forgejo is easier than Github