-
Notifications
You must be signed in to change notification settings - Fork 3k
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
27.0-rc2 sys:get_status/2 documentation update and ex_doc use #8295
Comments
FWIW the |
I don't know why entering What happens if you do
The debian package maintainer has decided to create packages for each of the ex_doc dependencies and build the docs from source and that seems to be working well from what I can tell. |
@garazdawi downloading ex_doc succeeds:
Using ex_doc fails for me, but I was assuming it was due to having an older elixir in my path
The ex_doc failure has the output below:
@michalmuskala Somehow it has trouble above due to its use of |
@garazdawi If you ignore the I am describing this to provide more context to the "checksums and verification of the source creating the same build output (at any point in time)" concept (i.e., making the build deterministic to have reliable operation). |
The I had forgotten, but I actually added a note about which version should be used in the installation guide for the docs. I've opened #8304 to make that information a bit more easily accessible. As for your build error, I don't know what is going on, but it almost seems like you are using the bootstrap build to build the docs. Did you do |
@garazdawi Yes, The sha256 is never checked if the sha1sum executable exists based on the source code Lines 1018 to 1032 in e31d35c
It would be better if ex_doc source code was converted to Erlang to live inside the repository, allowing the cyclic dependency to be eliminated. The source code could be converted manually or an automatic source code conversion could be created similar to ex2erl, though that would require replicating Elixir's macro processing source code and Elixir's internal source code to fully convert all the source code to Erlang. |
Aha, you did a deterministic build, that would also do it. It is currently not possible to build html/epub docs using
Thanks for highlighting the misstake I made there. I'll fix that to use sha256sum to verify.
You and I have very different views on what better means in this context :) I'm not sure wherein the cyclic dependency lies though? As far as I can tell there is this dependency:
So while the Erlang/OTP compiler and docs can come from the same repository, they do not have to. In fact, they don't have to even be the same release, as long as the version dependencies work. For instance the The future will probably prove me wrong, but I think the current solution is good enough for now. There are bound to be some quirks that need to be ironed out, but without reports of any actual issues I don't want to rush to a solution that might not work. |
@garazdawi Please keep in mind the original purpose for opening this issue was the |
Describe the bug
The documentation at
lib/stdlib-6.0/doc/html/sys.html#get_status/2
references the deprecatedformat_status/2
callback functions, so it needs to be updated to reference theformat_status/1
callback functions.Attempting to build the documentation with
make release_docs
depends on the remote dependencyex_doc
which depends on the remote dependencyelixir
. The makefile does provide the output below whenex_doc
is missing:Could not find ex_doc! Do you want to download latest ex_doc from github? (y/n)?
Entering
y
didn't work for me, likely due to the versions I have available. A circular dependency like this is brittle, especially when the latestex_doc
version is being used. To ensure documentation can always be built, it would be good to use a specific version ofex_doc
(which can then enforce a version constraint on theelixir
it is using). I would assume OS package managers of Erlang/OTP packages would want the documentation dependencies to be local so they can be part of checksums and verification of the source creating the same build output (at any point in time), but they could always reference the html tarball from the specific release instead of attempting to generate the documentation.To Reproduce
Documentation can be obtained at https://github.com/erlang/otp/releases/tag/OTP-27.0-rc2 to avoid
ex_doc
problems.Expected behavior
I expected the documentation to require only local dependencies, to ensure the documentation can be built in a dependable way.
Affected versions
27.0
Additional context
Updating the
sys:status/2
documentation is related to the 27.0-rc2 compiler warningthe callback MODULE:format_status(_,_) is deprecated; use format_status/1 instead
.The text was updated successfully, but these errors were encountered: