Skip to content
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

docs: rewrite home page #2217

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Conversation

jahn-junior
Copy link
Contributor

  • Rewrite home page to comply with the standard homepage model.
  • Fix outstanding lint errors in reference docs

Copy link
Contributor

@erinecon erinecon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, I think your updates to the home page look great :) I only have nitpicks (mostly comma related) for you to take or leave!

docs/index.rst Outdated
:external+juju:ref:`Juju charms <charm>`.

When initializing a project, Charmcraft generates all the necessary files, pre-populated
with template content, which can be further catered to an application using Charmcraft's
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
with template content, which can be further catered to an application using Charmcraft's
with template content, which can be further catered to a web app using Charmcraft's

Copy link
Collaborator

@lengau lengau Mar 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gonna have to ask for a reversion here - the current extensions handle several types of web apps, but Charmcraft as a whole is more general. A quick example is that Charmcraft also helps charm databases.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe "a service" or something like that would be more appropriate?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"services" fits the mould, in my view, but I believe @tmihoc had some better alternatives?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ac44634

I changed it to services for the time being, but am open to any other terms that might be more consistent with the Juju documentation.

docs/index.rst Outdated
Comment on lines 31 to 32
For those looking to add their applications to a Juju deployment, Charmcraft will prove
to be an invaluable tool.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any suggestions for the final paragraph? This was included as more of a placeholder.

The standard model states that this should state who the product is useful for, but I was having a hard time coming up with anything besides "charm authors".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you need a good example, I think the Landscape docs put it very solidly.

I think part of the solution could be to borrow the second-half of the last sentence from the previous paragraph and combine it with this one.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, Charmcraft is in fact only for charm authors. You could reword it in a way that basically says the same thing but you'd probably end up redefining the word "charm", and that feels inappropriate at this stage. (https://juju.is/docs > the intro line at the very top defines Juju and charms already, and from there onwards we just embrace the words.)

Copy link
Contributor Author

@jahn-junior jahn-junior Mar 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ac44634

@tmihoc @medubelko I did a rewrite and I'd be curious to hear your thoughts on it. I tried to add a bit more context without needlessly restating what has already been defined in the Juju docs. I felt it necessary for this to say more than "Charmcraft is for charm authors", as in my mind that amounts to the same as saying "cars are for drivers". With that being said, it can always be improved, so I'm open to any and all feedback you may have!

@jahn-junior jahn-junior marked this pull request as ready for review March 11, 2025 18:01
@jahn-junior jahn-junior requested a review from tmihoc March 11, 2025 18:01
Copy link
Contributor

@medubelko medubelko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tremendous thanks for putting this together, @jahn-junior! I think it's shaping up closer to what the model needs.

My review is non-blocking, but there's one grammar fix in it. Thanks!

docs/index.rst Outdated
state-of-the-art results in record time.

If you're a charm author, you *must* use Charmcraft!
Charmcraft is the official command-line tool for initializing, packaging, and publishing
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

official

I may have mentioned this in the original doc, but what do you think about "the command-line tool"? "official" stands out to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ac44634

Agreed. I think I actually had it that way initially, but changed it after taking one of your comments on the google draft too literally. My mistake!

docs/index.rst Outdated
When initializing a project, Charmcraft generates all the necessary files, pre-populated
with template content, which can be further catered to a web application using
Charmcraft's array of extensions. Packing a charm is similarly streamlined, as
Charmcraft automatically fetches project dependencies and compile any modules before
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Charmcraft automatically fetches project dependencies and compile any modules before
Charmcraft automatically fetches project dependencies and compiles any modules before

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ac44634

Oops, I overlooked this when I updated the first part of the sentence from "will automatically fetch" to "automatically fetches".

docs/index.rst Outdated
Comment on lines 19 to 20
with template content, which can be further catered to a web application using
Charmcraft's array of extensions. Packing a charm is similarly streamlined, as
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
with template content, which can be further catered to a web application using
Charmcraft's array of extensions. Packing a charm is similarly streamlined, as
with template content, which can be further catered to a web application.
Packing a charm is similarly streamlined, as

Working on a web app is a great story to tell! I don't know that new readers will understand what "extension" means in the introduction. My sense is that it's too early to mention them.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ac44634

I think it's slightly better after the latest commit. I agree that the bit about extensions was a bit forced, so I took it out of that first section? Do we think that they should be worked in somewhere else or is it too far outside of the core story to include here?

docs/index.rst Outdated
Charmcraft's array of extensions. Packing a charm is similarly streamlined, as
Charmcraft automatically fetches project dependencies and compile any modules before
producing the final charm artifact. When it comes time to publish a charm on
`Charmhub`_, Charmcraft provides tools for charm authors to register a charm's name,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tmihoc

What do you think about "register a charm" as a user story? Is it "charm name" to avoid the confusion about individual charm artifacts vs. the charm as a whole?

For comparison, we use "register a snap" and "register a source" in Snapcraft and other tools.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer "register a charm" for consistency - the specific .charm file that gets packed is equivalent to a specific .snap file, so we should be encouraging use of the term "revision" for it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lengau +1 for "register". That said, to me it feels like a detail of publish so I wouldn't personally highlight it on the homepage.

docs/index.rst Outdated
Charmcraft simplifies every step of the charming process, enabling charm authors to
bypass boilerplate steps and focus on the contents of their charms. Additionally,
Charmcraft's integration with tools such as :external+ops:doc:`Ops <index>` and Charmhub
provides charm authors with a truly comprehensive toolkit for charm development.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
provides charm authors with a truly comprehensive toolkit for charm development.
provides charm authors with a comprehensive toolkit for charm development.

Copy link
Member

@tmihoc tmihoc Mar 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Charmcraft simplifies every step of the charming process" >> I think this is the part to emphasize here. Charmcraft takes care of all of initi, pack, and publish, and the Ops templates it provides also help with development and testing.

"Charmcraft's integration with tools such as Ops and Charmhub provides charm authors with a comprehensive tool..." >> First, just like Charmhub, Ops should be mentioned in the previous paragraph -- Ops code is part of the template content that charmcraft init provides. Second, the sentence as a whole sounds odd -- I mean, Charmcraft together with Ops amount to a comprehensive SDK, but Charmhub is hardly part of a "toolkit", and I wouldn't say that it's the integration that provides a comprehensive SDK -- I'd rephrase it to something else.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ac44634

Thanks for pointing these things out! These are factors that I likely wouldn't have considered if I didn't get another set of eyes on the PR.

I agree on both points. I included a mention of the YAML and Ops template content where I bring up initialization. I also reworded that last sentence in the third paragraph. I think "charm development experience" is more accurate than "toolkit", as I would consider publishing, which Charmhub is an integral part of, to be one of the final steps in development. Please let me know what you think about the change!

docs/index.rst Outdated
Comment on lines 31 to 32
For those looking to add their applications to a Juju deployment, Charmcraft will prove
to be an invaluable tool.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you need a good example, I think the Landscape docs put it very solidly.

I think part of the solution could be to borrow the second-half of the last sentence from the previous paragraph and combine it with this one.

docs/index.rst Outdated
:external+juju:ref:`Juju charms <charm>`.

When initializing a project, Charmcraft generates all the necessary files, pre-populated
with template content, which can be further catered to a web application using
Copy link
Member

@tmihoc tmihoc Mar 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm finding "can be further catered" a little bit awkward -- I think I'd say "targeted" or something like that, but I'll defer to everyone else's native speaker ear here. More importantly, I think the relevant bit there is to highlight "kinds of web applications" or "classes...", but @erinecon would know better.

Copy link
Contributor

@erinecon erinecon Mar 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like "catered" sounds fine to my ear, but "targeted" also makes sense as that's basically what the extensions do. I have no strong preference and leave it up to @jahn-junior :) Upon a second read-through, I think we should be more explicit that's it a specific set of wep apps and not just any random web app. Below is a suggestion (probably the linter will hate it, sorry about that):

Suggested change
with template content, which can be further catered to a web application using
with template content, which can be further catered to certain types of web apps (Django, FastAPI, Flask, Go) using

Copy link
Member

@tmihoc tmihoc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the original, the second paragraph mentioned Ops, Charmhub, Python, YAML, Django, FastAPI, Flask, Go on purpose. I'm not sure why they were removed -- imo they're all either directly relevant to the story (part of the template content generated on charmcraft init is Ops code, so Ops should be mentioned there; similarly, YAML and Python give people a quick tanngible sense of what a charm is) or useful buzzwords (e.g., a reader who is familiar with Django, FastAPI, Flask, or Go will quickly care if they see those words).

docs/index.rst Outdated
Comment on lines 31 to 32
For those looking to add their applications to a Juju deployment, Charmcraft will prove
to be an invaluable tool.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, Charmcraft is in fact only for charm authors. You could reword it in a way that basically says the same thing but you'd probably end up redefining the word "charm", and that feels inappropriate at this stage. (https://juju.is/docs > the intro line at the very top defines Juju and charms already, and from there onwards we just embrace the words.)

docs/index.rst Outdated
Charmcraft's array of extensions. Packing a charm is similarly streamlined, as
Charmcraft automatically fetches project dependencies and compile any modules before
producing the final charm artifact. When it comes time to publish a charm on
`Charmhub`_, Charmcraft provides tools for charm authors to register a charm's name,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lengau +1 for "register". That said, to me it feels like a detail of publish so I wouldn't personally highlight it on the homepage.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't invest any effort in this file -- this doc is generated automatically from charmcraft.yaml upon charmcraft.pack (@lengau please correct me if I'm wrong), so I'd replace the contents of that doc with just a note to that effect.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only bothered with the line lengths so that I wouldn't see the warnings when running the linters.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants