Questions tagged [backward-compatibility]
The backward-compatibility tag has no usage guidance.
47
questions
0
votes
1
answer
95
views
How to decide when to increase the minimum supported C++ standard version?
I'm maintaining a library written in C++, which offers modern-C++ bindings for another API that's C-ish (it's this one, although I'm trying to make this question somewhat more general).
Now, when I ...
-3
votes
1
answer
189
views
When has C or C++ made itself intentionally backwards incompatible? [closed]
Context ( You can skip )
I will be doing a presentation on Python, and will be touching upon V3's decision to be intentionally backwards incompatible, and how that has affected Python long term. I ...
4
votes
2
answers
2k
views
Raising new exceptions in Python backward-incompatible?
I'm trying to know if we can freely raise new exceptions when maintaining methods of a versioned library.
Here is a minimal example of what the change could be:
import logging
def check_id_old(...
7
votes
9
answers
2k
views
Changing number of arguments of a function
I wanted to know the best practice(s) for ensuring scalability while passing arguments.
Say, in version 1.0 of an application, the foo function looks like this
void foo(int i)
Now, in version 1.1, ...
40
votes
7
answers
10k
views
Why do library developers deliberately break existing code?
Today, I updated ZBateson\MailMimeParser the PHP e-mail parser library from 1.x to 2.x.
Soon enough, my PHP error log started filling up with errors.
Noting where it happened, I found out that it had ...
0
votes
0
answers
82
views
Download method of type void vs response
Given a method that is widely used and has a void return type:
from somepackage import download_model
from somepackage import get_filename
def download(name, download_path):
response = ...
1
vote
2
answers
85
views
In client-server software systems, why should the client sometimes be backward-compatible instead of the server?
For instance, in the case of PostgreSQL, it is entirely acceptable to use a newer client to connect to an older server; but if you do the opposite, using an older client to connect to a newer server, ...
0
votes
3
answers
161
views
Should it be considered a BC break to return clone instead of new self?
(This question applies to the equivalent code in both Java and PHP)
I have a class like this:
class Foo {
private int $bar;
public function __construct(int $bar) {
$this->bar = $...
2
votes
1
answer
365
views
Backward compatibility testing
As a creator of a software library, how can I verify backward compatibility with earlier versions?
When using a dependency management (here: Maven), multiple versions of my dependency could be (...
0
votes
2
answers
2k
views
How to design front-end to handle multiple back-end versions
In my company, we're using Spring Boot to implement backend API and React to implement frontend including Web interface and Android/iOS apps.
Since our product is an Enterprise software, customers ...
4
votes
1
answer
1k
views
What would be the pros and cons of requiring major versions to be forward compatible? [closed]
So I was learning about forward compatibility, and I was wondering if you could warn a "dependent" that a dependency is backward compatible, but not forward compatible*, and vice-versa.
The SemVer ...
2
votes
3
answers
93
views
Using data to maintain compatibility when evolving RESTful service
I've been reading up on API versioning for REST APIs.
Most of the articles I've come across (here's an example) seem to focus on two options:
URI based versioning, e.g. v1/my_resource/
Media Type ...
-3
votes
1
answer
51
views
Software Platform/Framework Backwards Compatibility with Extensions
How do software platforms/frameworks test for backwards compatibility with third party extensions?
For instance, say I have a framework that many third party extensions rely on, and I want to make a ...
3
votes
2
answers
153
views
Code quality on backports branch with limitted lifespan
JuliaLang just hit version 1.0 the other week
I and many other package maintainers have thus updated out packages to work with julia 0.7 (the transitional release) and 1.0.
In doing so, we've often ...
0
votes
2
answers
848
views
How to test for backwards compatibility in NuGet?
Let us say I am working on a project with maybe 100 nuget packages installed and 50 of these packages require an update.
I would ike to get a clear overview on which package updates cause any ...
3
votes
4
answers
3k
views
Best practices for database backward compatibility
I am working on an app which has multiple versions deployed in the market. Different versions have modified databases and databases are to be synced between local storage and server storage by signed ...
3
votes
0
answers
1k
views
How has Windows maintained binary compatibility for over 20 years? [closed]
Modern Windows 10 can run binaries that were compiled on 20 years ago for Windows 95 or NT4, however I imagine that the libraries that the code is calling would have changed massively since then.
I ...
4
votes
3
answers
374
views
Why are minor breaking language changes not handled with transpilers?
For any successful programming language, making a breaking change to the language is extremely difficult. This is the case even for those changes where the legacy code could be reliably and ...
1
vote
1
answer
644
views
Architecture for Windows 7 Embedded and Windows 10 IoT
I am in the process of refactoring a large application originally written in .NET 2.0, running on an old version of Microsoft's Compact Framework. The idea is to refactor and rewrite the code so that ...
5
votes
1
answer
1k
views
Impacts of using class_alias() to maintain backwards compatibility in PHP
Scenario: An open-source PHP project that has existed for several years has too many classes in the main namespace that we want to refactor some of them into another namespace, but we have a widely ...
2
votes
1
answer
6k
views
ASP.NET Web API: enum or strings
I have an ASP.NET Web API application. It uses enums for some fixed sets of states or types. Now I need to extend enum to support more values. But it will break backwards compatibility so I need to ...
1
vote
1
answer
355
views
Ensure compatibility between software components
We do have several Components in our product which are
Component A
Component B
Component C
Dependencies are (if unmet the system fails):
A <-> B
B <-> C
We are currently creating a build ...
1
vote
3
answers
3k
views
Handle backward compatibility on API changes
I have an API which allows me to communication with a device.
The communication protocol is stored in a JSON file. It list the events that the device can raise, the functions, the frames format, etc.
...
1
vote
1
answer
82
views
Is an all-encompassing enumerator appropriate?
I will illustrate the problem with a specific case. Suppose we have a bit-flag style enumeration type defining different kinds of validations. It's tempting to define an enumerator like ...
6
votes
1
answer
133
views
How to deal with legacy functionality conflicting with new feature
I am working on a well established (aka clients using it for a while) video player. We recently found out that the drawing engine (ddraw) is deprecated in windows 8 and 10, and choose a modern ...
19
votes
1
answer
995
views
Why does(/did) Bertrand Meyer think subclassing is the only way to extend a "closed" module?
In Meyer's Object-Oriented Software Construction (1988) he defines the open/closed principle as follows:
A module will be said to be open if it is still available for extension. For example, it ...
20
votes
3
answers
5k
views
What is a good design for allowing backwards compatibility of files between different versions of software?
What is a good design for allowing backwards compatibility of a file type between different versions of software?
For instance, how does microsoft get word 2007, 2010 and 2013 etc... to all open docx ...
15
votes
3
answers
2k
views
Which version of Java should I use for a desktop application to reach the most users? [closed]
Am I correct to assume that most end users are using an older version than Java 8? Since I do not want to force people to upgrade in order to use my application, should I plan it to use Java 7 or even ...
4
votes
2
answers
2k
views
Changing method signature while keeping backwards compatibility
I've inherited an API to maintain.
Users can pass a callback function to the class which gets called on some event. The callback function is currently passed in a single argument.
I need to change ...
15
votes
3
answers
664
views
Is there any mechanism to make programming language more stable(compatible) for changes?
There are a big number of programming languages. Some of them grow up and become very popular. People use such languages more and more often. The founder of such language (or founding organisation/...
-1
votes
1
answer
750
views
Twitter Bootstap: Backwards compatibility? [closed]
I work for a university Digital Services team. Our university's main website uses the Ektron CMS (I have my own thoughts about this, but that's irrelevant). Because we maintain a university website, ...
1
vote
1
answer
127
views
Requirement that code changes within release be reverse compatible with DB schema
I have recently come across a requirement related to our release/SDLC process that seems a little out of the ordinary to me so I am writing this to inquire whether this practice is common and, if not, ...
3
votes
3
answers
3k
views
Is it safe to just use MySQLi?
I have developed an open source PHP application and currently it uses both the MySQLi or MySQL extension for backwards compatibility. I'm wondering about switching it over to only be compatible with ...
58
votes
14
answers
11k
views
Keep a programming language backwards compatible vs. fixing its flaws
First, some context (stuff that most of you know anyway):
Every popular programming language has a clear evolution, most of the time marked by its version: you have Java 5, 6, 7 etc., PHP 5.1, 5.2, 5....
6
votes
2
answers
1k
views
Is bash "finished"? [closed]
Should bash be expected to change in ways that break non-trivial amounts of existing scripts at some point in the (near/<5y) future? How much change has it gone trough in the last ten years ...
5
votes
2
answers
1k
views
How to decide how backward-compatible my new Mac OS X application should be?
I'm currently contemplating writing an OS X version of my Windows software. My Windows application still supports Windows XP, and I know that if I drop support for it now, our customers will cry ...
6
votes
2
answers
462
views
Use of versioned objects/data to handle program version compatibility?
Is there a common name for the practice of keeping a version number on your data, so that different versions of your program can identify, for example, "current", "legacy", and "too-old-to-deal-with" ...
1
vote
2
answers
300
views
What's the term for re-implementing an old API in terms of a newer API
The reason for doing it is to solve the case when a newer API is no longer backwards compatible with an older API.
To explain, just say that there is an old API v1.0. The maker of this API decides it ...
14
votes
2
answers
28k
views
What is .NET framework backward compatibility?
We develop a windows application in .NET 4 with a database of MySQL. When we are about to deploy that application, we install the .NET 4 framework in our client, then when installing the .NET ...
0
votes
1
answer
100
views
Compatibility Test and other testing method to use while building software
I will be adding a feature to the software and have to update or modify some of public API of the present open source software.
What are steps which could be taken to ensure the compatibility of the ...
8
votes
3
answers
2k
views
Strategy for backwards compatibility of persistent storage
In my experience, trying to ensure that new versions of an application retain compatibility with data storage from previous versions can often be a painful process.
What I currently do is to save a ...
2
votes
2
answers
249
views
How quickly is the silent IE upgrade likely to propagate to end users? What about managed corporate IT infrastructures? [closed]
According to this article from the BBC and this post on Microsoft's Exploring IE Blog, Microsoft has planned to automatically upgrade Windows XP, Windows Vista, and Windows 7's IE to the latest ...
19
votes
7
answers
12k
views
When to update jQuery?
When you recommend updating jQuery/jQuery UI? Or in other words: what are the best practices for updating jQuery/jQuery UI?
I’m working on a long project that will take at least one more year. In ...
2
votes
3
answers
739
views
Is C++0x Compatible with C?
I have heard that there will be a lot of changes done in C++ because of the new standard (C++0x). My question is: What are the major changes, and will C++0x be compatible with C++ 98 and C ?
3
votes
3
answers
182
views
Will any js libraries be updating api's with html5 under the hood?
So there is a lot of cool stuff in the html5/css3 specs which should be able to replace a lot of the stuff that have been traditionally done with javascript.
Does anyone know if any of the major js ...
2
votes
3
answers
912
views
Version Changes: How considerable are the compatibility issues in project?
For example if we consider ActionScript2.0(based on Objects but programming does not implement much OOP ) vs 3.0(highly OOP) its like a whole new scripting language in the sense of approach, ...
18
votes
13
answers
2k
views
C# or .Net features to cut off assuming no backward compatibility needed? [closed]
Any product or framework evolves. Mainly it's done to catch up the needs of it's users, leverage new computing powers and simply make it better. Sometimes the primary design goal also changes with the ...