Like, would it be sensible to use two different branches on the same repository and merge any changes from one into the other to save work? And in that case, which would be more optimal to work on first; SS3 or SS4? I can't quite figure out which one translates best into the other 🤔
Does anyone have experience maintaining two identical code bases; one for SS3 and one for SS4, without having to do all the work twice and avoiding overwriting changes incorrectly?
good question... namespacing in SS4 makes it pretty difficult
That's my thought and sorta the main problem I will be facing, since no third party libraries are required.
I'm worried maintaining namespaces will end up in errors
For http://hallstatt.net I thought about some kind of feature freeze during the update process; or split out stuff that might change to already namespaced, non-dataobject classes
but if you need the same code base for different projects, it might become difficult. most modules for SS3 are somewhat "as-is" and won't get any updates, new features are SS4 only.
Hmm, interesting 🤔 Is there a benefit to not namespacing models in SS4? Conversely, would it make sense to namespace everything except models for SS3?
I'm not too worried about updates to modules, as the project won't be using any.
you can already start using e.g. "Image::class" for relations in SS3, it just returns "Image" in this case.
well, namespacing and PSR-4 is about getting your classes sorted (and in a namespace). IMHO that's a great feature to capsulate your classes away.
I once had an issue in a project with blog module that an not-namespaced PDF library had a class called "Tag"... fortunately the new beta release of that lib was namespaced.
I can imagine the pain... I will definitely namespace everything, Happily, I only have a two moderately sized models, so maybe it won't be so bad...
How about exposition of frontend dependencies, such as those exposed through
vendor-expose. Can that approach be used in SS3?
Use git ignore refs, to prevent commits being attributed to the wrong person
Add namespaces as a commit, use ignore-refs, so you won't get lost in all the stupid "refactor" refs
I will look into that, thanks 🙂
I'd say, start an
ss4 branch, to which you'll commit your progress
And do not commit to the master branch anymore
Then, when working and approved, you can merge it in to master
The branch and refactor to a SS3 branch?
Do use the same repo, and tag your last SS3 commit with a version
That way, rollback is easier
Also, before deploying backup
But I will need to maintain the SS3 branch with new features as well, though 🤔
No, you shouldn't, to be honest
I have to, no discussion
might I suggest a good set of unit tests then ?
That discussion is not up to the client my friend 🙂
New regulations coming up means that the old code base need to update as well. We have several websites that need to follow standards 😉
If you say "Feature freeze or no upgrade", they have to pick one 😉
Your client can't demand new features, unless they are willing to pay for them to be implemented twice
Which, in my opinion, is something you can highlight 🙂
It sounds like a module they use for multiple websites. And e-commerce new regulations with payment providers are a pain
It's a GDPR thing... And we have over 100 websites running SS3, which will obviously be paying for the update, but that doesn't solve my issue. I have to update SS3 and SS4 in parallel 🤷♂️
If you need some explanation as to why keeping two branches fully active, here's my personal favourite: > So, think you have a car. And you want a new car. > You've bought a new car, say, a Tesla 3 > But in the mean time, you have your old car. Of course. > You can't simply demand that every time you change something to your old car, it also gets applied to your new car. > That will cost you, because your old car is a Ford and not a Tesla, and vice versa. > You can't expect both to be maintained at the same pace, without paying for both cars
I am well aware it's really hard to get this through to clients, but you have to make that cut, otherwise, you'll be stuck
You'll either be stuck with an outdated website, or be stuck applying new features all the time, giving you no chance to finish the upgrade
well, for the GDPR module, I'd namespace as much as possible in SS3 and break out the actual logic in seperate classes that can be used in both, SS3 and 4. Then you should only make business logic updates to the shared classes. And have a good set of tests to make sure it works in SS3 and 4
"But how can Microsoft do it?" They have a lot more resources, but also, they didn't. Win7 is still a thing. And people are still using it. It's not secure, but they don't seem to care, or pay for it to be fixed You can't have your cake, and eat it too
Of course, there are cases that can be more easily handled 🙂 I totally agree with that @wmk 🙂
What I'm trying to say is, you can't upgrade your car, without leaving your old car behind. And that's a thing, that's a problem for a lot of clients. In my experience, clients do not understand that easily
I get your point, but as this is a matter of maintaining or turning down customer support. I can say with absolutely certainty that at least half of our customers are not gonna pay for a SS4 upgrade. They'd rather find another provider, and that's sadly not viable for us.
So you'll have to make that clear. Stop adding features and let us upgrade, or add features and don't upgrade
I understand that PoV. But, I doubt that's actually going to happen.
You should not try to convince your clients to stay.
How much will they pay, to move vendor?
Moving vendor is not a 50% case, unless the client is already unhappy with you
Upgrading Win7 to Win10 in a corporate environment, costs time and effort.
Why is it, that a website apparently has to be free?
Moving vendor is really, really expensive
And more common than not, clients come back, because they realise their misstake
We're definitely gonna punk clients who want the upgrade, or they will be left without regulation compliant websites at their own risk and expense, but we want to be able to offer it to all of our customers regardless 🙂 I think I have enough to go on to start working on a solution. Thanks for your help, guys. It's really appreciated 😄👍
"We can maintain your website in its current state. Or we upgrade. Upgrading is not free, because it involves effort from our teams. We can support you and help you, getting an even better website, but we can't take new features during the process, unless absolutely business critical"
Note, that "business critical" often means a singular page that's more often than not, only live for a few months. You can scrap those from your upgrade path anyway 😉
(At least, that's my experience 😉 )
I'm also not trying to say "just dump the clients" or "just let them sink", but help them
It may be hard for a sales person to understand the effort that goes in to upgrading. Make sure they understand 🙂
An important thing to note, is that it is a major version upgrade, not a minor It helps to make those involved understand SemVer 🙂
Haha, I approve 😉👍
I did override the
getTypes() function already, and I actually read that documentation too, I just wanted to not override the template if possible, but seems like there is no other way. Thanks for sharing, though 😄
Alright, I guess that will have to do. Thanks 🙂👍
Hey folks! I've got a problem with search using Solr, that causes numerics to break the search.
According to this article: https://stackoverflow.com/questions/20884338/solr-cant-search-for-numbers-mixed-with-characters it has to do with the
splitOnNumerics="0" attribute on the
When hardcoding in the module
http://types.ss template, it works, but I have no clue how to update that value through the code without overriding the
Any Solr pundits know if this is possible without overriding the template? A config setting or a module update?
I have some items in my index (Solr. 4.4), which contain names like Foobar 135g, where the 135g refers to some weights. Searching for foobar or foobar 135 does work, but when I try to search for the
I have some items in my index (Solr. 4.4), which contain names like Foobar 135g, where the 135g refers to some weights. Searching for foobar or foobar 135 does work, but when I try to search for theHide attachment content
@rasmniel has joined the channel
Hey everyone! Do you know the solution to fully deleting a file programmatically with the File data object? I'm left with "File cannot be found" tiles for deleted files, suggesting that the file itself was deleted but the data object remains without a file asset. CMS 4.4.2
It appears you must explicitly unlink the Element from the ElementalArea relation, or it will keep displaying the Element in the CMS as if it were never archived. It disappears from the frontend, but nothing in the CMS indicates that the Element is in fact archived.