fireproofsocks

fireproofsocks

I know I asked this before (I even submitted a PR somewhere), but now I’ve forgotten the steps because the flow is so obfuscated. Where do interested developers submit changes to the documentation of Hex packages? I may be missing something obvious here, but where are the docs stored? I’m expecting a link to the source code repository that controls the documentation. Instead, the only links I see are irrelevant ones (e.g. ExDoc is generic, not a link to the specific documentation/package that I’m looking at). As someone who is driven to a soapbox when it comes to the importance of writing good documentation (https://medium.com/@craftsmancoding/wtfm-dbbec02eb172), I’m wanting to see a few critical things that appear to be missing in the Hex packages.

1. Where is each packages code’s repo located? If I want to view the source code or fork it, where is the link? Am I to assume the code is always in Github? Bad assumption methinks. Make it clear and put up a link as flagrantly in our faces as possible: This code in this package is stored in this repo: _____

2. Where is the link to the documentation’s repo? Every bit of documentation REQUIRES a feedback loop, no matter if it is an open source package or proprietary code. Every Hex package MUST have a link to where a developer/user can suggest changes to the documentation. Although I’m new to Elixir, I have already seen lots of well-constructed code… but I’ve been forced to slog to some pretty rough-shod docs to get to it. There’s really no excuse for that, and I know I’m not alone in that struggle. Unless there is a clear link for users to submit suggestions to documentation improvements, the adoption of any package or system will suffer because the documentation is static and it stagnates. It’s as dire of a prognosis for a package as having your mouth sewn shut. I think we can do better by implementing a few minor changes.

Thanks!

Showing Posts 1 to 10

NobbZ

NobbZ

You can look that up on the packages infopage on hex.pm. If the author has put that piece of information into the mix file…

If its not there, you need to google.

Documentation for elixir applications is usually side by side with the sources. So you can find it the same way as you can find the answer to your first question.

There may be other kinds of documentation than only the generated API documentation, but that is specific to the package you use. And since it is non standard documentation, it may be otherwise sourcecontrolled or not at all.

Qqwy

Qqwy

TypeCheck Core Team

@NobbZ already answered your second question in a lot of detail, but let me answer your first question in a little more detail:

There are two places where a package’s code repository can be specified in the mix.exs-file:

  1. In the source_url key that project returns. This is actually read by ExDoc to automatically link to source files from within documentation files as well.
  2. Inside the package.links key that project returns. Of course, any other project-related links can be put here too.

There is no hard dependency on GitHub at all; any repository location can be used.

Ommissions/unclarities or changes to the documentation are considered as implementation bugs by most Elixir developers, so they can be requested in the main project’s issue tracker.

fireproofsocks

fireproofsocks OP

Thank you for the response!

Ommissions/unclarities or changes to the documentation are considered as implementation bugs by most Elixir developers, so they can be requested in the main project’s issue tracker.

You can see how maddening it is to NOT have the link for that up-front and center. How hard would it modify ExDoc to read the links specified in the mix file and print that up in the top left-hand corner of each page?

LostKobrakai

LostKobrakai

Hex docs do already use the repo / website links if they are supplied. Try clicking on the package name in the sidebar or if a repo is supplied the “</>” links in each page (e.g. here). But they’re not required. People can even publish nothing online beside the package on hex. There’s no dependence on git / github or any form of online presence. You just need a local mix project and you can publish it to hex.

fireproofsocks

fireproofsocks OP

Ooof… I did not see that. the little “</>” icon is not doing it for me.

ericmj

ericmj

Elixir Core Team

Of each page of where? Can you expand on where you expect these links to be and how we can improve the visibility of Elixir library documentation. I believed this was already fairly visible through links on hex.pm and github.com, so any guidance on improvements would be appreciated.

fireproofsocks

fireproofsocks OP

I would recommend using a word as the label. Symbols like “</>” are a nice bonus, but they aren’t always clear. I would recommend labeling that with a word. Like “Source” or “Issues”. Look at PHP’s packagist for comparison: guzzlehttp/guzzle - Packagist.org
It clearly has a searchable label for the git repo, one for source, one for issues etc. It’s much easier to read.

LostKobrakai

LostKobrakai

The corresponding page for your packagist link would be something like phoenix | Hex though. And the “Links” shown there are again based on what authors supply in their mix.exs.

ericmj

ericmj

Elixir Core Team

Sorry, I need to ask you again to elaborate on what you expect for links, we use words such as “GitHub” and “Online Documentation” to direct people. The word choice is partly up to the maintainers of the packages and out of our control, but any guidance on improvement would be appreciated and hopefully we can improve the website and guide maintainers in the right direction for their link names.

When I go to ecto | Hex I find it easier to discover links to the repository and docs than I do on guzzlehttp/guzzle - Packagist.org. I am not a good judge though since I am used to the design and layout of hex.pm, so any suggestions for improvement would be greatly appreciated.

joaquinalcerro

joaquinalcerro

I recently contributed to ecto documentation and at first I was confused on how to contribute. This was my first time contributing.

When you go to the “Online Documentation” link, you are presented with a Web Site you assume you can modify or contribute to. Well, at least I did. I even ask someone in the ecto team how can i contribute but never got a response back.

So I wasn’t going to stop investigating how to do it and I found the “</>” button that took me to the Github source code of ecto. Even though I knew about ExDoc and how to document a module inside the same code file, I wasn’t aware that the hex.pm site was built with it.

I finally realized that I had to go the github PR way to contribute and did it.

So based on my experience I recommend you to add a simple “How to contribute to packages/documentation” section in the hex.pm site that will help new contributors. Maybe not experts. This simple section should explain how ExDocs works, what is the “</>” button for and the steps to follow to contribute to any package.

I understand that hex.pm is the package manager for Erlang ecosystem but seems so natural to be guided here on how to contribute to a open source project.

Sorry for the long story… Best regards

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
bradley
I really like the adapter patterns that ecto, nebulex, waffle, etc. use and would love find something similar for a key management servic...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New
unaware8150
Hello folks! So at work, we are seeing some situations where we have to define some “fixed” strings that are used across the codebase in...
New
ChrisAmelia
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication): toke...
New
dillonoconnor
Is there any way to avoid the Hologram compiler running when using iex? It seems like the front-end code could potentially be disregarded...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews