Hi Nick,
This would be great. I recently tried updating a live site from 2.5.8 to 3.0.2. Let's just say the end result was not good.
How much of Michael's work - https://github.com/mbabker/J30UpgradeCheck - could be used for this?
Best,
Matt
Sent from my phone that uses an open source operating system.
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To view this discussion on the web, visit https://groups.google.com/d/msg/joomla-dev-cms/-/ll9wIWs7X84J.
To post to this group, send an email to joomla-...@googlegroups.com.
To unsubscribe from this group, send email to joomla-dev-cm...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/joomla-dev-cms?hl=en-GB.
Hi Andrew,
That sounds like a really, really good idea. The only problem is that the
actual code that would be needed is way over my head :P
If someone else
is willing to take that on, I'd be happy to help them out with non-code
stuff. Either way, I'd really like to see the pre-upgrade check get into
2.5.9 and the web services approach seems like it would be a big
undertaking (or am I mistaken?).
Also, would there be a potential legal issue involved in that?
So for example, it would look similar to:
<extension version="2.5" type="template" client="site" method="upgrade"
compatibility="17,25,30">
Quick update while getting up to date this morning:This Platform thread mentions Composer too and there could be some synergies here:
Thanks for the suggestion, Eddie!
The biggest issue in my mind with the "version" tag approach is the break
in backwards compatibility. Since the pre-upgrade check would likely be
implemented in 2.5.9, that would break a lot of current extensions (during
installation) in what is supposed to be an LTS version, thus we'd be
shooting ourselves in the foot. Or am I missing something?
That's a win-win in my books.
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To view this discussion on the web, visit https://groups.google.com/d/msg/joomla-dev-cms/-/CExyaK9D35EJ.
Question: If we implemented the pre-upgrade check on 2.5.9 using the
"version" tag approach, wouldn't that make it so that some of the
currently 2.5 compatible extensions, that have "1.6" in the version tag
for example, wouldn't be installable anymore in 2.5? If so, I don't want
to do that and I also don't want to only implement the pre-upgrade check
in 3.x. I want this puppy in for 2.5, 3.x, etc, and I want it fully
backward compatible :)
Hello guys,Regarding the CMS pre-upgrade test, I agree with Andrew that a web service would be ideal. Unfortunately, having the "privilege" of having worked with many low quality hosts it's not ideal. There are too many servers out there which would require Joomla! site owners to contact their hosts and ask them to open up ports 80 and 443 for communication to a specific IP. Assuming that the update check service will be cloud-based (otherwise we're looking at either a ginormous server or a server meltdown) that becomes really tough. It's well beyond Joe Average to a. know that he doesn't get pre-update checks because of a firewall b. that he/she needs to contact the host and c. providing accurate information for the host to help. If not anything else, we need a local fallback.
or this might be better so we dont have to break the extension tag
apart in order to get the compatibility info
<compatibility>25,30</compatibility>
<jupgrade><installer><file>administrator/components/com_k2/jupgrade/j25upgrade.php</file><class>jUpgradeComponentK2</class></installer><!-- The tables to copy to the new site. --><tables><table>k2_attachments</table><table>k2_categories</table><table>k2_comments</table><table>k2_extra_fields</table><table>k2_extra_fields_groups</table><table>k2_items</table><table>k2_rating</table><table>k2_tags</table><table>k2_tags_xref</table><table>k2_users</table><table>k2_user_groups</table></tables><!-- The folders to copy to the new site. --><folders><folder>administrator/components/com_k2</folder><folder>components/com_k2</folder><folder>media/k2</folder></folders></jupgrade>
In your case, tables and folders must to be in the right place, so we only must to get the collection of the extension and update it.
All this information could be got from JED, i think.
Question: If we implemented the pre-upgrade check on 2.5.9 using the
"version" tag approach, wouldn't that make it so that some of the
currently 2.5 compatible extensions, that have "1.6" in the version tag
for example, wouldn't be installable anymore in 2.5? If so, I don't want
to do that and I also don't want to only implement the pre-upgrade check
in 3.x. I want this puppy in for 2.5, 3.x, etc, and I want it fully
backward compatible :)
--
Ok got it. Yes we need version tag to stay as is and just add compatibility. We are using version tag to mark our own extensions versions not Joomla and I am sure many providers do the same.
Hi Nick,
OK, let me try again today, now that I had enough sleep and caffeine and Chrome doesn't seem to have crashed on me yet (touch wood).
I was talking about the pre-update check for extensions. Sorry for not being more clear. I was frustrated with the Google Groups interface and having it crash on me all the time (I ended up having to use Safari instead of Chrome). Since extensions can be compatible with multiple versions of Joomla! with the same codebase and package we should not use the version attribute. For example, in Akeeba Backup I have this:
<extension version="2.5" type="component" method="upgrade">
What I really mean is "This package is meant to be installed on all subminor versions of Joomla! 2.5 and 3.0, either as a first component installation or as an upgrade to a previously installed version". With the proposed change, it would mean: "This package is meant to be installed on all subminor versions of Joomla! 2.5 but not any other version, either as a first component installation or as an upgrade to a previously installed version".
Such a change in meaning would cause these issues:
Therefore we need to tackle this situation in a more elegant manner. Instead of reinventing the wheel, let's borrow the wheel design Mozilla has made. Firefox extensions define a range of FF versions they are compatible with using a minVersion and maxVersion tag. We could probably do a small, easy change, like this:
<extension minVersion="2.5" maxVersion="3.0.99" type="component" method="upgrade">
You see what I have in mind, eh? We could also map the old version attribute to the new minVersion attribute ensuring backwards compatibility. Thus, we have only three cases to check:
This can be easily added to the existing code, it's backwards compatible and solves the problem we had. In other words, it's an elegant solution. If you need someone to do the necessary coding, I volunteer!
Cheers,
Nicholas
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To view this discussion on the web, visit https://groups.google.com/d/msg/joomla-dev-cms/-/WAx44HgKZnMJ.
Nice idea. One questionwith maxVersion would this be some imagined version in the future (which may not be compatible as non of us are crystal ball readers) or the current version at the time of release. If it's the latter wouldn't that mean that you need to make a new release every time there is a Joomla version update even if your software doesnt change
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To view this discussion on the web, visit https://groups.google.com/d/msg/joomla-dev-cms/-/DEWOHOhch-EJ.
Hello Brian,
Excellent question! Michael's answer is up to the point, but please allow me to expand a little. Go grab some coffee and popcorn. OK, here we go.
As you are already aware, Mozillians are facing the same dilemma with Firefox extensions. In FF's case it's even worse as they have a new version, potentially BC-breaking, every 6 weeks. The norm for them is to add support for the one version after the current (and that, sometimes, does backfire). In our case, we can set the maxVersion to the maximum version of Joomla! we have reasonable expectations to be compatible with our software.
So, for example, Akeeba Backup 3.6.9 is tested against Joomla! 2.5 and 3.0. I know that pre-2.5.3 won't cut it and I have reasonable expectation that throughout the 3.0 release no ground-breaking changes will be implemented. Therefore I'd chose minVersion="2.5.3" maxVersion="3.0.99". If I were a gambling man I'd be tempted to set maxVersion="3.1.99" but past experience has taught me that unless you see the .0 release you shouldn't dare call your software compatible with it. In other words, I've learned from my mistakes.
Will we have smarty pants devs who will abuse these attributes? Yes. Will it matter? No, not really. The reasoning behind those attributes is to prevent the users from installing our software on platforms we know it won't work. It's not there as a guarantee to the user that the software they're installing is necessarily compatible with their Joomla! release (despite our best intentions, we developers are humans and do screw up – e.g. bugs). Anyway. If one of us wants to play fortune teller it's at his own risk and peril. I believe that if someone does that, as soon as... er... the manure hits the fan he'll quickly realise why he should never, ever, EVER do that again. It will just take our community a small education and adjustment period. My guess? 3-7 months. Then developers will learn what to do and what not to do. Simple!
There is only one grey area left here. What happens if the maxVersion is not defined? I'd say let's do a slightly backwards incompatible assumption that, in this case, it means all versions of the current version family. So, someone specifying only minVersion="2.5" will be treated as minVersion="2.5.0" maxVersion="2.5.99". As long as this is announced at least a month in advance of this change coming into effect in the 3.x range all extension developers have enough time to release a new version which merely makes this change (and, by the way, include a gazillion bug fixes as we always tend to do in those minor maintenance releases).
Cheers,
Nicholas
Nick,In reading your previous posts, I realise that you have not addressed my backwards compatibility concerns. I'm also not clear if you are going to use a compatibility tag or reuse the version attribute. All I know is that Dan was working till 4 a.m., but I'm not sure towards which direction. Right now I'm worried, in lack of adequate information and almost panicking at the thought that a major blunder is en route. I am sincerely hopeful that I got it all wrong and this is one of those cases that I will be genuinely thrilled to find out I am completely wrong. So, let me express my concerns.
In case you reuse the version attribute. This would completely screw up existing extensions which maintain dual compatibility with Joomla! 1.5 and 2.5.
If you implement your kind of minimum version check then you are going to completely disable extensions which are compatible with 1.5 and 2.5 from installing on 2.5, to the detriment of the users. If this is what you plan on doing, use a different attribute name.
In case you are going to use a tag, think about backwards compatibility. Right now there is no such tag and there are extensions which are compatible with both Joomla! 2.5 and 3.0. You should do a reasonable assumption here: if the compatibility tag is missing, you should assume that the extension is compatible with the current Joomla! version, no matter what.
I would recommend Joomla! 2.5 and 3.0 treating the compatibility tag as optional and enforce its use from Joomla! 3.1 onwards, therfore giving a "grace period" for developers to comply.
I think everyone is just discussing options at the moment. I don't see anything to panic about until a pull request is actually made (hopefully that option is available now and you don't have to go through JoomlaCode).
If you implement your kind of minimum version check then you are going to completely disable extensions which are compatible with 1.5 and 2.5 from installing on 2.5, to the detriment of the users. If this is what you plan on doing, use a different attribute name.
That's the conclusion we came up with. Deprecate the "version" attribute in 4.0 while adding a new "requires" tag, or similar, now.
In case you are going to use a tag, think about backwards compatibility. Right now there is no such tag and there are extensions which are compatible with both Joomla! 2.5 and 3.0. You should do a reasonable assumption here: if the compatibility tag is missing, you should assume that the extension is compatible with the current Joomla! version, no matter what.I don't think that's a good assumption, but in the absence of the "requires" tag, you default to the "version" attribute.
I would recommend Joomla! 2.5 and 3.0 treating the compatibility tag as optional and enforce its use from Joomla! 3.1 onwards, therfore giving a "grace period" for developers to comply.Sounds like a plan.
I am not sure if you have seen the backend ( we posted the file,
attached again, extract in root set Upgrade server to testing )
http://prntscr.com/kf52r
As to why we would rather use tag instead of attribute the answer is simple.
Tag is easier to "read" and pull out of the xml, where if we use
attribute we would have to loop trough all attributes in extension tag
in order to get it, which again kinda slows things down a bit.
You said " You should do a reasonable assumption here: if the
compatibility tag is missing, you should assume that the extension is
compatible with the current Joomla! "
I don't see how this is true ,
we cant ever assume that it is
compatible but we can advise that the tag is missing which should
point the developers to add it in. ( talking about update check , not
preflight )
I am opposed to min/max tags attribute because to be honest to me they
don't make sense and here is why:
When you publish your extensions you don't say min /max etc , 99% of
us use word compatibility and we say
Compatibility: 1.5,1.7,2.5,3.0
which again is only natural to be used like that in xml also. Adding
more attributes that would confuse everyone would be to much.
and we can also use it in preflight and I think this is what you are
"afraid " of.
Here are my thoughts on preflight :
Extension does not have compatibility tag , let it install , simple as
that we don't have to stop it ,
if it has the tag , than read it and if version does not match advise
that it is not compatible.
And one more for you Nicholas , this is not in en route. Nick asked me
to help , I pulled Silviu from project and we tried to help.
If you did not notice , we asked for input. Nothing is submitted
anywhere , no Git , no live tester ( excepted the people in this
discussion if they like )
This is just a test so that all of us can find a common ground and
make this right. To be honest , this is one of my favorite discussions
in this group and
I think it is very productive and is nice to see once again that everyone cares.
I hope this helped.
Hi Nicholas,
Let's do this. Skype me (I'm on right now) or Dan and we'll get you the
code that we have right now so that you can take a look, test it, improve
it, etc. You can put it up on github for us, because we're not
experienced with github to honest. Then other people can fork it and
improve it.
Either way, we need to keep discussing this on the mailing list, but at
least this way we'll have some code to clarify the discussion.
Kind regards,
Nick
> Hello Dan,
>
> I am not sure if you have seen the backend ( we posted the file,
>> attached again, extract in root set Upgrade server to testing )
>> http://prntscr.com/kf52r
>
>
> I actually have. Nick showed it to me in JWC and I saw it again in this
> thread :) It doesn't address any of my concerns.
>
> As to why we would rather use tag instead of attribute the answer is
> simple.
>> Tag is easier to "read" and pull out of the xml, where if we use
>> attribute we would have to loop trough all attributes in extension tag
>> in order to get it, which again kinda slows things down a bit.
>
>
> I don't see how a <1 msec speed improvement is worth mentioning. Actually,
> I do prefer using a tag because it's structurally more sound � unless you
> get utterly confused (I've tried, they fried circuits, I dumbed it down �
<compatibility>
<include>2.5.*</include>
<exclude>3.0</exclude>
<include>3.1</include>
</compatibility>
We should also use a whitelist policy, IE if it isn't specified assume it is compatible, but raise a confirmation warning before install.
Hi all,
As to github, all the current code (which is a work in progress) has been
added to:
https://github.com/nicksavov/joomla-cms (branch:
2.5.x-with-pre-upgrade-check)
*Please note that it's only in the "2.5.x-with-pre-upgrade-check" branch
for now.* If you have any suggestions for how to best manage it (e.g. do
we need a github
organization?), please let me know.
Hi Andrew,
Thanks again for the feedback!
Wow, the compare feature's really nice! Thanks for sharing that! The link
that you sent over compares it to the CMS master though and we're using
2.5.x. This link should be more clear:
https://github.com/nicksavov/joomla-cms/compare/joomla:2.5.x...nicksavov:2.5.x-with-pre-upgrade-check
I'm not sure about the code style for the CMS, but my guess from googling
is that it's the same as the platform:
https://github.com/nicksavov/joomla-cms/compare/joomla:2.5.x...nicksavov:2.5.x-with-pre-upgrade-check
Hi Andrew,
Thanks again for the feedback!
Wow, the compare feature's really nice! Thanks for sharing that! The link
that you sent over compares it to the CMS master though and we're using
2.5.x. This link should be more clear:
https://github.com/nicksavov/joomla-cms/compare/joomla:2.5.x...nicksavov:2.5.x-with-pre-upgrade-check
I'm not sure about the code style for the CMS, but my guess from googling
is that it's the same as the platform:
https://github.com/nicksavov/joomla-cms/compare/joomla:2.5.x...nicksavov:2.5.x-with-pre-upgrade-check
Hi all,
Right now, there's no pre-upgrade check going from 2.5 to 3.0. This can make it very easy for users to accidentally update to Joomla 3, and also makes the process of checking System Requirements manual for the experienced user and the inexperienced user. Automating the process and having a safety net, by providing a pre-upgrade check, would be very beneficial in my estimation. Others also expressed interest in it at JWC (Joomla World Conference).I'd like to, with someone's help (any volunteers?), create a pre-upgrade check for the Joomla core for going from major version to major version. I'm attaching (see layout.jpg) a mock-up design of the concept which Pawel from CloudAccess drew up for me.What are your thoughts on the best way to implement it? I'd like it so that custom upgrade extensions, such as Admin Tools (http://extensions.joomla.org/extensions/access-a-security/site-security/site-protection/14087), etc, can relatively easily add-in the functionality. So perhaps an XML file could be used or an Admin Module.As a last resort, we can just hard code it, which would be relatively easy to do (most of the code's available in the installation folder), but I'd like to see if we can think of a creative way to allow other extensions to "hook" in first.Your thoughts?
Kind regards,Nick
> On 26 Ποε 2012, at 01:56 , "Nick Savov" <ni...@iowawebcompany.com>
>>> On 25 à ïå 2012, at 23:04 , Nick Savov <ni...@iowawebcompany.com>
<compatibility>
<version>1.5</version>
<version>2.5</version>
<version>3.0.1</version>
<version>4</version>
<compatibility>
Is interpretted as:
Joomla 1.5: compatible
Joomla 1.6: not compatible
Joomla 1.7: not compatible
Joomla 2.5: compatible
Joomla 3.0: compatible for 3.0.1 and up in the 3.0 version
Joomla 3.1: not compatible
Joomla 3.2: not compatible
Joomla 3.5: not compatible
Joomla 4:0: compatible
Joomla 4.1: compatible
Joomla 4.2: compatible
Joomla 4.5: compatible
Hi all,
Right now, there's no pre-upgrade check going from 2.5 to 3.0. This can make it very easy for users to accidentally update to Joomla 3, and also makes the process of checking System Requirements manual for the experienced user and the inexperienced user. Automating the process and having a safety net, by providing a pre-upgrade check, would be very beneficial in my estimation. Others also expressed interest in it at JWC (Joomla World Conference).I'd like to, with someone's help (any volunteers?), create a pre-upgrade check for the Joomla core for going from major version to major version. I'm attaching (see layout.jpg) a mock-up design of the concept which Pawel from CloudAccess drew up for me.
What are your thoughts on the best way to implement it? I'd like it so that custom upgrade extensions, such as Admin Tools (http://extensions.joomla.org/extensions/access-a-security/site-security/site-protection/14087), etc, can relatively easily add-in the functionality. So perhaps an XML file could be used or an Admin Module.
Joomla 3.0: compatible for 3.0.1 and up in the 3.0 version
I solved this by making this adjustment:
-V
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
To view this discussion on the web, visit https://groups.google.com/d/msg/joomla-dev-cms/-/KjiIC5hxihkJ.
<version>3.0.1</version>
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
--
You received this message because you are subscribed to the Google Groups "Joomla! CMS Development" group.
So if you have 3.0 it will match 3.0.0 to 3.0.9
of course 3.0.1 it will match only 3.0.1