ColorlibHQ / AdminLTE

AdminLTE - Free admin dashboard template based on Bootstrap 5
https://adminlte.io
MIT License
43.91k stars 18.17k forks source link

You broke our project (and probably more out there) due to AdminLTE 2.4.0 #1669

Closed elboletaire closed 6 years ago

elboletaire commented 6 years ago

When you add breaking changes to a project you should do a major upgrade.

With 2.4.0 you added a lot of breaking changes and, instead of upgrading to a major upgrade (3.0.0) you simply upgraded it as a minor upgrade.

For more information, read the semver documentation: http://semver.org/

I've lost like three hours of work today trying to figure out what the hell happened to our projects to start crashing during the deploy process.

Please, don't do this again.

I'm sorry about the tone, but I'm really disappointed with how you have done it.

laistomazz commented 6 years ago

I agree with you 100%.

I'm just posting this link here to help people that might be looking for a solution: https://adminlte.io/docs/2.4/upgrade-guide

elboletaire commented 6 years ago

Thanks @laistomazz but I'm not gonna upgrade it until all the issues have been fixed, which includes removing the bower_components folder from the project (what the hell is that?).

Reconix commented 6 years ago

Well, this sounds bad, what was so huge that cost you hours of work and is still broken?

cocochepeau commented 6 years ago

Just keep using 2.3.11 for now.

almasaeed2010 commented 6 years ago

@elboletaire I understand your frustration and sorry you feel that way. In all fairness though, we did post an upgrade guide and announced the breaking changes. There was also an alpha version available for at least 6 months before the final release.

Since the upgrade mainly tackled JS issues, do you think bringing back app.js and the plugins (as deprecated) would help with backwards compatibility?

Also, the bower_components folder is there as a replacement to the plugins folder. It makes it easier to upgrade and add new plugins and allows users who prefer to directly download the template rather than using a package management software to have all the used plugins available. However, we can also change that (probably for v3) by using a copy script to extract only the needed files.

Thanks!

afoysal commented 6 years ago

Thanks @almasaeed2010 for your reply. I tried to install this package and failed due to bower_components and other JS issues. Thanks.

elboletaire commented 6 years ago

Thanks for your reply @almasaeed2010

As I said, I'm sorry about the tone; and I'd like to empathize that this issue was more to warn you about how semver works. If you now understand how semver works, and that this kind of upgrades are major upgrades (because they have breaking changes), my work's done here.

Oh! and thank you so much for your effort in this free template. At no point did I want to belittle your work 😃

elboletaire commented 6 years ago

Also, the bower_components folder is there as a replacement to the plugins folder. It makes it easier to upgrade and add new plugins and allows users who prefer to directly download the template rather than using a package management software to have all the used plugins available. However, we can also change that (probably for v3) by using a copy script to extract only the needed files.

About this: you better use gulp (or grunt, or webpack) and pack all the dependencies in one unique file. This way you'll be able to use npm and lock the package versions, whilst giving the users a packaged version of only those files really needed by AdminLTE.

acacha commented 6 years ago

I propose also to use webpack...

acacha commented 6 years ago

Also having lots of problems using less AdminLTE in my project: https://github.com/acacha/adminlte-laravel.

This is a Laravel project using Laravel Mix (webpack wrapper in Laravel for compiling assets: https://laravel.com/docs/5.5/mix).

Some errors I found:

All imports in Adminlte.less file before use:

@import "plugins.less";

now adminlte removes the .less suffix. Now I have errors like

@import "plugins";
^
Can't resolve './plugins' in '/home/sergi/Code/provaesborrar/node_modules/admin-lte/build/less'
      in /home/sergi/Code/provaesborrar/node_modules/admin-lte/build/less/AdminLTE.less (line 57, column 0)

Also after changing bower_components reference to bootstrap_less:

error  in ./resources/assets/less/adminlte-app.less

Module build failed: ModuleBuildError: Module build failed: 

@import (reference) "../bootstrap-less/mixins";
@import (reference) "../bootstrap-less/variables";

Thanks @almasaeed2010 for the great job

acacha commented 6 years ago

For reference the upgrade guide is here:

https://adminlte.io/docs/2.4/upgrade-guide

robsonsobral commented 6 years ago

@almasaeed2010 , hi!

Can we wait for a 2.4.1 version fixing the regressions? The upgrade guide is fine for a major version, not a minor. Most of upgrade process are automatic.

acacha commented 6 years ago

2.3.11 does not work for me see https://github.com/almasaeed2010/AdminLTE/issues/1677

piperone commented 6 years ago

In all fairness though, we did post an upgrade guide and announced the breaking changes. There was also an alpha version available for at least 6 months before the final release.

@almasaeed2010 nothing short of renting a plane to tow a banner over our houses would really matter. Most people pull in your project with a package manager (be it bower or npm or something else), get to work, and don't think about it again. Everything from then-on is usually automated. This means most of your users will not be reading announcements on your GitHub-page or website and will just have their sites mysteriously mucked up after an update.

Semver exists for a reason and if you offer your package via a package manager and semver isn't followed, we might as well do this in our package-files:

"dependencies": {
    "admin-lte": "*",
}

(... which is a bad idea)

almasaeed2010 commented 6 years ago

@piperone I understand the frustration this may have caused. In my point of view at the time, the upgrade process was simple enough and therefore wouldn't be much of a problem. However, there are more issues than I initially realized, and that happens.

I am currently working on 2.4.4 which will bring back support to v2.3.* and provide some fixes to the current version. Until then, I'll keep this issue open.

Thanks!

piperone commented 6 years ago

@almasaeed2010 Yeah, no the upgrade process seems simple enough. I think what made people look for their pitchforks in this instance, was that semantic versioning wasn't adhered to.

Sounds like a good plan. Thanks for your solid work!

ph4r05 commented 6 years ago

As a side note : I use npm (+laravel mix) and after the update I have this import in skins:

@import "../../../bower_components/bootstrap/less/mixins.less";

which fails as there is no bower_components directory. When working on the regression fixes pls keep this in mind :)

Thanks!

bellwood commented 6 years ago

Most people pull in your project with a package manager (be it bower or npm or something else), get to work, and don't think about it again. Everything from then-on is usually automated. This means most of your users will not be reading announcements on your GitHub-page or website and will just have their sites mysteriously mucked up after an update.

<rant> Preface: My .02 on this matter in general, not targeting any specific user in this thread

This a problem that affects lazy people who blindly update without reading release notes and just assume their worlds will be perfect. People potentially without version control or backups so they are left scrambling. Possibly with loose or lax version restrictions in their package files.

"I'll just update everything at once without reading anything..." Yeah that should work

Shaming or knocking on a developer for a users lack of diligence because they didn't prevent your problem is abhorrent.

All these package managers has made for a mass of lazy and spoiled developers.

If you've learned nothing from what happened with Koçulu last year, you should stop developing right now. </rant>

@almasaeed2010: keep up the good work - thank you for your contributions

piperone commented 6 years ago

@bellwood Good grief, what was that supposed to contribute to the issue? I don't give a damn if you think devs are spoiled or lazy or whatever, go write a blog-post instead of posting your vitriol on the issue-board of a repo where people are trying to cooperate.

bellwood commented 6 years ago

if you found what I conveyed to be vitrol as apposed to a valuable lesson any developer should heed then i apologize...

i shall grant you that a repo issue thread likely wasn't the proper "forum" for expressing my opinion but it clearly shows the pitfalls of blindly upgrading via a package manager without doing the diligence of reading changes to said packages...

elboletaire commented 6 years ago

@bellwood obviously you don't understand how semver works. I'd recommend you reading about it before saying such stupid things.

softbrada commented 6 years ago

I am subscribed to this repository notifications and i feel that the tone of this discussion is becoming more and more verbally aggressive towards other people. Let's instead say that no one is perfect, sometimes mistakes are done, we are not machines or robots. Please let's try to talk about solution to problems, let's find a way to prevent such situations to happen, like for example maybe better advertising of the upcoming changes in new releases , maybe improvements to the documentation or wiki that we all can contribute . or maybe even warnings displayed when trying to upgrade to a release with breaking changes that could be displayed in terminal. Or some other solutions. Let's try to propose ways that this can be handled next time.

I honestly like this repository very much and i have been using this for a long time . Let's not transform this issue in something that might make us all feel uncomfortable . Let's try to find a common ground and discuss alternatives or solutions that might help everyone to have a better experience.

bellwood commented 6 years ago

obviously you don't understand how semver works. I'd recommend you reading about it before saying such stupid things.

I am fully aware of how versioning works...

Not everyone who maintains a repo is aware of semver or even knows about best practices... They just have an awesome contribution for the masses...

I'm sorry @elboletaire that this instance bit you, it sucks, we learn, we move on...

Not trying to be abrasive or aggressive, this was meant to be anecdotal; something we could all find a common root in, have a nod at and move on from - not to be a soapbox drivel fest that would upset the user base...

jackvial commented 6 years ago

Its always good idea to specify a specific versions of packages in production especially with your main packages. Letting your deploy script run in production and letting it update even to a patch update without first testing it is asking for trouble.

almasaeed2010 commented 6 years ago

I hate to go back on my promise but unfortunately I don't have the time to create a 2.5 version that won't break upgrading both 2.3 and 2.4 :( I'd rather focus on the v3 release and get that done asap. Therefore, if you don't feel upgrading to 2.4 is worth it, please use 2.3 for the time being. I appreciate your patience and hopefully v3 will make up for all of this 👍

Thanks!

cocochepeau commented 6 years ago

@almasaeed2010 Thanks for this awesome project!

almasaeed2010 commented 6 years ago

@cocochepeau my pleasure :)

proxybee commented 4 years ago

I hate to go back on my promise but unfortunately I don't have the time to create a 2.5 version that won't break upgrading both 2.3 and 2.4 :( I'd rather focus on the v3 release and get that done asap. Therefore, if you don't feel upgrading to 2.4 is worth it, please use 2.3 for the time being. I appreciate your patience and hopefully v3 will make up for all of this 👍

Thanks!

Your V3 Isn't any better. Still trying to get the upgrade. There is no Bower_Components folder... Is this on purpose or an oversight and what do I do, please

REJack commented 4 years ago

V3 isn't compatible with the V2.4 Structure and the bower + bower components was removed and the bower_components was replaced with the plugins folder. Every Major version comes with breaks and the biggest change was moving from Bootstrap 3 to 4 that caused this big break.

proxybee commented 4 years ago

V3 isn't compatible with the V2.4 Structure and the bower + bower components was removed and the bower_components was replaced with the plugins folder. Every Major version comes with breaks and the biggest change was moving from Bootstrap 3 to 4 that caused this big break.

Yes Thanks, I figured but then would like to drop this here for possible suggestion and it might probably help someone else. I want to use the adminlte3 on a react project. I have materialize UI CDN linked in my index.html but it interferes with the styling of the dashboard such that It is displaying quite alright but disorganized. What do I do or what options do I have?

REJack commented 4 years ago

I don't know may there is some implementations for AdminLTE 3 with React but right know there is no offical support but you should use react-bootstrap (load adminlte.css instead of bootstrap.css) instead of materialize UI.