-
Notifications
You must be signed in to change notification settings - Fork 1
Docs + Schema Fixes #129
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 + Schema Fixes #129
Conversation
- Add .readthedocs.yaml configuration - Update pyproject.toml to include mkdocs-mermaid2-plugin in docs extra - Remove old GitHub Pages deployment workflow (deploy-docs.yaml) - Remove gh-deploy target from Makefile
- Create modern, organized documentation structure - Add comprehensive module documentation pages - Update mkdocs.yml with organized navigation - Add getting started and contributing guides - Organize modules by category (Record-Based vs File-Based) - Add reference section for API documentation - Modernize index page with clear overview The old auto-generated attribute files remain in docs/ but are not included in navigation. They can be archived or removed in a future PR.
- Remove all 233+ outdated auto-generated attribute files - Generate fresh documentation from schemas using LinkML gen-doc - Integrate module READMEs into documentation structure - Update mkdocs.yml to use generated schema docs - Create script to generate docs from all modules - Fix navigation and links throughout This creates documentation similar to LinkML's own docs: https://linkml.io/linkml/intro/overview.html All schema documentation is now auto-generated and up-to-date.
- Remove complex navigation structure - Direct links to generated schema docs with all attributes - Clean up unnecessary files - Fix broken links
- Generate simple markdown with just attributes, classes, and enums - No complex generated structure - Clean, readable format - Simple script to regenerate
…um representation
…ection, show patterns
…red for all attributes
…tion - Add comprehensive tests for FILE_FORMAT and FILENAME pattern matching - Update CSV documentation with new patterns - Tests verify patterns match correctly across all modules: * WES (levels 1, 2, 3) * scRNA-seq (levels 1, 2, 3/4) * MultiplexMicroscopy (levels 2, 3, 4) * DigitalPathology * SpatialOmics (levels 1, 4)
- Use class_induced_slots() to properly resolve inherited slot requirements - Fixes AssertionError where FILENAME required flag wasn't being detected - All SpatialOmics tests now passing
Auto-generated Python classes from LinkML schema updates. **Auto-generated by GitHub Actions workflow** [skip ci]
|
✅ Python classes auto-updated! modules/Clinical/src/htan_clinical/datamodel/clinical.py |
Auto-generated Python classes from LinkML schema updates. **Auto-generated by GitHub Actions workflow** [skip ci]
|
✅ Python classes auto-updated! modules/Clinical/src/htan_clinical/datamodel/clinical.py |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR migrates documentation from MkDocs to Sphinx, adds CSV export functionality, fixes schema inheritance issues, and removes unused files. However, the changes include generated MkDocs HTML build artifacts in the site/ directory that should not be committed to the repository.
Changes:
- Documentation migration to Sphinx with Read the Docs configuration
- CSV export functionality for all modules
- Schema fixes for CoreFile and FileFormat enum inheritance
Reviewed changes
Copilot reviewed 73 out of 289 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| site/*.html | Generated MkDocs HTML files (build artifacts) |
| site/sitemap.xml | Generated sitemap file |
| site/assets/* | Generated CSS, JavaScript, and other static assets |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <!doctype html> | ||
| <html lang="en" class="no-js"> |
Copilot
AI
Jan 15, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The entire site/ directory contains generated MkDocs build artifacts that should not be committed to version control. These files are build outputs and should be excluded via .gitignore. According to the PR description, the migration is to Sphinx (not MkDocs), yet these are MkDocs-generated files. These should be removed from the PR, and the build output directory should be added to .gitignore to prevent future commits of generated files.
Auto-generated Python classes from LinkML schema updates. **Auto-generated by GitHub Actions workflow** [skip ci]
|
✅ Python classes auto-updated! modules/Clinical/src/htan_clinical/datamodel/clinical.py |
Auto-generated Python classes from LinkML schema updates. **Auto-generated by GitHub Actions workflow** [skip ci]
|
✅ Python classes auto-updated! modules/Clinical/src/htan_clinical/datamodel/clinical.py |
Auto-generated Python classes from LinkML schema updates. **Auto-generated by GitHub Actions workflow** [skip ci]
|
✅ Python classes auto-updated! modules/Clinical/src/htan_clinical/datamodel/clinical.py |
adamjtaylor
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can merge to get deployed but this setup seems quite cumbersome. Lets dedicate time after release 8 to see how we can refine it.
| "SpatialOmics": "modules/SpatialOmics/domains/spatial.yaml", | ||
| } | ||
|
|
||
| def resolve_inheritance_chain(class_def, all_classes, base_dir, visited=None): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function is duplicated accross generate_csv_docs and generate_table docs. Same goes for get_conditional_requirements, MODULES and parent schema loading logic. Could you pull into a common module that is imported?
| from linkml_runtime.linkml_model.meta import SchemaDefinition | ||
| from linkml_runtime.loaders import yaml_loader | ||
|
|
||
| MODULES = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are hardcoded and add another step reuuired to change when new modules are added. Its unclear where each of these steps are tracked. Can we automate from the base LinkML schema?
| def merge_readme_with_doc(doc_path: Path, readme_path: Path): | ||
| """Skip README merging - just use the doc as-is (user wants just tables).""" | ||
| # Don't merge READMEs anymore - user wants just the tables | ||
| return True |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does nothing it just returns true. Can we remove?
Documentation Improvements and Schema Fixes
Overview
This PR migrates documentation from MkDocs to Sphinx, adds CSV export functionality, fixes schema inheritance issues, and cleans up unused files.
Major Changes
📚 Documentation Migration (MkDocs → Sphinx)
conf.py,.readthedocs.yaml)📊 CSV Export Functionality
docs/csv/for download🔧 Schema Fixes
CoreFileAttributesinmodules/CoreFile/domains/core.yaml🧹 Code Cleanup
docs/identifiers.mddocs/corefile.mddocs/imaging.mddocs/sequencing.md.cruft.jsonand related Makefile targets)🐛 Bug Fixes
FILE_FORMATwith enum type) over parent attributes (e.g.,FILE_FORMATwith string type)Technical Details
Documentation Generation Scripts
scripts/generate_table_docs.py: Generates markdown documentation with inheritance resolutionscripts/generate_csv_docs.py: Generates CSV exports for all modules and levelsDocumentation Structure
docs/wes/level-1.md) show all inherited attributes organized by source (Core File, Base Sequencing/Imaging, Module-Specific)Files Changed
conf.py,.readthedocs.yaml,index.rst,_static/custom.cssmodules/CoreFile/domains/core.yamlscripts/generate_table_docs.py,scripts/generate_csv_docs.pydocs/*.mdfiles anddocs/csv/*.csvfilesMakefile(removed cruft targets)Testing
Related Issues
Fixes #109