Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.1.0"
".": "1.0.0"
}
81 changes: 81 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.

<details>
<summary>The Boring Details</summary>

### 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))

</details>
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -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"}
Expand Down
2 changes: 1 addition & 1 deletion src/devto_mirror/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading