-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Revel 1.0.0 Upgrade Guide and Guidance for Existing apps #1501
Comments
this is a critical issue for our team and users. any other revel users experiencing this problem after the update? |
Hi guys, Sorry you are seeing these issues, it was a complicated process to change to use the new dependency model with Go and some things may have been overlooked. To use an older version of revel with go.mod tools it is pretty easy. in an empty folder
There appears to be a bug with the mode flag, I'm working on a unit test to check it and verify the fix as we speak. The command line syntax accepts both flagged and non flagged data, but there are assumptions made on order, so it is recommended you use flagged parameters. ill be on https://gitter.im/revel/community to support you as much as I can over the next few days, there are others there who can be of help too. |
Mode flag issue revel/cmd#189 |
Unit test issue revel/modules#104 |
Unit test issue moved to revel/cmd#191 |
@eparziale new revel/cmd v1.0.1 has been merged and tagged which should fix the issues with not finding tests and the |
@notzippy Thanks for fixing the test flag! We were able to adjust our code to build using all of the latest Revel Gear. Here were the keys:
All set! One extra helpful note: If you depend on private repos, need to run go env -w GOPRIVATE=github.com/[repo] @notzippy One issue we observed:When we run revel test [project] dev, that command can be run from any directory and it will dynamically find the project. i.e. I dont need to pass -a flag with absolute path. However, revel run dev will only work if we are in parent dir of [proj]. i.e. if I have dir structure /go/src/[proj], I can run revel run [proj] dev when I am in /go/src dir. However, if I am in another dir I need to run revel run -a /abs/path/to/[proj] dev in order to properly find the app. Can you please make this behavior consistent between the test and the run commands? Thanks, |
@eparziale that is great news, I'm sorry about the dependency manager switch, but there was a high demand for being able to use Revel outside of the GOPATH and supporting multiple dependency managers got very complicated so we had to make a choice. Another helpful idea is that revel supports multiple
Tracking your new issue here: revel/cmd#193 , I know the code behaves a bit different if the path is an absolute path VS a relative path, perhaps that can be eliminated now. |
No problem about the dependency manager switch. Go Mods is the official golang dependency manager, and we're happy to be on the latest and greatest. Thanks for the info about --gomod-flags and for raising the new cmd issue. E |
I'm getting
Sure. Why would it be in GOROOT? I created a new project using Nevermind: |
Also remove vendor directory left by dep. |
Hi @notzippy Congrats on the release of revel 1.1.0! At this point, my development team has been using the revel framework for 4+ years on a website that serves 45k unique users per month. We have been very pleased with the framework. Unfortunately, with the release of revel 1.1.0, all of our Continuous integration and deploy processes have broken. This is because our app still targets revel 1.1.0 in go.mod and go.sum, but
now downloads revel cmd v1.1.0 instead of cmd v1.0.3 We currently run golang 1.14 on our servers. We are happy to upgrade to revel 1.1.0 and golang 1.17 in the coming weeks, but until we make those changes, it would be great if we can still build and deploy using revel 1.0. For us, and other folks in our position, is there a way to maintain backwards compatibility with our previously working build steps (Copy/pasting from earlier comment) Everything from the above works to set revel version to 1.0.0, except for
Is there a way for us to still download revel cmd version 1.0.3 while staying on go 1.14? Thanks! Eric |
For reference, the error we get when trying to test a revel 1.0.0 app with revel cmd 1.1.0 is
Another example, where trying to run the app fails
Ah, I see that revel cmd 1.1.0 requires golang 1.17 revel/cmd@111264c Yeah the question really is - Is there a way we can still go get revel 1.0.3? |
We're working to resolve this now. |
A v1.1.2 hotfix release for revel/cmd has been pushed. Thanks for your patience. |
Thanks so much for the quick fix! We confirmed our CI process is working again. Really appreciate the help. |
We really appreciate your feedback and encouragement :) |
Btw, in case it might help drive adoption/use of revel - our website is https://driverbase.com If you potentially want to link to it from revel landing page - you could use it as a reference of the framework in action. We could also add a "Powered by Revel" tag to our website to link back to the framework. Happy to discuss, or chat about it. Thanks! |
Hi Revel Team,
My team has used revel for the past 2 years and been very happy with the framework.
We have a website built on revel that attracts more than 20k users per month, and we're very pleased with performance, maintainability, ease of development, etc.
Last year we adjusted our app to use dep for dependency management, per the recommendations in the following two revel discussions:
revel/cmd#177
#1326
We were happily chugging along with development until this past weekend when Revel v1.0.0 was released. Our dep build process is no longer compatible with the latest version of revel, we need to adjust our builds to work again. We're seeking guidance in how to proceed (Either to upgrade our build process to use go mods and latest revel version, or how to use legacy revel cmd and framework to maintain existing functionality)
It seems there were some major changes in the 1.0.0 release that fundamentally changed the way that Revel can be included as a dependency, and how the revel cmd is used to start apps.
i.e. the revel run command now requires a -a flag for application path, and a -m flag for run mode.
In the past, we just ran our app by invoking
revel run <appname> prod
.We're really excited about the update, and we're glad that Revel officially supports go modules now.
However, for teams with existing prod applications, do you have an official upgrade guide for the new revel version? i.e. a doc with general upgrade steps and common issues? We would love to get our application builds fixed so that we can continue development.
Also, is it possible for teams to use the legacy version of revel and revel cmd in the interim? If so, can you please share steps to do that?
Thanks very much.
The text was updated successfully, but these errors were encountered: