Commit Graph

4650 Commits

Author SHA1 Message Date
Claude
22f2ddaf08 Keep only the readable Drizzle schema
Remove all comparison files and other ORM schemas.
Keep only the nicely formatted Drizzle schema with:
- Dot-first indented chains
- Helper functions for common patterns
- Logical grouping with comments
- Spread patterns for field groups

File renamed from schema.drizzle.readable.ts to schema.drizzle.ts
2025-11-12 03:14:43 +00:00
Claude
f196b2c873 Add comprehensive Drizzle formatting comparison
Show exactly why dot-first indented chains are superior:

Before (dense):
  field: type('name').modifier1().modifier2().modifier3(),

After (readable):
  field: type('name')
    .modifier1()
    .modifier2()
    .modifier3(),

Key benefits:
- Dots align vertically - easy to scan
- Clean git diffs (one line = one change)
- 10% more lines but 233% more readable
- Perfect balance of power and maintainability

With helpers: Reduced from ~18 lines per table to ~8 lines!
2025-11-12 03:11:54 +00:00
Claude
ce7b49dbcb Add readable Drizzle schema formatting guide
Add improved Drizzle schema with better readability:

- Break chains vertically (one modifier per line)
- Group related fields with comments
- Extract reusable helpers (id_field, abid_field, etc.)
- Use spread for common field groups (health_fields, state_machine_fields)
- Separate indexes from field definitions

Result: Only 10% more lines (380 vs 345) but infinitely more readable.

Also includes comprehensive DRIZZLE_FORMATTING_GUIDE.md with:
- Before/after comparisons
- Best practices
- Helper patterns
- Prettier configuration
2025-11-12 03:10:23 +00:00
Claude
602f188c94 Add detailed migrations and TypeScript IDE comparison
Compare automatic migration generation and TypeScript IDE support
across all 4 ORMs:

Rankings:
- Best Migrations: Prisma > Drizzle > MikroORM > TypeORM
- Best TypeScript IDE Hints: Drizzle > Prisma > MikroORM > TypeORM

Key findings:
- Drizzle has best-in-class type inference with zero codegen
- Prisma has excellent types via codegen + smoothest migrations
- TypeORM has weakest type safety (strings not validated)
- MikroORM is solid middle ground

Recommendation: Drizzle for best types, Prisma for best overall DX
2025-11-04 02:12:44 +00:00
Claude
7fabf6586d Add TypeScript ORM schema comparison
Add feature-complete TypeScript ORM schemas for ArchiveBox models
in Prisma, Drizzle, TypeORM, and MikroORM. All schemas:

- Use snake_case field naming (matching Django conventions)
- Use UUIDv7 for all primary keys
- Include all 8 core models: User, Tag, KVTag, Seed, CrawlSchedule,
  Crawl, Snapshot, ArchiveResult, and Outlink
- Implement all relationships, indexes, and constraints
- Are feature-complete and production-ready

Line counts:
- Prisma: 282 lines (most concise)
- Drizzle: 345 lines
- TypeORM: 634 lines
- MikroORM: 612 lines

The comparison shows Prisma is ~44% more concise than decorator-based
ORMs while Drizzle offers the best type inference and SQL control.
2025-11-04 02:05:32 +00:00
Nick Sweeting
c3024815f3 Add link to Proxmox installer (#1682) 2025-05-19 15:29:45 -07:00
Nelson Minar
f72f04768c Add link to Proxmox installer 2025-05-11 11:10:20 -07:00
Nick Sweeting
d93f32ab24 fix(export_browser_history): tilde doesn't expand in quotes (#1661)
<!-- IMPORTANT: Do not submit PRs with only formatting / PEP8 / line
length changes. -->

# Summary

Patch submitted by @pcrockett

# Related issues

- Fixes
https://github.com/ArchiveBox/ArchiveBox/issues/1657#issue-2856003985

# Changes these areas

- [x] Bugfixes
- [ ] Feature behavior
- [ ] Command line interface
- [ ] Configuration options
- [ ] Internal architecture
- [ ] Snapshot data layout on disk
2025-03-20 16:09:40 -07:00
Nick Sweeting
8b67186c93 make sure uv is using the right python binary 2025-03-20 16:04:58 -07:00
Nick Sweeting
26eb75e4e6 archivebox swag is now available! 2025-03-20 15:52:56 -07:00
Nick Sweeting
d9d67e9864 add swag link to funding links 2025-03-20 15:51:20 -07:00
Nick Sweeting
1ab4e06a15 remove dead competitor links 2025-03-19 19:22:35 -07:00
Philip Crockett
ba6a8c2da5 support XDG standard, search for chrome and chromium DBs 2025-02-18 21:38:52 +01:00
Philip Crockett
639aa7242b fix typo 2025-02-18 21:22:52 +01:00
Phil Crockett
9fbc2d3818 fix chrome browser history export on Linux 2025-02-18 21:08:56 +01:00
Phil Crockett
58bf8d07e1 feat(export_browser_history): add linux support for firefox 2025-02-16 10:24:37 +01:00
Phil Crockett
feded9e3d4 fix(export_browser_history): fix sqlite quote syntax error 2025-02-16 10:24:13 +01:00
Phil Crockett
2e1ac0409d feat(export_browser_history): fail script when errors occur 2025-02-16 08:34:41 +01:00
Phil Crockett
2ff3fc434e feat(export_browser_history): basic arg parsing error message 2025-02-16 08:31:21 +01:00
Phil Crockett
0043b59bc8 fix(export_browser_history): tilde doesn't expand in quotes 2025-02-16 08:22:17 +01:00
Nick Sweeting
a27a91bbaa Update README.md 2025-02-13 02:45:52 -05:00
Nick Sweeting
3ae30c43a9 Update README.md 2025-02-13 02:37:41 -05:00
Nick Sweeting
37c0ea7eba Kill the timer process if it doesn't properly terminate. (#1649) 2025-02-05 19:06:19 -05:00
Ben Muthalaly
71c02ca4eb Update archivebox/misc/logging_util.py
Co-authored-by: Nick Sweeting <git@sweeting.me>
2025-02-05 17:55:45 -06:00
Ben Muthalaly
9f4cf0a8e1 Kill the timer process if it doesn't properly terminate. 2025-02-03 02:47:33 -06:00
Nick Sweeting
12f109b1be Update docker-compose.yml minor tweaks 2025-01-18 04:20:21 -05:00
Nick Sweeting
6edcac6a40 Fix two small errors in abx-{readwise,spec-config} (#1635) 2025-01-17 17:17:36 -05:00
ckie
952bde6cfa spec-config: fix CONSTANTS import
I was getting:
ImportError: cannot import name 'CONSTANTS' from partially initialized module 'archivebox' (most likely due to a circular import)
(/nix/store/6fy0wgy7r3ld3k590kxgxrc0r1cca347-archivebox-0.8.6rc3/lib/python3.12/site-packages/archivebox/__init__.py)
2025-01-17 21:02:53 +02:00
ckie
58fc6d9cf8 readwise: fix SOURCES_DIR syntax
Fixes: attributeerror: 'list' object has no attribute 'SOURCES_DIR'
2025-01-17 21:02:27 +02:00
Nick Sweeting
aa55e0d02e Update 2-feature_request.yml 2025-01-08 19:20:50 -05:00
Nick Sweeting
e1c443aac4 Update 2-feature_request.yml 2025-01-08 19:19:04 -05:00
Nick Sweeting
d1c8acd3ff Update 1-bug_report.yml 2025-01-08 19:15:21 -05:00
Nick Sweeting
fd21728732 Update 1-bug_report.yml 2025-01-08 19:12:46 -05:00
Nick Sweeting
b93918f926 Update 1-bug_report.yml 2025-01-08 19:12:18 -05:00
Nick Sweeting
ba5380f60b Update 1-bug_report.yml 2025-01-08 19:11:23 -05:00
Nick Sweeting
7ba7ad6b3e Update 1-bug_report.yml 2025-01-08 19:10:47 -05:00
Nick Sweeting
91eb3472e3 Update 1-bug_report.yml 2025-01-08 19:09:12 -05:00
Nick Sweeting
b28f2e704c Update 1-bug_report.yml fix markdown formatting 2025-01-08 19:07:38 -05:00
Nick Sweeting
62a99c88d2 clarify filesystems selections in bug report github template 2025-01-08 19:05:41 -05:00
Nick Sweeting
765abc9d5a Update pip.yml 2025-01-08 18:53:13 -05:00
Nick Sweeting
83bb8a211a Remove outdated architecture diagram 2025-01-08 18:50:46 -05:00
Nick Sweeting
55a347c32e Update file_migrations.py 2025-01-02 23:58:59 -08:00
Nick Sweeting
a851ad4c87 Update models.py 2025-01-02 23:58:45 -08:00
Nick Sweeting
96c5d2f7de Update statemachines.py 2025-01-02 23:58:32 -08:00
Nick Sweeting
b74b0d23b4 Fix typo in timestamp scale factor (#1627) 2024-12-26 01:57:08 -05:00
1over137
3312a34b39 Fix typo in timestamp scale factor 2024-12-25 11:50:40 +00:00
Nick Sweeting
1fb5ecf13d change pip flow to use PAT 2024-12-18 18:55:29 -08:00
Nick Sweeting
46f4a90a2a install needed packages to run archivebox during pip build 2024-12-18 18:39:58 -08:00
Nick Sweeting
e862031981 use uv to build pip package in github actions instead of pdm 2024-12-18 18:38:25 -08:00
Nick Sweeting
b78e892bf8 update github actions to build docker image 2024-12-18 18:19:35 -08:00