Better way of distributing fixes

Hi



I've joined the CS-Cart community recently and I'm repeatedly seeing the following problem: when a bug is reported, if the fix is simple it sometimes seems to be posted for everyone to apply but I would say in 95% of the cases, the fix is not published and the response is 'Contact our technical support to apply the fix'.



There are several problems with that:


  1. Obviously, apart from the person reporting the bug, there are thousands of others that have the same issue - so a solution should be found where the fix can be given to all.


  2. I have contacted technical support to get the fixes in the past - sometimes they have provided the fix which was great but the default seems to be to ask for access to my server to apply the fix. While it's great to have the option, I would suspect a lot of store owners would be quite uneasy with the idea of providing this level of access and in any case, I doubt this is a scalable solution for the CS-Cart team either.



    In summary, I feel there should be a better way to handle this - I haven't given it much thought but if GitHub or something similar was used, perhaps each fix could be a separate feature branch and then we could simply pull that to our own installations?



    I am confident there is a better way to handle this for everyone so any ideas would be great and will help the community as a whole as well as the CS-Cart team!



    Thanks



    Simos

You did see the bugtracker, I assume? http://forum.cs-cart…ject-1-cs-cart/

[quote name='Flow' timestamp='1386848795' post='173390']

You did see the bugtracker, I assume? http://forum.cs-cart…ject-1-cs-cart/

[/quote]



Yes I saw it and reported several bugs, but the problem is exactly that i.e. that it's either 'fixed in the next version' or that I contact support and they have to apply the fix directly on my server, which I don't want to do.



There is also an additional complication - I am sure many of run modified stores and want to be able to cherry-pick the fixes to upload rather than just keep upgrading everything.



I know in most cases I can use hooks but it does make the code base a mess. And to be honest for a live store, the right thing I believe is to cherry-pick and apply fixes as opposed to upgrade the whole thing (even on staging), seeing what breaks and what conflicts there are and trying to make some sense of it all.

In an ideal world, CS-Cart want every user running the same version. One code base to maintain/upgrade. Issues can be far more easily pinpointed. If they allowed you to apply one fix and then you had issues and had to request their support, how many man hours would be wasted just for checking you had applied a particular fix which resolves the issue? Multiply that by every CS-Cart user and that, in itself, is more than enough reason not to run a software business in that way.



In saying that, yes, the current approach is poor. CS-Cart have said they will look into it here but unfortunately that doesn't mean much yet.

[quote name='StellarBytes' timestamp='1386889630' post='173434']

In an ideal world, CS-Cart want every user running the same version. One code base to maintain/upgrade. Issues can be far more easily pinpointed. If they allowed you to apply one fix and then you had issues and had to request their support, how many man hours would be wasted just for checking you had applied a particular fix which resolves the issue? Multiply that by every CS-Cart user and that, in itself, is more than enough reason not to run a software business in that way.



In saying that, yes, the current approach is poor. CS-Cart have said they will look into it here but unfortunately that doesn't mean much yet.

[/quote]



I hear you but I just don't think that's possible. Many open-source projects are run like that - if you want to stay 'supported' and benefit from official fixes, you don't go down the 'customisation' route. (of course you can use hooks for some things although personally I don't like them)



If you do start tweaking things I think you have to accept that either there will be limited support or it will cost you to look into issues.



Don't get me wrong - I totally see the point of staying on the same version. I am merely looking for a better way of applying fixes without having to wait for the next version. Some bug fixes in particular are fairly urgent to apply…

[quote name='simos' timestamp='1386890120' post='173437']

Don't get me wrong - I totally see the point of staying on the same version. I am merely looking for a better way of applying fixes without having to wait for the next version. Some bug fixes in particular are fairly urgent to apply…

[/quote]

Can't agree more with this. I am now into the second week and looking likely to be into a third week where a site running 4.0.3 which has been upgraded from V2 still cannot go live due to a bug which is to be fixed in 4.1 which I was told last week would be due by the end of the month.



I guess the problem with posting all the bug fixed out into the public is some will apply it incorrectly and do more damage to their stores which results in even more load on the support team.

Just a random thought I had - as many people are probably not working with GitHub etc, I am guessing that this will not be taken up by CS-Cart team.



However, can't bug fixes be distributed as Add-Ons? It should be straightforward for the CS-Cart team to even automatically make these add-ons available in each store as the fixes are done and then it's up to each store owner to install them.



When the upgrade to the next version of CS-Cart (with the fixes properly included in the main code base) these add-ons can be automatically disabled/uninstalled/removed by the upgrade.



One more suggestion would be to add a 'notifications' page on the CS-Cart admin interface, like Magento has. The CS-Cart team could then push there important notifications e.g. new CS-Cart version is out, or a crucial security patch is available etc.

Personally, I would like to see a changelog of files for each release/bug fix update.

[quote name='Scott_C' timestamp='1387167407' post='173562']

Personally, I would like to see a changelog of files for each release/bug fix update.

[/quote]



Agree - that's by far my preference too. Hence why I suggested originally that each bug could be a separate 'feature branch' in Git or another code-versioning system.



But failing that a simple changelog would also work to an extend (it would just be a bit cumbersome) - anything that basically says what files/db changes are there for what fix would be a massive step forward for me. As opposed to the current situation where you upgrade and have no idea what is really going on.

Just a very quick suggestion and easy to implement: for 'long' bug threads, it's often very time consuming and annoying having to go through several pages of posts to find the 'official' fix posted by CS-Cart.



Can you not make the 'official fix' post as a sticky post at the top of the thread, right under the original bug report so that people can see it quickly? It will also keep them from posting and posting long after a fix has been provided…

more money to be made this way… complicate things and clients will ask your help , , im out of words