Skip to content

refactor: rename the package to esign_webforms - #18

Merged
batonac merged 2 commits into
developfrom
refactor/rename-esign_webforms
Oct 19, 2026
Merged

batonac merged 2 commits into
developfrom
refactor/rename-esign_webforms

Conversation

@batonac

@batonac batonac commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Summary

Renames the Frappe app package from esign to esign_webforms and sets the app title to Webform eSignatures.

  • The Python package moves from esign/ to esign_webforms/: app_name, [project].name, package.json name, the ty source root and every dotted path, import, /api/method/ URL and frontend frappe.call method now use the new name.
  • The bundles follow the package: esign_webforms.desk.bundle.js, esign_webforms.control.bundle.{js,css}, esign_webforms.web.bundle.{js,scss}. The signing page template is now esign_webforms/templates/esign_webforms.html.
  • The tool configs (tsconfig, oxlint, oxfmt, stylelint, editorconfig, vite) point at esign_webforms/. The types augment file is now types/esign_webforms.augment.d.ts.
  • The managed files are re-rendered by frappe-nix sync: the flake (description, dev site esign-webforms.localhost), the CI callers' app: input, pre-commit, release-please's package-name (esign-webforms) and the tools project. nix/uv.lock and tools/uv.lock are relocked; only the project names change.
  • README and docs: new title, and bench get-app Avunu/esign_webforms / bench install-app esign_webforms.
  • hooks.py has an override_whitelisted_methods shim between # frappe-nix:rename-shim-begin esign and # frappe-nix:rename-shim-end. It maps the 8 old esign.esign.* whitelisted paths to the new ones, for cached bundles, webhooks and bookmarks. Keep it for at least one minor release. Static analysis whitelists esign.* so it accepts the shim's old keys.

Kept on purpose

  • Module name eSign and the module folder esign_webforms/esign/. Kept so that no DocType, custom field, property setter or other record moves. This is why the new dotted paths read esign_webforms.esign.….
  • Custom fieldnames (esign_enabled, esign_request, esign_update_field, …), the eSign Communication type and class names (EsignWebForm, EsignEmailTemplate). These are stored data or internal identifiers.
  • The esign-fonts.bundle.css Vite bundle and source file names such as esign_controls.ts, esign_desk.ts and esign_web.ts. These are asset or file names, not package references, and they resolve under /assets/esign_webforms/.
  • frappe.esign_context and the other JS globals and CSS classes. Renaming them could break custom scripts already stored on sites.
  • CHANGELOG.md history.

Deploy notes

Every site that has the app installed must run the site half of the rename before bench migrate. Otherwise migrate fails on an installed app it cannot import.

  1. Pause the scheduler and let the job queues drain. A job queued under an old dotted path fails once the code is gone.
  2. The bench must fetch the app under the new directory name (apps/esign_webforms, with sites/apps.txt listing esign_webforms).
  3. Per site:
    frappe-rename-app --site <site> esign=esign_webforms --dry-run --scan
    frappe-rename-app --site <site> esign=esign_webforms --yes
    bench --site <site> migrate
    Running --dry-run --scan against a restored copy of the production database first is recommended.
  4. On frappe-nix NixOS hosts, set services.frappe-nix.sites.<site>.renamedApps = { esign = "esign_webforms"; }; instead. The migrate unit then runs the site half before migrating, inside its snapshot.

The open release PR for the old esign component (#13) will be superseded: release-please will open a new one under esign-webforms once this merges. The manifest version is unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SvdEeMiewirZ3ifFoUix5F

batonac and others added 2 commits October 19, 2026 08:00
Move the Python package from esign/ to esign_webforms/ (app_name, pyproject
name, flit module) and give the app the title "Webform eSignatures". The
bundles follow the package: esign_webforms.{desk,control,web}.bundle.*, the
page template is esign_webforms/templates/esign_webforms.html, and every dotted
path, /api/method/ URL, import, test, tsconfig/oxlint/stylelint/vite path and
the types augment file use the new name. The managed files (flake, CI callers,
pre-commit, release-please package-name, tools project) are re-rendered by
frappe-nix sync, and nix/uv.lock and tools/uv.lock are relocked for the new
project names only.

Module names are kept (the module folder is still esign_webforms/esign and
modules.txt still lists "eSign"), so no DocType, custom field, property setter
or other record moves. hooks.py carries an override_whitelisted_methods shim
mapping the old esign.* whitelisted paths to the new ones for cached bundles,
webhooks and bookmarks; static analysis whitelists esign.* for those keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SvdEeMiewirZ3ifFoUix5F
frappe-types gen-registry now reads the customisations from esign_webforms, so the
header and the per-field source paths in types/doctypes.d.ts name the new package.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SvdEeMiewirZ3ifFoUix5F
@batonac
batonac merged commit a44a66d into develop Oct 19, 2026
12 of 13 checks passed
@batonac
batonac deleted the refactor/rename-esign_webforms branch October 19, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant