Spring Cloud Stream 4.0 Release Notes? - spring-kafka

We are currently using SCS v3.2 and I was wondering if there are any release notes for 4.0 in terms of breaking changes/deprecations? I know the annotation model is one item (which is fine for us - we started on the functional model).
I checked https://docs.spring.io/spring-cloud-stream/docs/current/reference/html/ as well as searching in the (old) gitter which brought me here to stackoverflow.

Related

Upgrading from Symfony 1.4 to Symfony 4

We have a Symfony 1.4 application and want to upgrade to Symfony 4. Is it possible or do we have to reprogram the application?
We asked a software company near us and they told us that we have to reprogram the application.
Symfony 1 is a completely different codebase using different concepts both inside the framework (or application) and with some libraries. For example it uses Propel (Active Record-approach) rather than Doctrine (Data Mapper-approach) for mapping php-objects to a database. The difference between Symfony 2 to 4 is considerably smaller, because they share the same underlying codebase and are therefore closer to each other. Upgrading can still be a lot of work because of deprecations (changed and removed parts of the code), but overall the upgrade process can be done inside the same application. Besides that, you can choose the newest version available and I would argue, if you are starting now/soon, even Symfony 5 beta would be a good candidate.
Basically, if you want to upgrade Symfony 1 you will do a migration to a new system and it will not make much difference if you move to for example Zend Framework 3/Laminas vs. Symfony 4. At least you can directly "upgrade" from Symfony 1 to 4, instead of gradually upgrading from over versions 2/3. It will require a whole lot of manual work, though. Essentially you are migrating between different applications. The Symfony docs have some general advice on how to start a migration project like this: https://symfony.com/doc/current/migration
Basically the approach would be to wrap a new application around the old one (a concept commonly called strangler application) and then move functionality to the new application, e.g. route for route, and falling back to the old application when the new functionality does not yet exist. The main reason for choosing an older version of Symfony, say 3.4, would be restrictions on for example the shared PHP version being used. There are other ways around it, but that would mean substantially more work.
Symfony Framework developer here:
Symfony does provide upgrade steps between versions. e.g:
https://github.com/symfony/symfony/blob/2.1/UPGRADE-2.1.md
But upgrading from 1.4 to 4 is BIG and will require tons of work.
I agree: writing the whole app from scratch will be faster from my experience.
Upgrading can take years for stable outcome (depending on your application size of course)
Have a look here:
https://symfony.com/doc/current/setup/upgrade_major.html
The difference between Symfony 1 and 4 might be to important, therefore you might consider starting a new project and take some of your previous code for a nicer and cleaner project.
Upgrading from 1.4 to 4 is a miracle .
Even if you can upgrade to the version 2 and then 3 untill here it's
could be nice , but the version 4 is totally different , so i can
advice you to rewrite your code directly instead of wasting time
updgrading from version to the upper one.
Disclaimer: I wrote and maintain an open-source tool that handles automated instant migrations called Rector.
Since 2018 these migrations are much easier with help of abstract syntax tree (AST). This technology allows to change one pattern in unlimited amount of files at speed of readfile/printfile.
E.g. 1000 controller from Symfony 1 to Symfony 5 will takes similar amount of time as 1 controller. All you need to do is write migration rules. Some of them are ready in Rector, e.g. Symfony 2.8 via Symfony 5 - see Rector sets on Github.
You can learn more about migration of old Symfony Applications
Upgrade symfony 2.8 or php 5.4 first?
How to Upgrade Symfony 2.8 to 3.4
How we Upgraded Pehapkari.cz from Symfony 4 to 5 in 25 days
For anyone still interested in this task, migrating a Symfony 1.x app to a modern Symfony 4.x and up (including Symfony 5.x), we faced exactly this same task with our company and I found this GitHub project that details how to do it using the Strangler Fig design pattern and the Legacy Route Loader approach that Symfony suggests on their website:
https://github.com/dkusmierek/symfony_migration_example
I can vouch that this DOES work, although there are some tweaks here and there you will need to make to make it work for your specific environment. But it should be enough to get you 90% of the way there.

how can version A of a software be released AFTER version B when A is (?) older than B

I have been reading a while on the subject and I came across an article which left me a little bit lost on software versioning/releases.
If you follow it you will see it's just a list of all Symfony releases with their respective dates. What prompted me to ask this question was the fact that I could not get why/how, for example:
Symfony 2.8.37 released | April 2, 2018
while
Symfony 4.0.6 released | March 5, 2018
Symfony is just the example, my question applies to software versioning in general looking for an explanation to the above.
I am (am I?) positive that 2.8.37 is older than 4.0.6 so this most certainly has nothing to do with me comparing them wrong, surely there is a fundamental aspect about the versions release process I'm unaware of.
Finally, just to be sure, if I were to compare two versions, how would I go about it, I don't need a computer-language-specific-solution, just an algorithm in general to compare two given versions like you could do even using paper and pencil (I know, what a heathen).
Typically, 2.8.38 would be a security or other patch to 2.8.37; and 4.0.6 is a patch to 4.0.5, where 4.0 is a newer, more powerful base version that requires a different license or runs only under Windows 10 or some other reason why some people would like to stay on the old version.
The patch to the current version would be published faster, and then the team adds the important security patch to the older versions.
Symfony has very good support for old versions of their framework. Basically Symfony 2 was released and went through various version changes similar to 2.1 -> 2.2 etc. All the while maintaining compatibility with previous Symfony 2 projects.
Further down the road Symfony 3 was released, and while a Symfony 2 project could be updated to a Symfony 3 project it involves some work and there can be project breaking coding changes required. Then Symfony 3 progress 3.1 -> 3.2 etc.
Just because Symfony 3 is out and available doesn't mean that all work or bug fixes are done on Symfony 2. So there will still be releases of Symfony 2, in addition to releases of Symfony 3. Here is a visual view from the Symfony Page to show the version overlaps.
This is common with most software, for example Microsoft Windows 10 is the current version but Microsoft still provides patches for Windows 7.

SignalR general questions

I have in fact couple question regarding that library, hopefully anyone to answer avoiding create separated topics. If that's not the place to ask let me know where please. Nevertheless i think your answer find other people to get knowledge as well because saw lot of confusions on internet regarding that staff.
Q's:
I see that current SignalR version is 2.2.3 however i cannot find any relase notes for that - only for 2.2.2, does somebody knows why?
Is there any risk updating from 2.2.1 to 2.2.3? I have such big appliation in my current version would all work as it was or is there
anything that has to be changed migrating to most recent version?
Is there any diffrence with SignalR, SignalR2 and SignalR ASP.NET? I am bit confused
Is SignalR also permitted to be developed in commercial use or do i need any specific license?
I've found lot of samples based on signalR howeever could you provide most up to date sample showing all recent feature from current
release.
Last question: Is there any significant change comparing version 2.2.1 and 2.2.3 especially related to async usage or it's more like almost the same creating server/client apps?
On this page i see nice tutorial how to use signalr, however is this page official always updating to the current signalr release?https://www.asp.net/signalr . Aksing because saw also github page any others. If not could you direct me to correct one please.
Is this sample up to date regarding new features?
There was chat saple available JabR if recall, is there still a working link to this sample?
As far as i was able to create some chat i wonder how JabR stores chat conversations history in the way that every client whom joined chat could see conversation which was done when he was not connected. In other words how to make every new joiner to chat to see all conversations already in chat by other users is this possible in signalR engine itself?
Many thanks to whoever answer.
I'm trying to answer your questions.
Already mentioned, only a single fix.
It worked for my application, can't really tell if it works for yours. More infos regarding the 2.2.2 release: https://github.com/SignalR/SignalR/releases/tag/2.2.2
I'm not quite sure what you mean. But yes there were different versions of SignalR other the last years:
SignalR 1 (2012-2014)
SignalR 2 (2014-now | Current version: 2.2.3 | Github: https://github.com/SignalR/SignalR)
SignalR '3' (aka ASP.NET Core SignalR | Release: mid 2018 | Current pre version: 1.0.0-rc1-final | Github: https://github.com/aspnet/SignalR)
I guess, not that I'm aware of. See https://www.microsoft.com/web/webpi/eula/net_library_eula_ENU.htm (SignalR 2)
https://raw.githubusercontent.com/aspnet/Home/2.0.0/LICENSE.txt (SignalR 3)
Checkout the samples here: https://www.asp.net/signalr They all target SignalR 2 currently and will be updated as soon as ASP.NET Core 2.1 and SignalR '3' is released.
Don't know, I haven't changed anything in my code.
As already mentioned in 5., they will update the page as soon as ASP.NET Core 2.1 is released (see comment section in https://blogs.msdn.microsoft.com/webdev/2018/05/07/asp-net-core-2-1-0-rc1-now-available/ )
I guess?
Do you mean this one: https://learn.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr ?
I'm not aware of a SignalR feature which stores messages. I think you have to implement this yourself.

What if anything, is Symfony 3

I keep hearing about Symfony 3, in particular the new directory structure, but I can find nothing about a release date. Are there plans to release a new major iteration of symfony?
Yes there are plans but nothing definite yet.
The community section of the Symfony 2 site has plenty of information on these sorts of things.
From: http://symfony.com/doc/current/contributing/community/releases.html
The work on a new major version of Symfony starts whenever enough
major features breaking backward compatibility are waiting on the todo-list.
The next major version will be 3.0.
The next major long term release will be S2.7 schedule for May of 2015. I would not be surprised if serious work on S3.0 starts after that release but that is just a guess. Check the development mailing list and chat rooms for more information.

The downside of using a preview release framework

I'm thining about using symfony 2.0 for my new project. It's only preview a release at the moment, the final release is due in March which is around the same time I expect my project to go live.
Are there any reasons why I shoulnd't be using 2.0?
Reasons? Yes you shouldn't use it because Sensio who "make" Symfony tell you not to.
Even though it close to thier slated march release they could still make wholesale changes to the api which would leave you stranded and with a lot of rewriting on your hands. 1.4 is very stable and well documented and will be supported until at least 2012 and so unless there is something in the S2 technology that you cannot deliver you project without then stick with 1.4.
I was in two minds myself as i am developing app that will not get release until April or later and so was tempted. My plan is to build the apps in 1.4 but to build stripped down skeletons that match the 1.4 builds to see how they perform and to then build into later in 2011 when 2.0 has notched up a few revision numbers, and stabilised, and got a better body of documentation behind it.
The documentation for Symfony2 is really lacking at the moment, and seeing as it's so very different from symfony 1.4 (well of course, it's a total rewrite) it's rather hard to just pick up and use in its current state.
I'd say use 1.4 for now, and when the documentation picks up, give 2.0 a try. 2.0 does look exciting though, I can understand the temptation!

Resources