Make local development significantly easier
I'm not sure why but I am completely unable to run this project outside of a devcontainer or codespace.
I'm not sure if it's issues with my local Ruby setup or not.
I'm open to different suggestions on this but the more we force folks to use codespaces then we limit their contribution based on what they are willing to pay for.
Suggestions
Diagram
We need a diagram of the infrastructure to better understand the different tools that we're using.
- [x] #402
Dockerfile
Beauty of a dockerfile is that it can be the source for the codespace (we don't have access to the existing codespace dockerfile so we'd likely need to start over. It also means that we can implement this across operating systems as well.
Make or Invoke
I don't have a preference on this but we should make it simple to setup, test, lint and run services regardless of the language.
I would probably be more comfortable with invoke since it's python code but if someone knows enough about make to make it easy to follow I wouldn't mind.
Don't know if it helps at all, but I am totally able to run this repo locally! I think I was fortunate enough to have already setup my ruby environment when I was learning Jekyll
I might end up wanting to take this issue as well just because I'm setting up the repo on a new laptop and can document the steps.
Hello @dragid10 just checking if this issue is related to your last PR that has been merged
Nope! This is a separate issue related to adding instructions on how to setup your environment locally.
I'm happy to let someone else grab it though. I usually don't like squatting on multiple PRs at once, but I figured this would be easy enough for me to take since I had to setup a new laptop anyways
Nope! This is a separate issue related to adding instructions on how to setup your environment locally.
I'm happy to let someone else grab it though. I usually don't like squatting on multiple PRs at once, but I figured this would be easy enough for me to take since I had to setup a new laptop anyways
Oh please go ahead, just checking. Thanks
For this one I think the Dockerfile route might be the best. make/invoke seems like it'd require decent testing on different operating systems to work consistently. I'm happy to create the Dockerfile for this.
Also if we're assuming that contributors will be using VS Code, then we know that Code has the remote container plugin
We have a dockerfile for the dev container. I don't hate the idea of it.
Just a reminder that not everyone has the ability to run docker locally
okay so the goal of this issue would be to run without the need for the dev container or codespace? Like if I wanted to setup the dev environment directly on my machine, these are the steps I would follow?
Easy steps to:
- Run locally with no DevContainer
Bonus:
- Run a DevContainer or Codespace and it not take 5 minutes to startup
I suggested make or invoke as it could be used to make the setup a one-liner. I think tox could also be an option.
I'd throw in looking at nox as well. You can see an example used by jupyter and their corresponding noxfile.py file .
I'm a nox fan... I wasn't sure if nox would be great since we have to do ruby things and python things.
I was thinking tox though.
I was initially looking at make, but then thought invoke might be better for cross-platform. I can start looking into tox just to see how it compares
That's fair, I'm not the biggest fan of conda - which Jupyter uses to install ruby within nox in that example ^
I think tox is more popular then invoke... funny enough another project I monitor and try to contribute at from time to time (Valkey-py) made the choice to migrate from pyinvoke to tox
I'm going to throw this one back into the pool. Work and other life events have given me less time than that I would like to effectively work this issue. And I would still need to play around with these different tools mentioned in order to get a feel for them.
It seems like there are a couple of folks that already have some experience with some of the mentioned tools, so I'm happy to unassign myself from this 🙂
Hello people. I have never worked with ruby on rails before and do not know how to setup local development. But it is getting harder to contribute to this repo since my codespaces are full.
Currently i have no knowledge of nox, invoke, docker or any other of the technical terms you are using, but If I had the appropriate guidance to the necessary documentation, i think i can work on this issue.
Hey @kjaymiller i found this issue very interesting and would like to work on it
Please @kjaymiller assign this issue to me
[Update] We no longer use make in our project setup. More ...
So Hello. I was inquiring on whether there is an update on this issue since it is now impossible for me to contribute to the project.
I have contributed before using codespaces but when they became full I had to take some time off. On returning I tried the now familiar process and this is the error I got:
I went ahead and installed the rbenv stated and still got this error:
After some research i realized that rbenv is at version 1.3.0 and it might be referring to ruby. The is no guide on installing ruby in a codespace. I do not know which package managers to use. I moved on to local development, where I experienced the errors below, even after updating ruby and bundle to the version outlined in the Gemfile:
As a complete noob to ruby and its eco-system, this is quite challenging. I'd like to know if there is a newer version for contribution somewhere. If not I argue that this issue should be given a higher priority and the README updated accordingly.
Oops! Have you had a chance to implement your changes yet? If needed, I can guide you through contributing locally. Our maintainers' guide is currently being revised, a comprehensive version will be rolling out soon. In the meantime, you can run the command bundle install if you’ve downloaded version 3.3.5.
Hey. So no, I am yet to work on the PR and would appreciate any guidance. Currently on my system, I have the following packages:
When I try to update the ruby version to 3.3.5 using rbenv I get the following error:
I'd start with the suggestions it gave of checking rbenv install ---list and double check that 3.3.5 is available. I'd also make sure ruby-build is updated to the latest version (I believe it is 1.3.0) .
You should be able to rbenv nstall 3.3.5 after that. You can check what versions you have installed with rbenv versions. You may also need to set rbenv local 3.3.5