-
Notifications
You must be signed in to change notification settings - Fork 168
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
Update the installation steps of the README #269
base: master
Are you sure you want to change the base?
Update the installation steps of the README #269
Conversation
Thanks for your PR @pablocostass ! I have some concerns about it. On the one hand, I can definitely see its usefulness, esp. for newcomers. On the other hand, I am not sure it's a good idea to have 1.3.0 or 1.3 hard-coded in three places (and remember to update these with each new release). More importantly, I am a bit uneasy about including instructions that depend on other tools (rebar3, mix, brew) and may change without notice. I would prefer to point to a place in these tools on how to do something (e.g. look at this rebar3 page, use Is there something along these lines that can be done about it? |
I do understand the point of having the version hard-coded not once but thrice in the README. Sadly, as far as I have seen, most Erlang/Elixir projects just update those values with each release, but I am not the person responsible for that and it can be a pain in the ass for others. However, another approach that I have seen, mainly in Erlang projects, is to just add a badge that points to the hex.pm page of the project, e.g., and that certainly is an easy solution that both reduces the number of hardcodes related to the version (the badge doesn't even need it) and allows us to remove the instructions on how to add PropEr as a dependency for these tools. What do you think @kostis? On a side note, all the tools that would be mentioned in the README with this PR ( |
I am all for adding a badge to hex.pm. Let me do this right away (and you modify this PR appropriately). As to the tools, I agree that they are very mature alright (and thus not very likely to change), but I still prefer a pointer in their manual (e.g. "read the section ...... about PropEr in rebar3") or a sentence of the form "use the command |
Barging in a bit unexpectedly here, @kostis and @pablocostass I had made some changes to the README a while ago, but never got a chance to create a PR. You can check the changes here, where I think it's better to also show how to use Let me know what you think 😄 |
I am fully onboard with your approach @xspirus, it is way simpler and easier to read than mine! The only nitpick I have is that you only explain how to add PropEr as a dependency from the latest main version, but do not mention how to use the latest stable release. What do you think of their approach, Kostis? It has a clear distinction on how to get PropEr, compile it, and use it :) |
Guys, I am all for improving things but, honestly, I do not see what the problem with the current README is. What it does not say, on purpose, is how to use it from IMO, the furthest that PropEr's README can go is to contain links / pointers to these tools (or to |
I think you hit the mark on this. Instead of providing a way of using PropEr with |
> The path that you will need, in most cases, if you used `brew` is | ||
> `/usr/local/Cellar/proper/1.3` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't recommend users rely on Cellar
paths -- these are fragile and could be changed at any moment (i.e. even if proper's version does not change). Instead, users should use what's recommended in brew info proper
:
==> Caveats
To use PropEr in Erlang, you may need:
export ERL_LIBS=/opt/homebrew/opt/proper/proper-1.4
Resolves #268.
I took the chance to, besides adding a note to what is the default path where PropEr will be installed with
brew
, add a small section on how to add it as a dependency for Erlang and Elixir projects (withrebar3
andmix
, respectively), as many people probably want to do that nowadays.