Monday, February 9, 2015

Some recent confusion and frustration for me

So this one is going to be a little long, and while it might sound grumbly, I'm just venting a little frustration while thinking out loud about possible improvements to the ecosystem of a community I love.

I've been doing a little tinkering with Haiku recently and ended up wanting to submit some patches to BeMines. This led to me stumbling across some slightly confusing bumps in the road.

The first one that caught my attention was hitting a wall with my BeMines development (on HaikuArchives) because of a compilation error and having to stop working on it, then finding out the next day that a patch already existed for it but was only being applied downstream as part of the build recipe on HaikuPorter. Thankfully one of the devs was around to push the patch upstream, to the very Haiku controlled repo where Haikuporter was pulling the source from to build it.

So today I'm digging around through HaikuArchives, HaikuPorts, HaikuDepot etc... getting a feel for what software is where, which patches may need to be pushed upstream, how the Haiku software ecosystem might be streamlined a little, etc. It feels like there is a fair amount of redundancy which can make it confusing for newbies to figure out where they should be going for their software.

For example, after some digging around I figured out that the Haikuporter page that comes up first on Google is not actually the correct site anymore, but there was nothing on that page telling you this, and I didn't figure it out until searching that site for "install" and finding a buried page that there actually pointed me to the correct page and let me know the site has moved to a completely different server/service. (I'd have been fine if I'd googled for "HaikuPorts" instead of "HaikuPorter".)

And of course if I'd gone to the front page I'd have seen the notice, but I had just followed the top Google result for Haikuporter and ended up very confused (as other people are sure to do).

This isn't the only such source of such confusion for Haiku. There's also the deprecated download pages that have a subtle disclaimer at the top saying they're just an archive and the actual page has moved to the new download page which looks basically identical. I've seen multiple people come in the IRC channel having grabbed a nightly off the outdated site...

I've even stumbled back onto the old one a few times myself.

I feel like the content from these pages either needs to be absorbed into the new location (like a link to a sub-page of the same site with older builds archived or something, even if they're actually hosted off-site), or seriously archived (zipped up and stored somewhere just in case) and the existing URLs killed or redirected to the new ones. There should be a single working source for this kind of stuff. Not scores of pages with little disclaimers tacked on here and there saying they don't work anymore or aren't updated anymore that redirect you to some other newer page where you hope you've finally reached the correct place. Following deep links from Google or the like is a good way to not realize you're reading archived or deprecated information.

So for Haiku software we have a number of options... HaikuPorts (with the deprecated and current pages) as shown above...

HaikuArchives, with two separate URLs; one for the software, and one that serves as a sort of index to it...

So if you add something to the main HaikuArchives, you then need to also be sure it gets added to the index on the .io site...

HaikuDepot (both the actual application within Haiku where you find software to install, and the web based front end to it to manage the software etc)... The Haiku Depot page on Wikipedia provides a nice overview of this relationship.

And then of course the other places still like Haikuware and BeBits.

For part of this I think the basic hierarchy is HaikuArchives to serve as our upstream repository for all Haiku software (not just that which doesn't have another stable home), then HaikuPorter which can pull from there to build the packages that then end up in HaikuDepot.

If I want to help work on some Haiku software, I don't want to run into these kinds of issues where I have to make sure I submit the changes to, and coordinate with, multiple places because one time one place might have a patch another doesn't, but another time the patch might be somewhere else and not at the first place etc...

Let's look at BeMines for example. These are the options I end up looking at for where to make my changes:

  1. https://github.com/HaikuArchives/BeMines - "official site" now(?)
  2. https://bitbucket.org/haikuports/haikuports/src/bfc8cdeee4217470b9ff3673cc8869d679b1e117/haiku-apps/bemines/?at=master - had Haiku compilation fix patch not present at #1.
  3. https://depot.haiku-os.org/#/pkg/bemines/1/0b2/-/-/1/x86_gcc2?bcguid=bc2-ELMA - points to #1 as web site.
  4. http://haikuware.com/directory/view-details/games/classics/bemines - points to #8 as web site.
  5. http://clasquin-johnson.co.za/michel/haiku/repackaged-apps/games/bemines.html - .hpkg here - points to #6 as web site.
  6. http://darkwyrm.beemulated.net/apps/bemines.htm
  7. http://www.bebits.com/app/4597 - several bug reports here - points to #8 as web site.
  8. (http://darkwyrm-haiku.blogspot.com/)

With a little digging I settled on #1 as my choice of where to work from, but then of course I missed the patch from #2.

And that's just the software sources... not mentioning the community being split up between facebook (several different groups etc), google plus (several different pages/groups), the official site (where it is split between the forums, blogs, and article comments etc), IRC, the mailing lists, etc... or about how even development is split between github, bitbucket, haiku-os.org itself, and private sites... and let's not forget BeShare, dropbox, etc.

On Facebook...

On Google+...

On the official site...

The first and last of those, the blogs and news articles, have their updates listed on the main page of haiku-os.org. I've honestly never really used the forum.

I suppose once someone is more familiar with the community then they know the best places to go etc... but for a newbie it can be a little daunting. There are sites, or parts of the official site, where I essentially never go... the youtube channel, subreddit, the forums, twitter, vkontakte, flickr, etc.

And now we're even talking about adding another site to this collection by splitting icons and artwork out of the main source tree. While I can understand a need going forward to get the art resources better organized and not necessarily in the main OS source tree directly, it seems like this growing hydra needs a little taming as well lest it get out of hand.

The main site is serving as a decent central hub for now I suppose. I'm just a little frustrated after trying to figure out the software sources issue and still running into essentially duplicate sites that are now only archived. That HaikuPorter one has bit me before and I fell for it again now after not having done any development for a number of months.

I don't mean to sound overly negative. Just kind of grumbling out loud while I try to get a better handle on the ecosystem and see where maybe some concentration or automation might improve things.

6 comments:

  1. The HaikuPorts website with the yellow background will be removed and redirected to the one on bitbucket once we get all the tickets cleared out (http://ports.haiku-files.org/report/1). This older website was very unorganised and allowed work by contributers (both from the community and GCI) to bitrot.

    I have tried to argue for a landing page for HaikuPorts for marketing purposes, but I got nowhere because they couldn't see the situation from a non-devolper perspective.

    The yellow and blue HaikuArchives page is the landing page for it, but most people just use the standard github page. The index is always outdated because Augustin is the only one that bothers to update it (mainly because it was his idea).

    I have proposed the idea to fork the gpl Ubuntu web app store (https://apps.ubuntu.com/) as a web front end for HaikuDepot to display GUI apps and other content that would intrest end-users.

    Thus users wold go to the HaikuDepot web store in WebPositive and all the screenshots, ratings and icons would be pulled from the HaikuDepot Web server and shown to the user. The user can then click "download" which would tell the Desktop HaikuDepot app to start up and that the user wants to download a particular package from from it. The Desktop HaikuDepot app would display the same screen that you get when you double click of a package, only it would confirm the package download and not just the installation.

    The should be no patches in the haiku-* directories at all, as all of these apps should have a repo available to upstream changes to it. However these types of conventions are not being followed by everyone (https://bitbucket.org/haikuports/haikuports/issue/158/move-vncviewer-to-haiku-apps-vncviewer).

    The offical site is now: https://github.com/HaikuArchives/BeMines
    However the HaikuWare page is controlled by Jon Yoder can only be changed by him. I guess in away the BeMines on github is a Haiku fork and the one on Haikuware is the BeOS original.

    I am trying to clean up the social media sites, but it is slow going and I have been distracted lately by researching Drupal 8 or a replacement for it and researching the 8 code review tools that meet Haiku's basic criteria.

    My comments about a digital asset manager was not to rip out the icons and artwork from the git repo, but to create a place where people collaborate making icons for 3rd party software and create wall papers etc.

    ReplyDelete
  2. This helps clear it up some. Thanks Richie. :)

    I talked with some of the other devs yesterday as well, and they covered some of the same points about HaikuPorts (as far as needing to finish merging and then getting rid of the old site), and possibly merging the archived nightly builds under the current downloads page to also get rid of that redundancy (or clear out most of the content on the archive page and make it much more clear what's being stored there.)

    As for the HaikuDepot stuff, I do like the idea of a web app store of sorts. Basically to serve the functions the HaikuDepot web app is already serving (screenshot and icon management etc) as well as to actually give a nice web based version of HaikuDepot to the end user that actually allows one to initiate installation from.

    But... I'd worry about draining more developer time in making it happen, and I know there's a dislike of using GPL code if it can be avoided.

    They also discussed some potential ways to streamline the packages/ports process, and which sites were in development for recipes, ports, storage, etc. I trust their capable hands at this point.

    The main site could use some work as well, as you know and have been thinking about (to update to Drupal 8 or something at least, both to reorganize and clean up the site, but also to make updates easier etc. Drupal 6 is just painful and outdated at this point.)

    And finally the artwork stuff... I do think it should probably be moved into its own repo at some point, possibly under HaikuArchive or something, and have a web site as you describe created as a way to lower the barriers to creating quality icons and wallpapers etc.

    (There aren't many people who can create nice icons that follow the icon guidelines in Icon-O-Matic.

    https://www.haiku-os.org/development/icon-guidelines

    https://www.haiku-os.org/docs/userguide/en/applications/icon-o-matic.html

    http://www.haiku-inc.org/haiku-icons.html

    http://en.wikipedia.org/wiki/Haiku_Vector_Icon_Format

    In part, in my opinion, because IOM is so painful un-user-friendly, especially to beginners.)

    But honestly I think that's a low priority issue at the moment. There's just not enough content for that to be a big issue right now, and I think the manpower is better spent on the more pressing issues outlined further above. :)

    But that reminds me... I might tackle IOM a bit in another blog post. Both to tackle some of my pet peeves about the UI, and also to create a simple beginner tutorial to get people started. I think a little hand holding to create your first simple icon would go a long way toward getting people comfortable with digging in further (as I did). I'll never forget how completely alien that app was to me initially, and how I failed to accomplish anything meaningful my first few times poking at it.

    (I did some mockups trying to fix up the UI awhile back, but Stippi shot them down pretty soundly. I might revisit them taking his criticism into account and see if I can't still make it a little friendlier... but again, that's for another post.)

    ReplyDelete
  3. The Haiku project didn't want a lot of the great open source apps that have been written over the years to suddenly disappear, which is why they started hosting them. I just don't have time to maintain my Haiku stuff anymore, which is a bummer. If there's anything I can do to help (transfer project pages, etc.) just let me know. :)

    ReplyDelete
  4. Any idea what we're supposed to do for software, now that Haikuware and BeBits have been taken over by... Senryu? How and where do we get those files now?

    ReplyDelete
  5. Luposian: I would have directed you to the discussion on the Haiku Development mailing list, but I see that you are already following that and have commented there.

    http://www.freelists.org/post/haiku-development/Do-we-need-a-webstore-for-HaikuDepot-to-replace-HaikuWare

    Unfortunately as I've been out of the loop recently working on other things I don't have any better answer than that.

    Maybe Richie or someone else can comment further to enlighten us as to the current situation for end users regarding this issue.

    ReplyDelete