diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 466df71..37fcefa 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0" + ".": "1.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..5bd6669 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,81 @@ +# Changelog + +All notable changes to `devto-mirror` are documented here so Future You doesn’t +have to reverse-engineer intent from commit archaeology and caffeine stains. + +> +[!TIP] +> If you’re trying to run this locally and something feels “mysteriously +> CI-shaped,” skim [docs/DEV_GUIDE.md](./docs/DEV_GUIDE.md) first. It’s the fastest path to fewer +> surprises and fewer opinions about your environment. + +--- + +## [1.0.0](https://github.com/ChecKMarKDevTools/devto-mirror/compare/v0.1.0...v1.0.0) (2026-02-01) 🚀 + +> _We made it to 1.0.0. Nobody panic. The site still renders._ + +This release is the “boring-but-correct” milestone: reliability upgrades, workflow hardening, and a long list of paper cuts that were quietly sabotaging repeatable runs. + +### Highlights + +- **CI got tougher and less dramatic.** Timeouts, defensive checks, uv migration, and better artifact handling mean fewer surprise failures and fewer “works on my machine” fairy tales. +- **The mirror stopped eating itself.** Slug extraction, dedupe behavior, and incremental state handling were tightened so previous posts don’t vanish or double-post when nobody is looking. +- **Security posture improved without cosplay.** Request timeouts, sanitization tweaks, and dependency bumps landed alongside practical automation. + +
+The Boring Details + +### Features ✨ + +- Add comments.txt for meaningful list ([92fcf5a](https://github.com/ChecKMarKDevTools/devto-mirror/commit/92fcf5a2a15365082220beec2d48e8ba29733601)) +- add llms.txt policy and enhance CI reliability ([#22](https://github.com/ChecKMarKDevTools/devto-mirror/issues/22)) ([51f1354](https://github.com/ChecKMarKDevTools/devto-mirror/commit/51f135480d4af6a7ea0ee04701bd0d10cf9144bf)) +- add spec kit docs ([#16](https://github.com/ChecKMarKDevTools/devto-mirror/issues/16)) ([409e7ac](https://github.com/ChecKMarKDevTools/devto-mirror/commit/409e7acd37b58ac45d1c50d188403bbf26a08c62)) +- Adding files generated by ChatGPT for mirror ([ededef9](https://github.com/ChecKMarKDevTools/devto-mirror/commit/ededef9ba972abfae8c933de518145e414799c23)) +- **ci:** add Algolia site verification support ([4b9643e](https://github.com/ChecKMarKDevTools/devto-mirror/commit/4b9643ebf7e7c9eb926148de2bc195486845052c)) +- **ci:** harden workflows with timeout guards and defensive checks ([200451d](https://github.com/ChecKMarKDevTools/devto-mirror/commit/200451db0cbd3647abadc397e731bcdc6bd8824f)) +- **ci:** migrate to uv, add pre-commit prechecks, fix author extraction ([#26](https://github.com/ChecKMarKDevTools/devto-mirror/issues/26)) ([08a46e8](https://github.com/ChecKMarKDevTools/devto-mirror/commit/08a46e841df7da00ac87cdc5cf42f62582773018)) +- **crawler:** Implement robots.txt enforcement testing and restructure docs ([#18](https://github.com/ChecKMarKDevTools/devto-mirror/issues/18)) ([2011320](https://github.com/ChecKMarKDevTools/devto-mirror/commit/20113200981dd80bd705eb3be6d92f9b5e228dd4)) +- Optimization for structured AI ([#21](https://github.com/ChecKMarKDevTools/devto-mirror/issues/21)) ([f86fe31](https://github.com/ChecKMarKDevTools/devto-mirror/commit/f86fe31639b2e9848f56c1d58260cb11ad6cc4e3)) +- update cicd workflows ([#29](https://github.com/ChecKMarKDevTools/devto-mirror/issues/29)) ([3aa908b](https://github.com/ChecKMarKDevTools/devto-mirror/commit/3aa908b7d8530a252ba1154d43314830fabea75f)) +- Update parser to prevent previous posts from getting deleted ([#1](https://github.com/ChecKMarKDevTools/devto-mirror/issues/1)) ([23c63ce](https://github.com/ChecKMarKDevTools/devto-mirror/commit/23c63ce6107076f20ad37e959249d743a0e9a8fd)) +- upgrade python, security, ci flows ([#14](https://github.com/ChecKMarKDevTools/devto-mirror/issues/14)) ([64b32d6](https://github.com/ChecKMarKDevTools/devto-mirror/commit/64b32d68283bf74efac133ae98d2e6270f0558f9)) + +### Bug Fixes 🧯 + +- Add missing crawler test file ([#19](https://github.com/ChecKMarKDevTools/devto-mirror/issues/19)) ([e949ed8](https://github.com/ChecKMarKDevTools/devto-mirror/commit/e949ed8ab9d4d91a33fbf34ac953d9a1e2500118)) +- **cicd:** Add comments.txt to artifacts and handle in scripts ([22bcf3b](https://github.com/ChecKMarKDevTools/devto-mirror/commit/22bcf3bceaaf787d07be0316e9e1c13eee898e3b)) +- **cicd:** resolve `UnboundLocalError` in fetch_all_articles_from_api ([bf33810](https://github.com/ChecKMarKDevTools/devto-mirror/commit/bf338104d76c25c15d92bb9caba30635f9065717)) +- **ci:** restore incremental state to prevent site overwrites ([675a61a](https://github.com/ChecKMarKDevTools/devto-mirror/commit/675a61accfaea64d3667ff2375520661b067c57f)) +- **ci:** run renderer from gh-pages checkout root to preserve paths ([582b696](https://github.com/ChecKMarKDevTools/devto-mirror/commit/582b6965d02dd245f122f96d8947b928363efe5d)) +- correct slug extraction to include full Dev.to post IDs ([957107e](https://github.com/ChecKMarKDevTools/devto-mirror/commit/957107e50d8f5841fc462ac3854e694a4f0c6e77)) +- **dedupe:** unify dedupe logic and fix double-post issue ([26b5987](https://github.com/ChecKMarKDevTools/devto-mirror/commit/26b5987384d15c02443b48eef7dab54599b33271)) +- fetch individual articles to get proper description and body_html ([cd3ef80](https://github.com/ChecKMarKDevTools/devto-mirror/commit/cd3ef80ff1ad4a05b18b1b2cea1f470e47f7ef1e)) +- force full regeneration in CI to resolve missing files issue ([1039819](https://github.com/ChecKMarKDevTools/devto-mirror/commit/103981957ee720747352550669ea29e7d4964a14)) +- handle dict objects in save_posts_data to prevent AttributeError ([53fdffb](https://github.com/ChecKMarKDevTools/devto-mirror/commit/53fdffbc4a5c3f4abe7c66ee0a5b6ef120a953d1)) +- **html-sanitization:** preserve embed wrappers and strip script/style ([431b627](https://github.com/ChecKMarKDevTools/devto-mirror/commit/431b627b58a42f0d4ee175bbe4a80a50cd622e8c)) +- improve Lighthouse scores and CI workflow debugging ([afd8b71](https://github.com/ChecKMarKDevTools/devto-mirror/commit/afd8b711af05ee94209dd7021f59171ce0b42a1b)) +- **pages:** add .nojekyll to disable jekyll processing ([528a173](https://github.com/ChecKMarKDevTools/devto-mirror/commit/528a1733d7292fa6c26f4867a43764603fef026e)) +- **posts:** heavy caching on devto workaround ([a7ab102](https://github.com/ChecKMarKDevTools/devto-mirror/commit/a7ab1029476e96d7cab99a28e820fe34e6ffbcda)) +- regenerate all site files with corrected slugs ([f00a24e](https://github.com/ChecKMarKDevTools/devto-mirror/commit/f00a24e2ddc63287461fa20952bfd1ce66530d47)) +- remove 160-character truncation limit for descriptions ([0d9f83c](https://github.com/ChecKMarKDevTools/devto-mirror/commit/0d9f83c30235f4b9a1d0eaf5930ed05dea1f8c18)) +- restore descriptions to index template and ensure comments section appears ([18a30ce](https://github.com/ChecKMarKDevTools/devto-mirror/commit/18a30ce549a3cb7b799205b28d66f4cc088496c6)) +- run root config deployment every time ([21e135f](https://github.com/ChecKMarKDevTools/devto-mirror/commit/21e135f78159db7365c87ad9f5f810be61629356)) +- **scripts:** Fix mixing implicit and explicit returns ([#47](https://github.com/ChecKMarKDevTools/devto-mirror/issues/47)) ([8ebc66c](https://github.com/ChecKMarKDevTools/devto-mirror/commit/8ebc66c435dc5991be1f63f59e21cb62019fdd1d)) +- **site_generation:** use shared URL util for site links ([#52](https://github.com/ChecKMarKDevTools/devto-mirror/issues/52)) ([49c2681](https://github.com/ChecKMarKDevTools/devto-mirror/commit/49c268117dec42226d445749ee153441ed1a8969)) +- updates to config and GHA ([#43](https://github.com/ChecKMarKDevTools/devto-mirror/issues/43)) ([39c55a4](https://github.com/ChecKMarKDevTools/devto-mirror/commit/39c55a46ae3daec2745a739cd2bbc78f700cd407)) + +### Dependencies 📦 + +- **deps:** bump black from 25.11.0 to 25.12.0 ([#40](https://github.com/ChecKMarKDevTools/devto-mirror/issues/40)) ([d402cc8](https://github.com/ChecKMarKDevTools/devto-mirror/commit/d402cc8531b0e90e6c66897468ed6c02205713b9)) +- **deps:** bump urllib3 from 2.6.0 to 2.6.2 ([#42](https://github.com/ChecKMarKDevTools/devto-mirror/issues/42)) ([6ae8c74](https://github.com/ChecKMarKDevTools/devto-mirror/commit/6ae8c74e0c74008ef5e44e2734070c2720eaf260)) + +### Documentation 📝 + +- add the pic I worked forever to learn GIMP again ([2008ec6](https://github.com/ChecKMarKDevTools/devto-mirror/commit/2008ec60362b84606b421bd134359af38deeb406)) +- **ci:** pass env to render_index_sitemap ([888d7c9](https://github.com/ChecKMarKDevTools/devto-mirror/commit/888d7c9305933dcef0253d470ec8338de08fb722)) +- document .nojekyll artifact and clarify setup ([4002100](https://github.com/ChecKMarKDevTools/devto-mirror/commit/4002100276cd15526ca382b15f1c5792b52c0315)) +- update README and workflow schedule ([84efec5](https://github.com/ChecKMarKDevTools/devto-mirror/commit/84efec5dd3f290a1c561d5aaf4dcca4652b2c273)) +- update README to note slug fix is complete ([c7c6774](https://github.com/ChecKMarKDevTools/devto-mirror/commit/c7c6774359b704a57524629a48945b00666d244c)) + +
diff --git a/pyproject.toml b/pyproject.toml index ad8b786..febf779 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "devto-mirror" -version = "0.1.0" +version = "1.0.0" description = "Static HTML mirror of Dev.to blog posts for better search engine discoverability" authors = [ {name = "Ashley Childress", email = "6563688+anchildress1@users.noreply.github.com"} diff --git a/src/devto_mirror/__init__.py b/src/devto_mirror/__init__.py index 66249bf..98f1a20 100644 --- a/src/devto_mirror/__init__.py +++ b/src/devto_mirror/__init__.py @@ -6,7 +6,7 @@ following standard Python packaging conventions. """ -__version__ = "0.1.0" +__version__ = "1.0.0" __author__ = "Ashley Childress" # Make ai_optimization available at package level diff --git a/uv.lock b/uv.lock index 4d58ffc..6cbfe49 100644 --- a/uv.lock +++ b/uv.lock @@ -301,7 +301,7 @@ wheels = [ [[package]] name = "devto-mirror" -version = "0.1.0" +version = "1.0.0" source = { editable = "." } dependencies = [ { name = "bleach" },