Comments (13)
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.
@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.
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.
@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.
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.
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.
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.
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.
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.
@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.
@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.
@jobisoft I think your proposed language here is good!
from developer-docs.
This has been adjusted with: 84c1c3b
Closing issue.
from developer-docs.
Related Issues (20)
- build instructions do not work as stated in "getting started" HOT 7
- comm-beta build fails on fresh environment HOT 3
- Building esr versions of Thunderbird addendum
- Dead links in developer documentation about E-mail autoconfiguration HOT 2
- Explain why/if loading of customElements.js no longer necessary? HOT 1
- [Name Suggestion] Name Suggestion For Q4 2023's "K-9 -> Thunderbird For Android" Release.
- "Adapt to TB 115" page explains 3-pane window restructuring poorly HOT 1
- Better documentation of editing omni.ja
- "Adapt to TB 115" page needs to mention -moz-image-region going away HOT 1
- Missing code in "hello-world" extension tutorial HOT 3
- add link to kb article on how to open console logs
- allow change of default ImapMail folder location via GPO or Policies File HOT 1
- broken links: writing mochitest tests HOT 1
- mac build instructions do not work HOT 7
- calendar notifications not working HOT 1
- Commit message improvements
- CPG Link? HOT 1
- ics import error HOT 1
- OnProgress() -> onProgress() HOT 1
- Remove section about supported Manifest Keys and supported APIs
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from developer-docs.