Coder Social home page Coder Social logo

Comments (13)

darktrojan avatar darktrojan commented on September 26, 2024

I wrote this.

Hopefully by now your extension that runs in version 60 is stable and with minimal maintenance required. There's a large number of significant changes most extensions will need for compatibility with 68, and we all know that making changes unintentionally leads to more problems. If your version for 60 isn't broken, don't fix it.

You can have two versions with different Thunderbird compatibilities at the same time. The add-ons site has been modified to support this. By default it (currently) shows the latest extension version compatible with 60, unless you visit it from 68.

That all said, it is up to you.

from developer-docs.

eyalroz avatar eyalroz commented on September 26, 2024

@darktrojan : First of all - the place for your elaboration is the Wiki, not this issue page...

To the point, though,

Hopefully by now your extension that runs in version 60 is stable and with minimal maintenance required.

Not necessarily. That is, there are a bunch of things I would like to do with the extension which are relevant to version 60 and much earlier versions. In general these could be either bug fixes, cosmetic/graphic changes or new features.

There's a large number of significant changes most extensions will need for compatibility with 68, and we all know that making changes unintentionally leads to more problems. If your version for 60 isn't broken, don't fix it.

I don't understand that paragraph. There is no such thing as "my version for 60". I have one version of the extension for all Thunderbird versions I support, and I intend to keep it that way - unless there's a very good reason not to. When something in Thunderbird changes in a way which makes my existing code break, I usually do something like if (check_tb_version_somehow() > 123) { do one thing} else {do another thing} or try { do_things_the_new_way } catch(ex) { if (we_failed_since_new_way_doesn't_work) { do_things_the_old_way} else { throw(ex); }.

You can have two versions with different Thunderbird compatibilities at the same time.

Why would I want to maintain two versions of my extension?

from developer-docs.

mkmelin avatar mkmelin commented on September 26, 2024

You probably aren't doing your users any service by that. What's the point? Update, and you get the new functionality - like any other software. Instead you'd be risking that the functionality is broken in one of the versions. Up to you of course, but clearly nothing I'd recommend. You're talking about maybe two-three months of overlap before EOL anyway.

Agreed we should add the explanation to the documentation. I'd call that officially unsupported (meaning any issues with it should be marked WONTFIX.)

from developer-docs.

jobisoft avatar jobisoft commented on September 26, 2024

@eyalroz : No one is forcing you to follow Geoffs suggestion. If you have the time and the resources to go the extra mile and update your addon so that it stays backward compatible (that also involves testing it on older TB versions) you are free to do so.

Myself, I decided to not do that, so the current version of my add-on on ATN is only compatible with TB60 and as soon as TB68 beta is out, I will upload a "new" version, which is only compatible with TB68. That way all the changes I had to apply to the TB68 Version have no effect on my TB60 users. That is what Geoff was talking about and I fully agree.

Furthermore, the add-on update documentation we are currently working on should help authors to update there add-ons with minimal efforts. If you recall the discussions on the mailing list, the most dominant complain about the required changes was "taking lots of time". I do not want to make it even more complicated by explaining quirks on how to get it run in TB60 and TB68.

Christopher Leidigh is working on a separate documentation for that. We might link to it from the main guide, if there are no objections.

from developer-docs.

eyalroz avatar eyalroz commented on September 26, 2024

@mkmelin:

You probably aren't doing your users any service by that. What's the point? Update, and you get the new functionality

Update the extension, not Thunderbird. I don't control which version of Thunderbird people use. Some work on older systems / older distributions.

... like any other software.

On the contrary. Most application software, which is not intended for a build from source, makes an effort to be compatible not only with the latest and greatest operating system being used, but rather compatible much farther back - as much as is reasonable without bending over backwards. But - you know this. I mean, does Thunderbird require Windows 10 or Linux distributions based on kernel 5.x ? Of course not. IIANM, Windows XP is still supported (maybe even Windows 2000?)

from developer-docs.

mkmelin avatar mkmelin commented on September 26, 2024

Windows has its own set of baggage out of necessity. But it's hardly fruitful to compare applications to operating systems.

There is no valid reason for someone to stay on an older release (beyond the 2-3m) - and that is indeed unsupported and very much discouraged.

from developer-docs.

eyalroz avatar eyalroz commented on September 26, 2024

Windows has its own set of baggage out of necessity. But it's hardly fruitful to compare applications to operating systems.

I was comparing extensions to applications, not apps to OSes.

There is no valid reason for someone to stay on an older release

It doesn't matter wheter you (or even me) believe the reasons to be "valid" or not. It's just a reality that a lot of users use older versions. At any rate, we don't even have to take the discussion to these extremes. Version 31.0 is not even 6 years old. That's still pretty new. So assume I just want to support relatively-new versions - my point is the same.

from developer-docs.

mkmelin avatar mkmelin commented on September 26, 2024

Version 52 is around 3% of users now (and other versions even less). It's a myth that "a lot" of users use older versions.

from developer-docs.

jobisoft avatar jobisoft commented on September 26, 2024

How about changing the alert box a bit? Currently it states:

Even though you can write code compatible with both Thunderbird 60 and Thunderbird 68, it is not recommended.

How about:

Even though you can write code compatible with both Thunderbird 60 and Thunderbird 68, it is not suggested for the following reasons:

  • The amount of changes is huge and some changes are incompatible with TB60 so it will require extra steps to ensure the modified version compatible with TB68 also runs with TB60. You may actually break your add-on for TB60 users by releasing a backward compatible version for TB68 ("Do not fix something, that is not broken").
  • We think the time and resources needed to code and test backward compatible add-ons is not justified by the small amount of users running older versions of Thunderbird
    If you do want to stay backward compatible, you will find useful information here (link to Christopher's repository)

from developer-docs.

eyalroz avatar eyalroz commented on September 26, 2024

@jobisoft : This is a good practical suggestion. That is, without the authors changing their position on this matter, it clarifies things lets the reader make up their own mind.

from developer-docs.

cleidigh avatar cleidigh commented on September 26, 2024

@jobisoft
I like this also. I think strikes the appropriate tone. We can use Thunderstorm as a clearinghouse for the type of information we don't want to mainstream it will be relegated to those developers intent on dual support and not confuse others.

from developer-docs.

ryanleesipes avatar ryanleesipes commented on September 26, 2024

@jobisoft I think your proposed language here is good!

from developer-docs.

ryanleesipes avatar ryanleesipes commented on September 26, 2024

This has been adjusted with: 84c1c3b

Closing issue.

from developer-docs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.