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

Add initial vale configuration and apply editorial changes to documentation #3567

Merged
merged 16 commits into from
Jan 29, 2024

Conversation

sarayourfriend
Copy link
Collaborator

@sarayourfriend sarayourfriend commented Dec 21, 2023

Fixes

Fixes #3566 by @dhruvkb

Description

I've picked this work up from @ngken0995 so that Ken can focus on other PRs.

When we originally started looking into Vale, we were misinformed about how it worked. We thought that you had to commit the styles files to the repository. However, that's not the intended way of using Vale. Instead, the Vale documentation instructs you to git-ignore all "synced" configuration files, and only commit custom configuration files. This allows us to avoid introducing big long lists of offensive terms into the monorepo. Those files would still appear if you ran vale sync from within the new .vale directory. But that is not necessary to do, not even when developing the Vale configuration, because everything can run from within the built docker image. Running Vale using Docker also allows us to avoid contributors needing to install Vale locally, and avoids potential conflicts in Vale versions by pinning the Vale version we use in the base docker image's tag.

We will not use a published image in any circumstance because: (a) the vale docker image is small and after the first time it is downloaded it is reused every time, unlike needing to redownload the entire published image each time the configuration changes, and (b) it avoids a whole host of complexity in our CI and local linting when changes to the Vale configuration conflict with the previous Vale configuration. For example, if a new configuration conflicts with the currently published configuration, the Vale pre-commit step would fail when running the published image! This was too hard to resolve, and would require looking at the git history compared to HEAD in pre-commit, or juggling new conditionals in our already complex ci_cd.yml workflow. Using a local image every time avoids all of this complexity without any downsides. In fact, it is positive because the base vale image is always reused instead of needing to redownload it any time the Vale configuration changes (excluding updates to the version of the base image).

Run vale using just .vale/run. This also builds the docker image. Refer to .vale/README.md and other new in-code documentation for rationale behind various configuration choices.

The pre-commit hook also excludes project proposals and changelogs. Changelogs are automatically generated, and as such, I don't think they should be linted for editorial content. For example, if a PR title doesn't pass Vale, I don't think it's accurate to change the title in the changelog. That's my personal judgement, but if other folks want to run Vale there, I would also think that's fine and wouldn't push against it.

The project proposals, on the other hand, are complex. They raise a lot of errors in Vale and are the bulk of our documentation, line-by-line. They are also not "living" documents, that we make changes to over time. Once they're in, they're more or less meant to stay as-is, with changes to the project reflected in the project threads (that's my understanding). Going back and making retroactive editorial changes to those files doesn't feel right to me. On the other hand, if folks do want to do that, then I also wouldn't push back here, I'd just ask that it gets done in a separate PR.

This configuration is just a starting point, and we can incorporate additional rules in the future, if we like, even from other style guides. Red Hat's guide in particular has a lot of compelling options, including scentence complexity checks and a much better passive voice check than the other ones I've seen.

Testing Instructions

Run just .vale/run. Make changes that will cause issues with Vale and confirm they raise errors as you expect. Confirm no unnecessary errors are present.

Read over the Vale configuration and through the Vale documentation to confirm that it all makes sense and is appropriate for our project.

Checklist

  • My pull request has a descriptive title (not a vague title likeUpdate index.md).
  • My pull request targets the default branch of the repository (main) or a parent feature branch.
  • My commit messages follow best practices.
  • My code follows the established code style of the repository.
  • [N/A] I added or updated tests for the changes I made (if applicable).
  • I added or updated documentation (if applicable).
  • I tried running the project locally and verified that there are no visible errors.
  • I ran the DAG documentation generator (if applicable).

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@sarayourfriend sarayourfriend added 🟨 priority: medium Not blocking but should be addressed soon 💻 aspect: code Concerns the software code in the repository 🧰 goal: internal improvement Improvement that benefits maintainers, not users 🧱 stack: mgmt Related to repo management and automations 🧱 stack: documentation Related to Sphinx documentation labels Dec 21, 2023
Copy link

Size Change: +2 B (0%)

Total Size: 1.06 MB

ℹ️ View Unchanged
Filename Size Change
./frontend/.nuxt/dist/client/252.js 343 B 0 B
./frontend/.nuxt/dist/client/252.modern.js 345 B 0 B
./frontend/.nuxt/dist/client/253.js 1.85 kB 0 B
./frontend/.nuxt/dist/client/app.js 136 kB +1 B (0%)
./frontend/.nuxt/dist/client/app.modern.js 128 kB +1 B (0%)
./frontend/.nuxt/dist/client/commons/app.js 105 kB 0 B
./frontend/.nuxt/dist/client/commons/app.modern.js 87.4 kB 0 B
./frontend/.nuxt/dist/client/commons/components/v-error-section/components/v-external-search-form/components/v-external-source-li/4e2d09e1.js 5.18 kB 0 B
./frontend/.nuxt/dist/client/commons/components/v-error-section/components/v-external-search-form/components/v-external-source-li/4e2d09e1.modern.js 5.62 kB 0 B
./frontend/.nuxt/dist/client/components/loading-icon.js 732 B 0 B
./frontend/.nuxt/dist/client/components/loading-icon.modern.js 733 B 0 B
./frontend/.nuxt/dist/client/components/table-sort-icon.js 514 B 0 B
./frontend/.nuxt/dist/client/components/table-sort-icon.modern.js 519 B 0 B
./frontend/.nuxt/dist/client/components/v-all-results-grid.js 6.89 kB 0 B
./frontend/.nuxt/dist/client/components/v-all-results-grid.modern.js 6.73 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-collection.js 4.54 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-collection.modern.js 4.42 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-list.js 1.42 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-list.modern.js 1.4 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-result.js 1.12 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-result.modern.js 1.1 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-track-skeleton.js 958 B 0 B
./frontend/.nuxt/dist/client/components/v-audio-track-skeleton.modern.js 962 B 0 B
./frontend/.nuxt/dist/client/components/v-audio-track.js 5.14 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-track.modern.js 5.11 kB 0 B
./frontend/.nuxt/dist/client/components/v-back-to-search-results-link.js 633 B 0 B
./frontend/.nuxt/dist/client/components/v-back-to-search-results-link.modern.js 639 B 0 B
./frontend/.nuxt/dist/client/components/v-bone.js 631 B 0 B
./frontend/.nuxt/dist/client/components/v-bone.modern.js 637 B 0 B
./frontend/.nuxt/dist/client/components/v-box-layout.js 1.16 kB 0 B
./frontend/.nuxt/dist/client/components/v-box-layout.modern.js 1.16 kB 0 B
./frontend/.nuxt/dist/client/components/v-by-line.js 2.31 kB 0 B
./frontend/.nuxt/dist/client/components/v-by-line.modern.js 2.29 kB 0 B
./frontend/.nuxt/dist/client/components/v-collection-header.js 1.53 kB 0 B
./frontend/.nuxt/dist/client/components/v-collection-header.modern.js 1.54 kB 0 B
./frontend/.nuxt/dist/client/components/v-collection-page.js 4.21 kB 0 B
./frontend/.nuxt/dist/client/components/v-collection-page.modern.js 4.19 kB 0 B
./frontend/.nuxt/dist/client/components/v-content-link.js 1.06 kB 0 B
./frontend/.nuxt/dist/client/components/v-content-link.modern.js 1.06 kB 0 B
./frontend/.nuxt/dist/client/components/v-content-page.js 530 B 0 B
./frontend/.nuxt/dist/client/components/v-content-page.modern.js 535 B 0 B
./frontend/.nuxt/dist/client/components/v-content-report-button.js 493 B 0 B
./frontend/.nuxt/dist/client/components/v-content-report-button.modern.js 497 B 0 B
./frontend/.nuxt/dist/client/components/v-content-report-form.js 3.35 kB 0 B
./frontend/.nuxt/dist/client/components/v-content-report-form.modern.js 3.22 kB 0 B
./frontend/.nuxt/dist/client/components/v-content-report-popover.js 3.81 kB 0 B
./frontend/.nuxt/dist/client/components/v-content-report-popover.modern.js 3.69 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-button.js 3.8 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-button.modern.js 3.81 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-license.js 1.34 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-license.modern.js 1.35 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-license/components/v-error-image/components/v-error-section/components/v-media-reu/6931f79d.js 12.5 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-license/components/v-error-image/components/v-error-section/components/v-media-reu/6931f79d.modern.js 12.5 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-license/components/v-license-tab-panel/components/v-media-reuse/pages/image/_id/index.js 3.8 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-license/components/v-license-tab-panel/components/v-media-reuse/pages/image/_id/index.modern.js 3.81 kB 0 B
./frontend/.nuxt/dist/client/components/v-dmca-notice.js 794 B 0 B
./frontend/.nuxt/dist/client/components/v-dmca-notice.modern.js 801 B 0 B
./frontend/.nuxt/dist/client/components/v-error-image.js 1.56 kB 0 B
./frontend/.nuxt/dist/client/components/v-error-image.modern.js 1.54 kB 0 B
./frontend/.nuxt/dist/client/components/v-error-section.js 4.3 kB 0 B
./frontend/.nuxt/dist/client/components/v-error-section.modern.js 3.67 kB 0 B
./frontend/.nuxt/dist/client/components/v-external-search-form.js 4.1 kB 0 B
./frontend/.nuxt/dist/client/components/v-external-search-form.modern.js 3.44 kB 0 B
./frontend/.nuxt/dist/client/components/v-external-source-list.js 2.63 kB 0 B
./frontend/.nuxt/dist/client/components/v-external-source-list.modern.js 1.99 kB 0 B
./frontend/.nuxt/dist/client/components/v-full-layout.js 3.73 kB 0 B
./frontend/.nuxt/dist/client/components/v-full-layout.modern.js 3.71 kB 0 B
./frontend/.nuxt/dist/client/components/v-get-media-button.js 622 B 0 B
./frontend/.nuxt/dist/client/components/v-get-media-button.modern.js 628 B 0 B
./frontend/.nuxt/dist/client/components/v-grid-skeleton.js 1.55 kB 0 B
./frontend/.nuxt/dist/client/components/v-grid-skeleton.modern.js 1.55 kB 0 B
./frontend/.nuxt/dist/client/components/v-hide-button.js 594 B 0 B
./frontend/.nuxt/dist/client/components/v-hide-button.modern.js 591 B 0 B
./frontend/.nuxt/dist/client/components/v-home-gallery.js 4.28 kB 0 B
./frontend/.nuxt/dist/client/components/v-home-gallery.modern.js 4.26 kB 0 B
./frontend/.nuxt/dist/client/components/v-homepage-content.js 1.8 kB 0 B
./frontend/.nuxt/dist/client/components/v-homepage-content.modern.js 1.78 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-cell.js 2.25 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-cell.modern.js 2.24 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-grid.js 4.58 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-grid.modern.js 4.45 kB 0 B
./frontend/.nuxt/dist/client/components/v-license-tab-panel.js 641 B 0 B
./frontend/.nuxt/dist/client/components/v-license-tab-panel.modern.js 650 B 0 B
./frontend/.nuxt/dist/client/components/v-load-more.js 1.22 kB 0 B
./frontend/.nuxt/dist/client/components/v-load-more.modern.js 1.11 kB 0 B
./frontend/.nuxt/dist/client/components/v-media-details.js 5.88 kB 0 B
./frontend/.nuxt/dist/client/components/v-media-details.modern.js 5.74 kB 0 B
./frontend/.nuxt/dist/client/components/v-media-info.js 2.53 kB 0 B
./frontend/.nuxt/dist/client/components/v-media-info.modern.js 2.51 kB 0 B
./frontend/.nuxt/dist/client/components/v-media-license.js 931 B 0 B
./frontend/.nuxt/dist/client/components/v-media-license.modern.js 940 B 0 B
./frontend/.nuxt/dist/client/components/v-media-reuse.js 2.02 kB 0 B
./frontend/.nuxt/dist/client/components/v-media-reuse.modern.js 2.03 kB 0 B
./frontend/.nuxt/dist/client/components/v-media-tag.js 416 B 0 B
./frontend/.nuxt/dist/client/components/v-media-tag.modern.js 420 B 0 B
./frontend/.nuxt/dist/client/components/v-media-tags.js 885 B 0 B
./frontend/.nuxt/dist/client/components/v-media-tags.modern.js 883 B 0 B
./frontend/.nuxt/dist/client/components/v-metadata-value.js 603 B 0 B
./frontend/.nuxt/dist/client/components/v-metadata-value.modern.js 609 B 0 B
./frontend/.nuxt/dist/client/components/v-metadata.js 1.32 kB 0 B
./frontend/.nuxt/dist/client/components/v-metadata.modern.js 1.32 kB 0 B
./frontend/.nuxt/dist/client/components/v-modal.js 982 B 0 B
./frontend/.nuxt/dist/client/components/v-modal.modern.js 971 B 0 B
./frontend/.nuxt/dist/client/components/v-no-results.js 2.67 kB 0 B
./frontend/.nuxt/dist/client/components/v-no-results.modern.js 2.03 kB 0 B
./frontend/.nuxt/dist/client/components/v-old-icon-button.js 853 B 0 B
./frontend/.nuxt/dist/client/components/v-old-icon-button.modern.js 846 B 0 B
./frontend/.nuxt/dist/client/components/v-radio.js 1.02 kB 0 B
./frontend/.nuxt/dist/client/components/v-radio.modern.js 1.02 kB 0 B
./frontend/.nuxt/dist/client/components/v-related-audio.js 825 B 0 B
./frontend/.nuxt/dist/client/components/v-related-audio.modern.js 744 B 0 B
./frontend/.nuxt/dist/client/components/v-related-images.js 4.91 kB 0 B
./frontend/.nuxt/dist/client/components/v-related-images.modern.js 4.75 kB 0 B
./frontend/.nuxt/dist/client/components/v-report-desc-form.js 997 B 0 B
./frontend/.nuxt/dist/client/components/v-report-desc-form.modern.js 1 kB 0 B
./frontend/.nuxt/dist/client/components/v-row-layout.js 2.05 kB 0 B
./frontend/.nuxt/dist/client/components/v-row-layout.modern.js 2.05 kB 0 B
./frontend/.nuxt/dist/client/components/v-safety-wall.js 1.45 kB 0 B
./frontend/.nuxt/dist/client/components/v-safety-wall.modern.js 1.46 kB 0 B
./frontend/.nuxt/dist/client/components/v-scroll-button.js 890 B 0 B
./frontend/.nuxt/dist/client/components/v-scroll-button.modern.js 892 B 0 B
./frontend/.nuxt/dist/client/components/v-scroller.js 595 B 0 B
./frontend/.nuxt/dist/client/components/v-scroller.modern.js 591 B 0 B
./frontend/.nuxt/dist/client/components/v-search-results-title.js 618 B 0 B
./frontend/.nuxt/dist/client/components/v-search-results-title.modern.js 621 B 0 B
./frontend/.nuxt/dist/client/components/v-single-result-controls.js 1.18 kB 0 B
./frontend/.nuxt/dist/client/components/v-single-result-controls.modern.js 1.18 kB 0 B
./frontend/.nuxt/dist/client/components/v-sketch-fab-viewer.js 1.02 kB 0 B
./frontend/.nuxt/dist/client/components/v-sketch-fab-viewer.modern.js 915 B 0 B
./frontend/.nuxt/dist/client/components/v-snackbar.js 1.06 kB 0 B
./frontend/.nuxt/dist/client/components/v-snackbar.modern.js 1.07 kB 0 B
./frontend/.nuxt/dist/client/components/v-source-creator-button.js 546 B 0 B
./frontend/.nuxt/dist/client/components/v-source-creator-button.modern.js 552 B 0 B
./frontend/.nuxt/dist/client/components/v-sources-table.js 15.2 kB 0 B
./frontend/.nuxt/dist/client/components/v-sources-table.modern.js 15.2 kB 0 B
./frontend/.nuxt/dist/client/components/v-tag.js 412 B 0 B
./frontend/.nuxt/dist/client/components/v-tag.modern.js 415 B 0 B
./frontend/.nuxt/dist/client/components/v-warning-suppressor.js 306 B 0 B
./frontend/.nuxt/dist/client/components/v-warning-suppressor.modern.js 311 B 0 B
./frontend/.nuxt/dist/client/pages/about.js 1.42 kB 0 B
./frontend/.nuxt/dist/client/pages/about.modern.js 1.42 kB 0 B
./frontend/.nuxt/dist/client/pages/audio/_id/index.js 29.4 kB 0 B
./frontend/.nuxt/dist/client/pages/audio/_id/index.modern.js 28.5 kB 0 B
./frontend/.nuxt/dist/client/pages/audio/source/_.js 726 B 0 B
./frontend/.nuxt/dist/client/pages/audio/source/_.modern.js 644 B 0 B
./frontend/.nuxt/dist/client/pages/audio/tag/_tag.js 561 B 0 B
./frontend/.nuxt/dist/client/pages/audio/tag/_tag.modern.js 486 B 0 B
./frontend/.nuxt/dist/client/pages/feedback.js 1.36 kB 0 B
./frontend/.nuxt/dist/client/pages/feedback.modern.js 1.36 kB 0 B
./frontend/.nuxt/dist/client/pages/image/_id/index.js 16.9 kB 0 B
./frontend/.nuxt/dist/client/pages/image/_id/index.modern.js 15.6 kB 0 B
./frontend/.nuxt/dist/client/pages/image/_id/report.js 4.04 kB 0 B
./frontend/.nuxt/dist/client/pages/image/_id/report.modern.js 3.82 kB 0 B
./frontend/.nuxt/dist/client/pages/image/source/_.js 725 B 0 B
./frontend/.nuxt/dist/client/pages/image/source/_.modern.js 641 B 0 B
./frontend/.nuxt/dist/client/pages/image/tag/_tag.js 560 B 0 B
./frontend/.nuxt/dist/client/pages/image/tag/_tag.modern.js 484 B 0 B
./frontend/.nuxt/dist/client/pages/index.js 6.4 kB 0 B
./frontend/.nuxt/dist/client/pages/index.modern.js 6.34 kB 0 B
./frontend/.nuxt/dist/client/pages/preferences.js 1.46 kB 0 B
./frontend/.nuxt/dist/client/pages/preferences.modern.js 1.45 kB 0 B
./frontend/.nuxt/dist/client/pages/privacy.js 1.26 kB 0 B
./frontend/.nuxt/dist/client/pages/privacy.modern.js 1.26 kB 0 B
./frontend/.nuxt/dist/client/pages/search-help.js 1.08 kB 0 B
./frontend/.nuxt/dist/client/pages/search-help.modern.js 1.08 kB 0 B
./frontend/.nuxt/dist/client/pages/search.js 4.89 kB 0 B
./frontend/.nuxt/dist/client/pages/search.modern.js 7.26 kB 0 B
./frontend/.nuxt/dist/client/pages/search/audio.js 500 B 0 B
./frontend/.nuxt/dist/client/pages/search/audio.modern.js 502 B 0 B
./frontend/.nuxt/dist/client/pages/search/image.js 4.69 kB 0 B
./frontend/.nuxt/dist/client/pages/search/image.modern.js 4.57 kB 0 B
./frontend/.nuxt/dist/client/pages/search/index.js 317 B 0 B
./frontend/.nuxt/dist/client/pages/search/index.modern.js 321 B 0 B
./frontend/.nuxt/dist/client/pages/search/model-3d.js 243 B 0 B
./frontend/.nuxt/dist/client/pages/search/model-3d.modern.js 246 B 0 B
./frontend/.nuxt/dist/client/pages/search/video.js 240 B 0 B
./frontend/.nuxt/dist/client/pages/search/video.modern.js 244 B 0 B
./frontend/.nuxt/dist/client/pages/sensitive-content.js 1.52 kB 0 B
./frontend/.nuxt/dist/client/pages/sensitive-content.modern.js 1.53 kB 0 B
./frontend/.nuxt/dist/client/pages/sources.js 1.53 kB 0 B
./frontend/.nuxt/dist/client/pages/sources.modern.js 1.54 kB 0 B
./frontend/.nuxt/dist/client/runtime.js 2.9 kB 0 B
./frontend/.nuxt/dist/client/runtime.modern.js 2.9 kB 0 B
./frontend/.nuxt/dist/client/vendors/app.js 66.9 kB 0 B
./frontend/.nuxt/dist/client/vendors/app.modern.js 66.6 kB 0 B

compressed-size-action

Copy link

github-actions bot commented Dec 21, 2023

Full-stack documentation: https://docs.openverse.org/_preview/3567

Please note that GitHub pages takes a little time to deploy newly pushed code, if the links above don't work or you see old versions, wait 5 minutes and try again.

You can check the GitHub pages deployment action list to see the current status of the deployments.

Changed files 🔄:

View full list (23)

@sarayourfriend
Copy link
Collaborator Author

An alternative to using a published image is to run the vale linting step using just .vale/ci that builds the image and then runs it with the configuration we need. That would make it easier to test the CI configuration locally too, without needing to duplicate the CLI args between pre-commit and the justfile.

@sarayourfriend sarayourfriend force-pushed the fix/address-vale-errors branch from ab996cc to 80e5b21 Compare January 3, 2024 23:31
@sarayourfriend sarayourfriend marked this pull request as ready for review January 3, 2024 23:31
@sarayourfriend sarayourfriend requested review from a team as code owners January 3, 2024 23:31
Copy link
Member

@krysal krysal left a comment

Choose a reason for hiding this comment

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

This looks pretty cool! I haven't read everything, so for now, I left a few questions.

.github/filters.yml Outdated Show resolved Hide resolved
justfile Outdated Show resolved Hide resolved
@openverse-bot
Copy link
Collaborator

Based on the medium urgency of this PR, the following reviewers are being gently reminded to review this PR:

@stacimc
This reminder is being automatically generated due to the urgency configuration.

Excluding weekend1 days, this PR was ready for review 11 day(s) ago. PRs labelled with medium urgency are expected to be reviewed within 4 weekday(s)2.

@sarayourfriend, if this PR is not ready for a review, please draft it to prevent reviewers from getting further unnecessary pings.

Footnotes

  1. Specifically, Saturday and Sunday.

  2. For the purpose of these reminders we treat Monday - Friday as weekdays. Please note that the operation that generates these reminders runs at midnight UTC on Monday - Friday. This means that depending on your timezone, you may be pinged outside of the expected range.

Copy link
Collaborator

@stacimc stacimc left a comment

Choose a reason for hiding this comment

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

Very Exceptionally cool :) Documentation improvements all look good to me as well; this is a welcome change!

I agree with you re: project proposals and especially the changelogs.

One thing I noticed when testing is that Vale appears to ignore anything in code blocks using the backticks. In our documentation some of these are actual code blocks but others are notes/warnings that probably ought to be checked. For example if I add this in a doc file, it won't raise any warnings or errors:

```{warning}
This note is very likely to to cause Vale errors.
```

Not a blocker but perhaps something to investigate in a follow up? I looked briefly and was unable to determine if this is a bug or intentional behavior by Vale.

@@ -7,7 +7,7 @@
https://api.inaturalist.org/v1/docs/
But there is a full dump intended for sharing on S3.
https://github.com/inaturalist/inaturalist-open-data/tree/documentation/Metadata
Because these are very large normalized tables, as opposed to more document
Because these are exceptionally large normalized tables, as opposed to more document
Copy link
Collaborator

Choose a reason for hiding this comment

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

I initially left a comment confused why this was updated, because I was not able to reproduce any Vale errors by modifying any files outside of documentation locally (and didn't expect to be able to, either). I realized it's because this docstring is added to DAGs.md via generate-dag-docs, of course! Leaving the comment anyway in case anyone else has the same confusion 😅

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes, that is precisely why. Sorry, I should have left a note regarding this particular change.

Copy link
Member

@krysal krysal left a comment

Choose a reason for hiding this comment

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

Nice addition! The last thing I think is adding the .vale/ folder to the CODEOWNERS.
Thank you for this comprehensive setup.


# Run Vale configured for Openverse in Docker.
# Using Docker avoids the need for contributors to install the Vale binary.
#Configuration defaults to what is used for CI.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
#Configuration defaults to what is used for CI.
# Configuration defaults to what is used for CI.

@sarayourfriend
Copy link
Collaborator Author

sarayourfriend commented Jan 29, 2024

One thing I noticed when testing is that Vale appears to ignore anything in code blocks using the backticks. In our documentation some of these are actual code blocks but others are notes/warnings that probably ought to be checked. For example if I add this in a doc file, it won't raise any warnings or errors:

I think this is intentional, for the same reason that prettier ignores formatting in code blocks (#2348).

I think we can actually get Vale to stop ignoring those codeblocks by changing the default setting for SkippedScopes and removing pre: https://vale.sh/docs/topics/config/#skippedscopes

I'll try that and see if it creates any false positives with actual code blocks.

Edit: Actually we also need to change the "IgnoredScopes" setting. Need to remove pre from skipped scopes and code from ignored scopes.

This does result in false positives:

 documentation/api/guides/quickstart.md
 13:14  error  Remove 'very'.                  proselint.Very       
 26:8   error  Incorrect casing. Use           Openverse.TermCasing 
               'Openverse' instead of                               
               'openverse'.                                         
 35:8   error  Incorrect casing. Use           Openverse.TermCasing 
               'Openverse' instead of                               
               'openverse'.                                         


 documentation/catalog/guides/adding_a_new_provider.md
 86:1  error  'NOTE' left in text.  proselint.Annotations 


 documentation/catalog/guides/quickstart.md
 53:12  error  'venv' is repeated!  Vale.Repetition 


 documentation/ingestion_server/guides/quickstart.md
 23:8  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         
 32:8  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         


 documentation/general/quickstart.md
 39:8  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         
 48:8  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         


 documentation/general/general_setup.md
 90:5  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         


 documentation/frontend/guides/quickstart.md
 22:8  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         
 31:8  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         


 documentation/meta/documentation/quickstart.md
 22:8  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         
 31:8  error  Incorrect casing. Use           Openverse.TermCasing 
              'Openverse' instead of                               
              'openverse'.                                         


 documentation/meta/codespell.md
 47:42  error  'world!!!!!' is hyperbolic.  proselint.Hyperbole 
 61:42  error  'world!!!!!' is hyperbolic.  proselint.Hyperbole 

✖ 16 errors, 0 warnings and 0 suggestions in 144 files.

We can change TermCasing to ignore lines that start with $ or # or things that look like filepaths, that will fix most of the openverse ones (maybe all, I just haven't checked individually).

The "very" is a test I put in using your example, Staci. venv repetition is intentional, so it could be ignored using the ignore pragma (https://vale.sh/docs/topics/config/#markdown-amp-html). Same with the "NOTE" left in text.

I'll make those changes and see if I can get it working without false positives, without being tedious.

@sarayourfriend sarayourfriend force-pushed the fix/address-vale-errors branch from 143aa7b to db878f7 Compare January 29, 2024 05:18
@sarayourfriend sarayourfriend requested a review from a team as a code owner January 29, 2024 05:18
@sarayourfriend
Copy link
Collaborator Author

Okay, I've updated the PR with the following:

  1. Check Markdown files outside of documentation. As part of this I cleaned up the glob configuration in .vale/justfile to make it slightly easier to read and maintain (though not by much, due to limitations in the glob syntax and just/scripting while avoiding too much complexity)
  2. Check MDX files as Markdown
  3. Check admonitions
  4. Fix a lot of false positives by updating Openverse.TermCasing to ignore path-like phrases

@sarayourfriend sarayourfriend force-pushed the fix/address-vale-errors branch from db878f7 to 3190d7b Compare January 29, 2024 05:28
@sarayourfriend
Copy link
Collaborator Author

@obulat @dhruvkb I think this PR needs a review from one of y'all to be able to get merged? I can't understand why else the existing 2 approvals wouldn't be sufficient.

Copy link
Member

@dhruvkb dhruvkb left a comment

Choose a reason for hiding this comment

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

I think that's because "frontend" owns at least one of the modified files and Staci isn't a member of that group.

@sarayourfriend sarayourfriend merged commit e12fd14 into main Jan 29, 2024
44 checks passed
@sarayourfriend sarayourfriend deleted the fix/address-vale-errors branch January 29, 2024 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💻 aspect: code Concerns the software code in the repository 🧰 goal: internal improvement Improvement that benefits maintainers, not users 🟨 priority: medium Not blocking but should be addressed soon 🧱 stack: documentation Related to Sphinx documentation 🧱 stack: mgmt Related to repo management and automations
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Integrate Vale for linting docs according to editorial style guide
5 participants