chapel icon indicating copy to clipboard operation
chapel copied to clipboard

`source` field required in `Mason.toml` for registration, misleading documentation

Open lucaferranti opened this issue 1 year ago • 3 comments

According to masonTomlFileCheck in masonPublish here, the Mason.toml file need to have a source field in order to be registered, otherwise it fails (example 1, example 2 ).

There is no mention of this in the documentation about Manifest file and in the documentation on publishing packages it is only mentioned in the second bullet list (manual steps), letting understand that if one uses mason publish this will be taken care of automatically (which is not the case).

A few solutions:

  • Mention in the first bullet list to add manually a source field pointing to the repository.
  • ~~Let mason publish modify the Mason.toml to add the field if missing.~~ Wouldnt work, would still need to commit the new manifest first.
  • (remove the requirement, but I guess it's there for a good reason, also I see no harm in the field being there)

and a few bonus points:

  • Mention the field in the documentation about Manifest.toml. While the field is strictly not compulsory unless one plans to publish on Mason, I think it would be good to mention there that it's good practice to have the field if you host your work in a repository, and it's needed if one wants to publish in mason
  • Initialize the field when running mason new this would require to ask for the user github account.

lucaferranti avatar May 16 '24 19:05 lucaferranti

Thanks for this report! We're planning on going over and updating mason documentation in the near-ish future, and we'll make sure to address this case.

benharsh avatar May 16 '24 21:05 benharsh

it is only mentioned in the second bullet list (manual steps), letting understand that if one uses mason publish this will be taken care of automatically (which is not the case).

Actually that mention refers to X.Y.Z.toml, so as far as I can tell source being required in the Mason.toml itself is not mentioned.

What was the idea behind that requirement? It can be a nice-to-have info, but I am not sure if it's strictly needed for anything. Does mason rely on it?

lucaferranti avatar May 17 '24 22:05 lucaferranti

What was the idea behind that requirement? It can be a nice-to-have info, but I am not sure if it's strictly needed for anything. Does mason rely on it?

I believe mason relies on the source field to know where the source code for the package is hosted when pulling dependencies.

benharsh avatar May 20 '24 23:05 benharsh

I believe mason relies on the source field to know where the source code for the package is hosted when pulling dependencies.

but that applies to the X.Y.Z.toml file in the registry, no? Indeed, I think mason would see a dependency Mason.toml only after having pulled the dependency

lucaferranti avatar May 21 '24 07:05 lucaferranti