Is there an easy way to check library compatibility with Django versions? - django

I have inherited a Django application that is currently on 1.4 (so no longer officially supported). I am working my way through the Django versions, upgrading the application and obviously many of the libraries used in the application are quite old versions as well.
Is there an easy / standard way to know what versions of a certain library will be compatible with specific Django releases?

Related

Which is the correct steeltoe connector for Redis in VMWare(PCF) Application Service

Looks like there three connector nuget packages available from steeltoe https://www.nuget.org/packages/Steeltoe.Connector.ConnectorCore/
https://www.nuget.org/packages/Steeltoe.Connector.CloudFoundry/
https://www.nuget.org/packages/Steeltoe.CloudFoundry.ConnectorCore/. I have an ASP.NET Core application in .net core 3.1. Which one I should select now? Also can i get detailed documentation of each of these packages. Looks like Steeltoe.Connector.ConnectorCore need .netcore3.1 and the other two simply requires .nestandard2.0. Any idea why is it so? Ideally all reusable libraries target .netstandard2.X, if I am not wrong
For Steeltoe 3.0 use Steeltoe.Connector.ConnectorCore and Steeltoe.Connector.CloudFoundry - https://steeltoe.io/docs/3/connectors/usage#cloud-foundry
For Steeltoe 2.x use Steeltoe.CloudFoundry.ConnectorCore.
As far as the targeting goes, Steeltoe 3.0 is focused on .NET Core 3.1+, so we aren't intentionally building compatibility for anything older on that branch. There may be some cases where we're targeting netcoreapp3.1 and could be targeting netstandard2.0... We've already dialed back several packages, though it doesn't look like ConnectorCore has been adjusted yet, we'd have to look at it to see if we can.
If you use anything that came before .NET Core 3.1, you should use Steeltoe 2.x, which is still maintained.

C++ runtime compatibility in an iOS library

I need to distribute a closed-source library (in the form of a dynamic .framework) which uses C++ internally and exposes an Objective-C API at the module boundary. The library will be used by numerous clients in their apps.
As I understand, by default the C++ runtime is linked dynamically via libc++.dylib. So the question is: is the runtime compatible between iOS releases / compiler versions? Can my clients run into binary compatibility issues when using my library (e.g. OS is shipped with a different runtime version, producing subtle bugs in my library)?
Sidenote (as to where this question is coming from): On Windows, you would usually want to link the C++ runtime statically if you want to ensure that the binary works on all systems without the need to ship the specific version runtime component. So I wonder if the same problem existent on iOS.
Only Apple knows if or when some C++ library is no longer supported. My guess would be that apps depending on a no longer supported runtime would stop working completely or would not build with your library in the first place. I have found this info here (Xcode 10 (iOS 12) does not contain libstdc++6.0.9) indicating that, over the years, support for older runtimes may be dropped and then you'd need to build another library.
Speaking from past experience, we had an app - I know, not quite the same as a library - in the App store with a C++ core and Objective-C shim and did not care about C++ runtime compatibility. That never became an issue. Instead, from time to time (over several years and iOS iterations) there were slight user interface quirks that needed to be ironed out (I think with iOS7 - ok, you may not have an UI) then the forced move to 64-bit, then some API change where Apple wanted things that way or another... When there as an issue then we did a build with the latest XCode and that would have helped keeping things running, but the old version kept on working.
The upshot is, you'll need to be prepared to maintain your library and maybe something else 'gives' before the C++ runtime becomes a problem and then you'll just have to do another build for your customers.
If you are using libc++.dylib which is system wide library, then any application can also use it.
So by definition whoever delivers this library (Apple), is responsible for maintaining backward binary compatibility of this library.
If compatibility would have been broken, thousands of application would be corrupted.
On other hand if you are using some custom version of this library then it should be shipped with *.framework. In this case there is no risk of breaking compatibility since it is shipped with framework.
So basically there is no reason for you to worry about that.
If something is gets broken then lots of applications will be broken.
In the past new iOS versions have provided excellent compatibility with existing apps. If an app was built for an old iOS version, it would also run on new iOS versions. It seems that Apple simulates old iOS versions - including their visual style and quirks. If you run an app built for iOS 6 or earlier, it will still have the grayish look and not the new style introduced with iOS 7.
Once an app is updated, the story is different: you will need to use the latest Xcode, new rules apply and many old features will have been decommissioned. As part of this, Apple might remove APIs, switch to a new C++ compiler, change the standard C and C++ library etc.
So:
A released app in the App Store should continue to work for many years with your C++ library.
However, for the development of new apps or new version of an existing app, you will need to check the compatibility of your library regularly and possibly provide updated versions.

Find deprecated or changed methods in site core with different versions

I am planning to migrate site core 6.5 to site core 8.1. So here i am using below dlls sample
Sitecore.nexus
Sitecore.NVelocity
Sitecore.Analytics
Sitecore.Marketing.Wildcards and etc.
While i am doing POC i got understand Sitecore.Marketing.Wildcards is changed because of vast changes in Rules Engine.I figured out by compile time errors in my code after code has setup with sitecore 8.1. So i planned for another work around.
My question is how can I find a way to discover deprecated or changed functions from one version to another version of site core migrations? I'm trying to fgire this out before I dive into development.
The best way is to go through the release notes and find what is changed.
https://dev.sitecore.net/Downloads/Sitecore%20Experience%20Platform/Sitecore%2081/Sitecore%20Experience%20Platform%2081%20Initial%20Release/Release%20Notes
For example, on the release notes for Sitecore 8.1 on above link, you will find certain deprecated features, functionality, framework like SPEAK 1.1 framework etc. So with every release, some features or components may get deprecated and you need to fix the code break due to this.

How to include .NET framework library in executable

I've recently made a Windows Forms Application in VS 2010 Express. When running on my machine it works fine but on other machines it needs to install the .NET framework first. Is there anyway around this? By including the library in my executable? By not using the .NET framework?
I would really appreciate some help.
Typically this kind of problem would be handled by your Windows Forms Application's installation package.
Opinions vary but I'd suggest the safest/most polite thing to do is to treat .NET as a prerequisite. If .NET is not present, display a message that it is required before the install will succeed and perhaps point to a Microsoft download page like this one or this one. The risk is that you point them to an obsolete download page or that the page moves and invalidates your link.
That said, I would have expected most machines to have some version of the .NET Framework installed (by Windows Update for example) so it's a bit surprising that you're being told it needs to be installed.
I suggest you follow the instructions in How to: Determine Which .NET Framework Versions Are Installed to check one of your failing machines to confirm that .NET is not installed (very unlikely) or to determine which version (or versions) of .NET is (are) installed.
Update 6/21/2015 From the comment below, we have evidence of two systems without .NET installed so my "very unlikely" comment above is a bit off base!
Update 7/4/2015 I have a bad habit of forgetting that not everyone configures their Windows systems exactly the same way I configure mine. From this blog post it seems that the .NET Framework is 'only' a Recommended Update.

MySQL Client Library version compatibility with Server?

We are wrting a C++ application which links to MySQL shared Library dynamically to communicate with Server. My question is for normal queries and stuff (which is supported by almost every library) , Is it necessary to enforce the Server and Library versions to be same ?
Note: There is mysql-shared-compat RPM which solves this issue but it contains all the libraries from previous releases. And we dont want to ask the user to install that package along with mysql-shared package.
I've found this discusson, HTH: http://lists.mysql.com/mysql/210702
Our client-server protocol has not changed much, if at all, in a long
while. You should be quite safe using a 5.x-based client library to talk
to a 4.1 and even a 3.x server.