Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to upgrade Morphos without breaking the code? #143

Open
duzun opened this issue Dec 14, 2023 · 3 comments
Open

How to upgrade Morphos without breaking the code? #143

duzun opened this issue Dec 14, 2023 · 3 comments

Comments

@duzun
Copy link

duzun commented Dec 14, 2023

Hi, I'm using Morphos for many years in one project.
I thought it is using the semver convention.
But a minor version upgrade from 3.2.26 to 3.2.27 broke my project.

It removed morphos\Russian\NounPluralization::$consonants
and morphos\Russian\NounDeclension::getAllCases(), which both were public.

How do you recommend to use and upgrade Morphos?

Thank you,
Dumitru

@wapmorgan
Copy link
Owner

It moved to \morphos\Russian\RussianLanguage::$consonants and \morphos\Russian\NounDeclension::getCases respectively

@duzun
Copy link
Author

duzun commented Jan 24, 2024

Thanks for the details.

My question is more about the process of upgrading over time without breaking the depending project.
If this project is following semver, upgrading only the minor version should not break anything.
If this project is not following semver, then I'd pin it's version in my comopser.json and avoid updates.

@wapmorgan
Copy link
Owner

wapmorgan commented Jan 25, 2024

@duzun thanks for attention at this problem.
Firstly, I try to release with semver, but only for public and documented (= listed in README-files) functions.
Both of them ($consonants and getAllCases) were members of trait RussianLanguage, used in all russian classes. Since 3.2.27 they became just classes, and there is not option to access them via any russian-language classes.

Secondly, both of them are proposed for internal usage. Unfortunately there is not package access mode (like in Java).

So, If you use any of functions documented in README's, so I do my best to guarantee semver for them. (If not, please point me). For any other functions, there's no guarantees.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants