RasppleII / a2server

AppleTalk server for Apple II computers
Other
31 stars 8 forks source link

Version bloat? #45

Closed knghtbrd closed 8 years ago

knghtbrd commented 8 years ago

I fear I'm about to cause a flame war with this question, so I'll state from the outset my desire NOT to do that. Nonetheless, are we going to try to incorporate every single GS/OS version anyone releases as an OS installation choice from here onward? It seems best to me to apply the best defaults case, as we did by choosing 6.0.1 despite older versions being possible and 6.0.1 not having the most minimal system requirements of the available choices. This tends to support the idea of using only the latest version.

Of course its hard to argue for abandoning 6.0.1 since that was Apple's last release. Maybe some years in the future the community version will become the standard, but for now? So a choice needs to be presented, and has been.

So where does 6.0.2 fit in? Without getting into the interpersonal politics, should it be regarded as an early release of what became 6.0.3, or do we regard it as a forked project? With respect to Antoine (whom I personally have no reason to disrespect), I'm not inclined to encourage a fork. I understand there are two community versions of AmigaOS because of a fork. They happen to be incompatible at this point. I don't think that should be encouraged, especially as the two versions both claim to be simply GS/OS, continuing to use Apple's name- and version-space.

Of course if the secret cabal decides Antoine is not welcome to work with them, a fork is probably inevitable, even if pretty much everyone thinks it'd be a bad idea. Of course I don't know that's happening. I don't know it isn't. In fact I don't know anything, because only a select few do.

Most of all, I have no idea what WE should be doing about any of it. If anything?

knghtbrd commented 8 years ago

Sorry about the metadata spam, tiny touch interface + fat fingers.

IvanExpert commented 8 years ago

IMO, we don't fit in at all, and we should do nothing other than support whatever's out there. As far as I'm concerned, GS/OS 6.0.1 is only version I'm actually interested in. It's the last version produced by Apple, and it's pretty much assumed that if your GS can't run it, then you need to upgrade that machine. Enough people seemed to want the community releases that I put them in, but I made a point of clearly labeling them as a non-Apple thing.

It appears there are now three independent forks, produced by three independent entities: 6.0.1 (Apple), 6.0.2 (Antoine), and 6.0.3 (Tony). Obviously the Apple fork is not going to see further releases. 6.0.2 and 6.0.3 were, as far as I can tell, produced by separate members of the Apple II community, possibly without coordination, with separate design goals and delivery mechanisms (e.g. 6.0.2 having eight install disks, where 6.0.3 has six disks plus an alternative hard disk installer). That's why I provided both; for the very purpose of NOT playing politics.

I concur that forks are undesirable. However, community is as community does, and I don't think it's our job on this specific project to take a side or even try to influence outcomes, especially since I have no personal interest in or alignment with either "side," nor any insight as to which is the "better" side to align with. And even if I did lean one way or the other, I don't necessarily see that as being something that has to do with A2SERVER. It's only peripherally (ha) related to GS/OS, and is not an extension of one of these community release projects.

As for whether 6.0.2 should be removed: I don't have any idea whether 6.0.3 is a true superset of 6.0.2, and I don't actually much care. Unless Antoine and Tony jointly make it clear that one supersedes the other, which they haven't, my feeling is that they should be treated as separate forks. In a perfect world, they'd be called GS/OS Community Edition Antoine Release 1.0 and GS/OS Community Edition Tony release 1.0, or something like that, to clearly distinguish them from the official Apple release, and to keep the forks clearly delineated. (Only Apple can release official new versions of GS/OS 6.0.x, from my perspective, but others apparently feel differently.)

Anyway, I think this is a theoretical problem. I doubt new releases are likely to emerge all that often, especially from both camps; and if they do, it's trivial to put them into the installer as an option. I don't think it's our problem to decide what versions should or shouldn't be available to users, or sort out what comes from whom; we can just offer everything from 6.0.1 onward and call it a day. It's a nice thing to provide without having to take a position about. If someone (e.g. Antoine or Tony) who produced a Community Release comes out with a newer version that specifically supersedes their older one, then we could consider removing that older version while keeping any other forks (or not).

If you feel strongly enough about the forking issue, we could discuss whether we want to remove all community editions from the A2SERVER installer, but I'm not sure if that really benefits the community more than including all of them. And, separately, we could get on Facebook and CSA2 and initiate a converesation about it to try to bring people together or figure out who's talking to whom or at least improve clarity with regard to the version numbers so you don't have to ask the question of whether 6.0.2 is an earlier version of 6.0.3. But I think that's a separate issue from what we provide in A2SERVER itself.

On Nov 15, 2015, at 9:57 AM, Joseph Carter notifications@github.com wrote:

I fear I'm about to cause a flame war with this question, so I'll state from the outset my desire NOT to do that. Nonetheless, are we going to try to incorporate every single GS/OS version anyone releases as an OS installation choice from here onward? It seems best to me to apply the best defaults case, as we did by choosing 6.0.1 despite older versions being possible and 6.0.1 not having the most minimal system requirements of the available choices. This tends to support the idea of using only the latest version.

Of course its hard to argue for abandoning 6.0.1 since that was Apple's last release. Maybe some years in the future the community version will become the standard, but for now? So a choice needs to be presented, and has been.

So where does 6.0.2 fit in? Without getting into the interpersonal politics, should it be regarded as an early release of what became 6.0.3, or do we regard it as a forked project? With respect to Antoine (whom I personally have no reason to disrespect), I'm not inclined to encourage a fork. I understand there are two community versions of AmigaOS because of a fork. They happen to be incompatible at this point. I don't think that should be encouraged, especially as the two versions both claim to be simply GS/OS, continuing to use Apple's name- and version-space.

Of course if the secret cabal decides Antoine is not welcome to work with them, a fork is probably inevitable, even if pretty much everyone thinks it'd be a bad idea. Of course I don't know that's happening. I don't know it isn't. In fact I don't know anything, because only a select few do.

Most of all, I have no idea what WE should be doing about any of it. If anything?

— Reply to this email directly or view it on GitHub https://github.com/RasppleII/a2server/issues/45.

knghtbrd commented 8 years ago

On Sun, Nov 15, 2015 at 09:21:56AM -0800, IvanExpert wrote:

IMO, we don't fit in at all, and we should do nothing other than support whatever's out there. As far as I'm concerned, GS/OS 6.0.1 is only version I'm actually interested in. It's the last version produced by Apple, and it's pretty much assumed that if your GS can't run it, then you need to upgrade that machine. Enough people seemed to want the community releases that I put them in, but I made a point of clearly labeling them as a non-Apple thing.

That may be for the best, for reasons I'll try to dance around shortly.

Before the 6.0.2 and 6.0.3 releases, I thought someone ought to collect a list of binary patches for bugfixes to 6.0.1 and make them available on one site, with credits to the people who made them.
Your view that 6.0.1 is the only one that matters suggests that this should still be done.

It appears there are now three independent forks, produced by three independent entities: 6.0.1 (Apple), 6.0.2 (Antoine), and 6.0.3 (Tony). Obviously the Apple fork is not going to see further releases. 6.0.2 and 6.0.3 were, as far as I can tell, produced by separate members of the Apple II community, possibly without coordination, with separate design goals and delivery mechanisms (e.g. 6.0.2 having eight install disks, where 6.0.3 has six disks plus an alternative hard disk installer). That's why I provided both; for the very purpose of NOT playing politics.

I only have one side of the story, and not even from everyone involved on that one side, but I know that the efforts were not independent at the time. Whether they are today or not I cannot say.

I've spent a lot of time diffing hexdumps of changed files today, so I can say that 6.0.3 is definitively a superset of 6.0.2.

Antoine was part of a group which included Tony and others prior to his release. That release was clearly not by consensus of the group, but there's an argument that if he hadn't released 6.0.2, what became 6.0.3 wouldn't have been released when it was (if even by today.)

That said, I know that at least some of the other developers are not happy with Antoine for releasing 6.0.2 when and how he did, and I've heard some muttered doubts that his congratulations when 6.0.3 was released were intended in the spirit they were apparently offered. I really don't want to get into the middle of that one.

Whether these folks will work together in the future or are already doing so now despite any bad feelings anyone may be nursing, I can't say. If they can't, there's likely to be a fork. That's how these things tend to work.

I concur that forks are undesirable. However, community is as community does, and I don't think it's our job on this specific project to take a side or even try to influence outcomes, especially since I have no personal interest in or alignment with either "side," nor any insight as to which is the "better" side to align with. And even if I did lean one way or the other, I don't necessarily see that as being something that has to do with A2SERVER. It's only peripherally (ha) related to GS/OS, and is not an extension of one of these community release projects.

I think I agree about us taking sides: We shouldn't. If a fork happens, it's not our job to decide which one is superior. Others will do that.

My concern is whether or not having 6.0.2 encourages a fork. I don't know if it does or not. If everyone's just using 6.0.3 anyway, we can drop it at any time I suppose.

As for whether 6.0.2 should be removed: I don't have any idea whether 6.0.3 is a true superset of 6.0.2, and I don't actually much care. Unless Antoine and Tony jointly make it clear that one supersedes the other, which they haven't, my feeling is that they should be treated as separate forks. In a perfect world, they'd be called GS/OS Community Edition Antoine Release 1.0 and GS/OS Community Edition Tony release 1.0, or something like that, to clearly distinguish them from the official Apple release, and to keep the forks clearly delineated. (Only Apple can release official new versions of GS/OS 6.0.x, from my perspective, but others apparently feel differently.)

That at least I'd be in favor of. Particularly if source for both were published so that you could take your pick of the features and whatnot. This is how Linux distributions manage not to become incompatible with each other too easily, at least at the source level.

(They do become incompatible at the binary level largely thanks to glibc versioning silliness.)

Anyway, I think this is a theoretical problem. I doubt new releases are likely to emerge all that often, especially from both camps; and if they do, it's trivial to put them into the installer as an option. I don't think it's our problem to decide what versions should or shouldn't be available to users, or sort out what comes from whom; we can just offer everything from 6.0.1 onward and call it a day. It's a nice thing to provide without having to take a position about. If someone (e.g. Antoine or Tony) who produced a Community Release comes out with a newer version that specifically supersedes their older one, then we could consider removing that older version while keeping any other forks (or not).

It's only really a problem at all because of a decision I made that should perhaps be reversed. ProDOS 8 had its date table changed in 6.0.3. Realizing that these should be patched in the boot blocks, I asked Geoff and Andrew about it and they helped me find the offsets.
But I built a separate patch set for 6.0.1 and for 6.0.3 in the install-gsos.py I've been working on.

Three sets of patches is manageable. Five or six will get to be a bit much.

Perhaps the "correct" thing to do would be to always patch the date table? The P8 installed into 6.0.1 will not have the patched date table, but that could be fixed as well since I would patch the one installed in the a2boot directory. Probably should ask before overwriting that with a non-pristine file, but I'd default to yes.

I'll do that unless you think it's a bad idea.

If you feel strongly enough about the forking issue, we could discuss whether we want to remove all community editions from the A2SERVER installer, but I'm not sure if that really benefits the community more than including all of them. And, separately, we could get on Facebook and CSA2 and initiate a converesation about it to try to bring people together or figure out who's talking to whom or at least improve clarity with regard to the version numbers so you don't have to ask the question of whether 6.0.2 is an earlier version of 6.0.3. But I think that's a separate issue from what we provide in A2SERVER itself.

No, I think 6.0.3 should be in there. And I think 6.0.1 must be there, as the only official release. I've no major objection to having 6.0.2 there, but I figured asking the question might help when there's a 6.0.4, 6.0.5, 7.0, etc. Everyone involved indicates a desire to continue working on GS/OS after all.

Joseph

knghtbrd commented 8 years ago

I'm marking this as wontfix but leaving the issue open until I do what I intend to about it. In a nutshell, I'm going to try to have a word with both Tony and Antoine in a less public forum at some point and figure out from there what if anything I'll do about the status quo that all three versions are present. It might remain even if Antione thinks it isn't useful anymore just because at this point removing it could lead to (further?) fracturing in the community. I'm not interested in that. ;)

I'll close this whenever I do what I am going to do.

knghtbrd commented 8 years ago

TL;DR: I'll modify the menu text to indicate preference for 6.0.1 or 6.0.3, but leave 6.0.2 as an option

I spoke to a few folks and both Antoine Vignau and Tony Diaz in particular about past and future GSOS development. There were some miscommunications leading up to the releases, and not everybody was on the same page. So we got two releases and some ruffled feathers. The good news is that everyone still wants to work on it when and where necessary. The bad news is that nobody seems to be sure that everyone will work together when that happens, which leaves us right back where we started.

Antoine however points out that there's nothing in 6.0.2 that is not also in 6.0.3, so he'd recommend it and so do I. Ivan indicated a preference for 6.0.1 since it is a predictable, known quantity. It also has the advantage of being the one of the three Apple has allowed to exist.