diff --git a/.gitignore b/.gitignore index fdba633..7803749 100644 --- a/.gitignore +++ b/.gitignore @@ -3,13 +3,6 @@ vars.fish vars.sh -# GIT_HASH is rewritten by setup.py at install time via -# `git rev-parse --short HEAD`. Tracking it just produced churn: -# every feature commit was followed by a "bump GIT_HASH to X" commit -# whose value was always one commit behind HEAD (because the new -# bump commit itself shifted HEAD again). setup.py owns this file. -make_post_sell/GIT_HASH - *.egg *.egg-info *.pyc @@ -20,7 +13,6 @@ coverage.xml build/ dist/ data/ -data*/ src/ .tox/ nosetests.xml @@ -38,10 +30,8 @@ test *.dkim.key caddy -.claude monero-wallet-cli.log monero-wallet-rpc.log monero-wallet-rpc.log* - diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 99546c7..9e13111 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,10 +24,7 @@ build: - cp -pr env/static static - tar -zcf static.tar.gz static # Clean up the directory outside of the gitlab-runner filesystem. - # rm -rf can race with background processes on build runners — verify removal. - - rm -rf /opt/make_post_sell/env; for i in 1 2 3; do [ ! -d /opt/make_post_sell/env ] && break; sleep 2; rm -rf /opt/make_post_sell/env; done; [ ! -d /opt/make_post_sell/env ] - # Ensure bin/python symlink exists (Python 3.12 venv may only create python3). - - test -f env/bin/python || ln -sf python3 env/bin/python + - rm -rf /opt/make_post_sell/env # Clone the virtualenv with virtualenv-clone into the desired location. - virtualenv-clone -vvv $PWD/env /opt/make_post_sell/env # Create a tarball of the virtualenv. @@ -65,11 +62,6 @@ pypi-twine: - python3 -m venv twine_env - source twine_env/bin/activate - pip install --upgrade pip - # Pin twine <6 — newer twine auto-detects GitLab CI and refuses to - # fall back to ~/.pypirc on the runner, requiring PYPI_ID_TOKEN - # (Trusted Publishing OIDC). Until we migrate to Trusted Publishing, - # stick with the classic ~/.pypirc auth on the build runner. - - pip install "twine<6" build + - pip install twine build - python3 -m build - - twine check dist/* - - twine upload --non-interactive dist/* + - twine upload dist/* diff --git a/CHANGELOG.rst b/CHANGELOG.rst deleted file mode 100644 index ee3919e..0000000 --- a/CHANGELOG.rst +++ /dev/null @@ -1,154 +0,0 @@ -Changelog -========= - -All notable changes to this project will be documented in this file. - -2026-02-09 ----------- - -DJ Crossfade -~~~~~~~~~~~~ - -* 7-second audio + visual crossfade starts before current video ends -* Volume ramps down on outgoing, ramps up on incoming simultaneously -* Opacity crossfade dissolves between videos during transition -* Countdown overlay shows during crossfade with Play Now / Cancel controls -* User-initiated transitions (click related item, queue) also get visual crossfade -* Falls back to standard countdown when preloaded data isn't ready or media types differ - -Footer & Links -~~~~~~~~~~~~~~ - -* Fixed apex domain link to use ``www.makepostsell.com`` in shop footer -* Added Source Code (GitLab) and PyPI links to shop footer - -2026-02-08 ----------- - -Watch Mode v2 -~~~~~~~~~~~~~ - -* Continuous playback with crossfade transitions between media -* Discovery ring: deterministic content traversal precomputed per shop -* Up Next sidebar with compact rows, numbered index, and queue management -* Countdown overlay (7s) as frosted-glass bottom bar between items -* Queue system: add/remove items, reorder playback -* Autoplay toggle switch inline with Up Next heading -* Two-phase preload: fast JSON fetch, then buffer media 30s before end -* Recently-played tracking: filter items from Up Next for 4 hours -* Support for video, audio, and static content (PDFs, images) with auto-advance -* Sticky video on desktop scroll (offset below ribbon) -* ``watch.js`` — new standalone JS module for all watch mode logic - -Pop-out Media Player -~~~~~~~~~~~~~~~~~~~~ - -* Draggable pop-out window with prev/next navigation -* Keyboard shortcuts and responsive controls -* Auto-advance for images/PDFs (60s timer, reset on scroll) -* ``player.js`` — new standalone JS module -* ``/random`` and ``/tv`` endpoints for media playback - -Lazy Cart Creation -~~~~~~~~~~~~~~~~~~ - -* Anonymous session carts are now in-memory until a product is added -* Prevents bots and crawlers from creating empty cart rows in the database -* UUID stays stable across requests via session cookie -* Transient cart guard in authentication merge flow - -AJAX Comments -~~~~~~~~~~~~~ - -* Comment form submits via fetch when JS is available -* Preserves media playback — no page reload interrupts -* Falls back to normal POST + redirect without JS -* ``comments.js`` — new standalone JS module - -Email Subscriptions -~~~~~~~~~~~~~~~~~~~ - -* Email digest subscriptions with configurable frequency -* @mentions in comments notify mentioned users -* RSS and Atom feed autodiscovery in ``
`` -* Subscribe link in shop nav bar - -Related Content -~~~~~~~~~~~~~~~ - -* Jaccard similarity for related content ranking -* Related content thumbnails in sidebar - -Feeds & SEO -~~~~~~~~~~~~ - -* Sitemap generation (``/sitemap.xml``) -* RSS (``/rss.xml``) and Atom (``/atom.xml``) feeds -* Google site verification meta tag support -* Feeds served as ``application/xml`` for browser rendering -* Feed links open in new window - -Adyen Integration -~~~~~~~~~~~~~~~~~ - -* Added Adyen as a payment processor -* Per-shop enable/disable toggle -* See ``docs/ADYEN.md`` for details - -Stripe Improvements -~~~~~~~~~~~~~~~~~~~ - -* Payment tracking and webhook resilience -* Per-shop Stripe enable/disable - -UI & Layout -~~~~~~~~~~~ - -* Sticky ribbon + logo/nav on desktop scroll -* Footer pushed to bottom of viewport on short pages -* Product media uses viewport-relative sizing (``max-height: 42vh``) -* Reduced heading font sizes for tighter layout -* Product/content dates toggle (``show_dates`` shop setting) -* Inline video playback on thumbnail click (replaced pop-up) - -Infrastructure -~~~~~~~~~~~~~~ - -* ``/version`` endpoint with baked git hash for deploy verification -* ``GIT_HASH`` tracked in repo, baked at install time -* Removed jQuery — all vanilla JavaScript -* Replaced JS toggles with pure CSS ``