Skip to content

Rewrite Using AI#425

Draft
nabobalis wants to merge 26 commits intoOpenAstronomy:mainfrom
nabobalis:main
Draft

Rewrite Using AI#425
nabobalis wants to merge 26 commits intoOpenAstronomy:mainfrom
nabobalis:main

Conversation

@nabobalis
Copy link
Copy Markdown
Member

@nabobalis nabobalis commented Apr 8, 2026

Goals of this re-write are:

Non-ruby based build system.
Merging of the different systems that create the pages of the original site.
Removal of lots of css and javascript files.
Full liniting and unit tests with checks.
Full code documentation.

What has not changed:
AI was not used to update any of the website text. That was all done by me.

Notes to Reviewers
I am not really expecting a full review since this changes all files in the repo.
I guess the answer is do you like the preview?

TODO:

  • Giles?

nabobalis and others added 10 commits March 1, 2026 21:08
- Add JSDoc to src/lib/posts.js, src/lib/relative-paths.js, scripts/linkcheck.mjs
- Add inline comments to src/pages/[...slug].astro
- Extract GSoC data logic to src/lib/gsoc.ts (normalizeArray, slugify,
  formatMemberLink, joinableRows, isProjectFile, buildProject)
- Extract member card logic to src/lib/members.ts (buildRepositoryLinks,
  buildSocialLinks)
- Move getExcerpt from news.astro into src/lib/posts.js
- Split ProjectsLayout.astro (~300 lines) into focused components:
  ProjectCard, ProjectDetail, PeopleSection, Modal
- Set up Vitest with 82 tests covering posts.js, relative-paths.js,
  gsoc.ts, and members.ts
- Create .github/copilot-instructions.md documenting the project

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add CONTRIBUTING.md with rules for naming, function length, JSDoc
  coverage by file type, TypeScript vs JS guidance, and test structure
- Update .github/copilot-instructions.md: remove stale 'no test suite'
  note, add npm test commands, add Code Standards summary section
- Add component block comment to MemberCard.astro (was the only
  component missing one)
- Add inline comments to pad2 and ensureDate helpers in posts.js
- Add purpose comment to news.astro frontmatter

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Head.astro, Header.astro, and PostLayout.astro were missing the
component-level block comment required by CONTRIBUTING.md for
non-trivial components. All other components and layouts are either
already documented or are trivially self-evident (exempt).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… process

vaex_alternatives.md (2026/radis):
- Fix difficulty from 'medium' to 'medium to high'
- Add 'Begin implementation' milestone sub-section to 1st Evaluation
- Add 'Implement configurable size limits and LRU cache' to 2nd Evaluation
- Fix Final Evaluation heading capitalisation
- Clean up DATAFRAME_ENGINE description to match upstream wording
- Add backticks around vaex_vs_pandas_performance.py reference

CONTRIBUTING.md:
- Add 'Syncing content from upstream' section explaining why direct merges
  are impossible (Jekyll vs Astro divergence) and the manual porting workflow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove gsoc/display/resources/js/app.js (Jekyll file replaced by Astro GSoC components)
- Resolve vaex_alternatives.md conflict: keep our YAML indentation and content

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace single sequential 'quality' job with four parallel jobs:
  format, lint, typecheck, test
- 'build' runs in parallel too and uploads html/ as a reusable artifact
- Both linkcheck matrix legs download the shared artifact instead of
  rebuilding, saving one full Astro build per CI run
- ESLint now uses --max-warnings=0 so warnings are treated as errors
- Remove the autofix-then-diff-check pattern; CI now runs check
  commands directly (run npm run format && lint:fix && lint:md:fix
  locally before pushing)
- Update CONTRIBUTING.md CI section to reflect the new job table

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- astro.config.mjs: read ASTRO_BASE env var so the preview rebuild
  prefixes all asset/link URLs with the CircleCI artifact path
- .circleci/config.yml: add internal link check step; rebuild with
  ASTRO_BASE set to the artifact path so images/CSS resolve in the
  CircleCI artifact viewer; use npm ci instead of npm install
- linkcheck.skip.txt: skip output.circle-artifacts.com so the external
  linkcheck never tries to validate CircleCI artifact URLs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@nabobalis nabobalis changed the title Rwrite Using AI Rewrite Using AI Apr 9, 2026
nabobalis and others added 14 commits April 8, 2026 17:27
- Remove redundant '## Project Title' h2 body headings from 8 files
  (title already renders from frontmatter via ProjectDetail component)
- Restore '## Project Milestones' in astropy_core_improvements.md
  (structural section under '# Hardening...' h1; needed for valid h1→h2→h3 chain)
- Fix bare URLs in juliaastro spectra and stingray_porting files (MD034)
- Fix double blank lines (MD012, auto-fixed by lint:md:fix)
- Run prettier over modified files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Link checks (internal + external) already run in GitHub Actions.
CircleCI's only job is generating the preview artifact for gilesbot.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ing _astro/ paths

The previous approach used Astro's `base` option with ASTRO_BASE set to the
artifact path. This caused Astro.url.pathname to include the full 6-segment
base prefix, which made fromSiteRoot compute deeply-nested relative paths
(../../../../../../css/astro-overrides.css) that navigate past the artifact
root, breaking CSS and all navigation links.

The correct approach:
- Build without a base (fromSiteRoot relative paths work correctly in the
  artifact viewer since pages are at shallow depths within html/)
- Post-process the built HTML with scripts/circleci-preview.mjs to prefix
  the only absolute paths that remain: /_astro/ processed asset references
  (images, JS bundles emitted by Astro's pipeline)

This mirrors the upstream Jekyll approach of a post-build sed pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- contributor_guidelines: replace defunct try.github.com with
  docs.github.com, update sunpy AIA gallery link, update
  learn.astropy.org to homepage (tutorial URL restructured)
- suborg_guidelines: replace GitHub blob link (master branch,
  wrong path) with relative internal link to the template page
- linkcheck.skip.txt: add skip patterns for canonical tags
  (pre-deployment), bot-blocked domains (x.com, gnu.org), and
  all dead links from historical GSoC proposals (2015-2022) so
  archival content is preserved unchanged

External check: 810 links, 0 errors
Internal check: 1963 links, 0 errors

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix typo: 'requies' -> 'requires'
- Add missing lint:fix script to linting section
- Update CI description to mention all jobs (tests, build, etc.)
- Add LINKCHECK_CONCURRENCY env var to link check docs
- Correct 'two environmental variables' -> 'three environment variables'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
public/img/background and public/img/logo were unused placeholders
with no content and no code references.

gsoc/2022/astropy, gsoc/2025/sunpy, and gsoc/2026/stingray had no
project proposals — empty folders produce no pages via import.meta.glob.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resize from 1308x629 to standard 1200x630 (recommended by all major
social platforms) and convert from PNG to JPEG. No transparency is
needed for an OG image. 90% file size reduction.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Monthly schedule keeps actions/checkout, actions/setup-node,
actions/upload-artifact, and actions/download-artifact up to date.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- store_artifacts path was ~/repo/html; simplified to relative 'html'
- echo URL had stale Python/tox variables (.tmp/, TOXENV); replaced
  with correct CircleCI artifact URL pattern
- moved echo step after store_artifacts

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The CIRCLE_BUILD_URL-based artifact URL pattern produces a broken
gh.circle-artifacts.com link. The correct format is:
https://output.circle-artifacts.com/output/job/<WORKFLOW_JOB_ID>/artifacts/...

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

1 participant