Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backwards compatability #31

Open
WhiteFire-Sondergaard opened this issue Jun 18, 2019 · 2 comments
Open

Backwards compatability #31

WhiteFire-Sondergaard opened this issue Jun 18, 2019 · 2 comments

Comments

@WhiteFire-Sondergaard
Copy link

Can we have a long term stable version, or should I just ignore nPose 3 and fork myself my own nPose 2? Removing core functionality (DEFAULT for example) is not something I want to deal with running my store.

I went through this with Wendy's Open Collar where the API changed constantly, not interested in doing it again.

@HowardBaxton
Copy link
Contributor

HowardBaxton commented Jun 19, 2019 via email

@LeonaMorro
Copy link
Member

Hi,
I'm the one who is responsible for the changes in V3 ...
I'm also a fan of backward compatibility, but there are a few things when I would vote against it:

  1. if fixing a bug is not possible otherwise
  2. if I see a design descission that leads to overcomplicated workarounds inside the code (we only have 64K!)
  3. if I see a design descission that forces the user to make workarounds
  4. if I see timing or multiuser issues inside the code (problems that may happen but are mostly invisible and may or may not be reproducable). Because they are often not reproducable they must be eliminated on sight.
  5. if I really want to add a major feature or a bunch of features and it is not possible to add it otherwise (and (thanks to Howard) I try hard to keep its backward compatibility)

I hope that are good reasons ...

My point of view:
V2.01: is ok. It has some multiuser and timing issues inside the main scripts but I guess you could use it with several persons for a year without triggering one of them, nevertheless they are there. If you have a working nPose V2.01 object I see no compelling reason to update it.

V3.10: will be likely the the last version in the V3 era and I don't know of any major issues. If you start a new project I would be using this. API changes because of 1+2+3+4+5 in the above list

V4: The next release (hopefully this year) will be V4 and it implements some new features. There will also some (very?) minor "API" changes (considerably less as between V2 and V3). API changes because of 2+3+5 in the above list.

Removing core functionality (DEFAULT for example) ...

Well it isn't removed it just changed ... (I currently don't know of anythig that can be made in V2 but not in V3)
Defining the default card:
V2: instead of naming the the card as usual SET:xyz you have to name it DEFAULT:xyz
V3: add the following line to your .init NC (if you don't have one, create one): DEFAULTCARD|SET:xyz

PS: If I speak of bad design descission ... I don't want to say that anyone did a bad job ... I mean we all (this includes me) are making descissions and some of them are good and some of them are not as good and we are not able to see a bad descission in the moment we make the descission but we see them later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants