Skip to content

Incorporate Project Development Tools#3

Open
danchild wants to merge 16 commits into
gophercloud:developmentfrom
shiftstack:chore/development-tools
Open

Incorporate Project Development Tools#3
danchild wants to merge 16 commits into
gophercloud:developmentfrom
shiftstack:chore/development-tools

Conversation

@danchild

@danchild danchild commented Jun 10, 2026

Copy link
Copy Markdown

Setup project development tools to ensure contistency

Before starting full development, it is necessary to choose
our project tools for formating, linting, typechecking and
set up a basic CI pipeline that enforces these rules so that
changes are made uniformly and consistently across developers
and PRs. The following stack is chosen to obtain these goals:

  • Prettier: a popular, industry-standard formatting tool for JS/TS
  • ESLint: a popular, industry-standard linting tool for JS/TS
  • Husky: a popular native git tool for simple local
    git hooks using project scripts.
  • Dependabot for weekly versioning bumps
  • GitHub Actions for basic CI pipeline (typecheck, lint, format, build)

See #2 for project and framework justification

@danchild danchild marked this pull request as ready for review June 10, 2026 18:10
@stephenfin

stephenfin commented Jun 25, 2026

Copy link
Copy Markdown

I'm not entirely sure if this is ready to merge as-is. fwict, we'd lose the index.html and CNAME files as-is, both of which I think we want to keep. Am I missing something?

Comment thread src/assets/houston.webp Outdated
Comment thread public/favicon.svg Outdated
Comment thread CNAME Outdated
@danchild danchild force-pushed the chore/development-tools branch 2 times, most recently from e7b898a to 23b60b0 Compare June 26, 2026 13:04
@danchild

Copy link
Copy Markdown
Author

I'm not entirely sure if this is ready to merge as-is. fwict, we'd lose the index.html and CNAME files as-is, both of which I think we want to keep. Am I missing something?

the index.html file isn't necessary, because the astro tooling produces it during the build step

@danchild danchild force-pushed the chore/development-tools branch from 7edb25a to e1ca73f Compare June 26, 2026 14:43
@danchild danchild requested a review from stephenfin June 26, 2026 15:23
@danchild danchild force-pushed the chore/development-tools branch from 8ac8166 to f73c14b Compare June 26, 2026 15:37
danchild and others added 16 commits June 26, 2026 11:39
Choices include:
- typescript
- starlight   (documentation framework)
- tailwindcss (styling)

Signed-off-by: Dan Childers <dchilder@redhat.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix single-quote style in dependabot.yml so prettier --check passes
- Add yml/yaml extensions to lint-staged pattern to match format:check scope

Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace deprecated tseslint.config() with defineConfig/globalIgnores
from the eslint/config subpath export.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
Signed-off-by: Dan Childers <dchilder@redhat.com>
- setup-node@v4 uses Node v24 by default, triggering warnings by
  declaring v22. Developer and CI tooling is now unified through
  .nvmrc, CI.yml, and package.json (Current Astro version requires
  a minimum of 22.12.0 which is documented in package.json;
  node 24 is the most recent LTS which, used in CI and local dev)

- Type checking in Astro assumes that artifacts in .astro/ are
  available; references in source ts files are connected to
  these artifacts so tsc throws errors without them.
  So, `astro sync` must be run before typechecking
  in CI which creates the artifacts in `.astro/`. For convenience,
  `astro sync` is added to the `typecheck` npm script so it works
  in dev environments and CI.
- `withastro/action` is the primary mechanism that builds dist/
   from source and deploys to GitHub pages

Signed-off-by: Dan Childers <dchilder@redhat.com>
@danchild danchild force-pushed the chore/development-tools branch from f73c14b to ceb0375 Compare June 26, 2026 15:40

@stephenfin stephenfin left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I'm not overly familiar with astro but this looks like a good start. We might want to enable zizmor (like we did for gophercloud proper in gophercloud/gophercloud#3766) but that can be done in a future PR

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.

2 participants