mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-19 22:56:21 +00:00
Apply fixes, refactors and test additions requested by reviewer on PR #105. Fixes: - database: warn and notify user on duplicate archive_id instead of silently debug-logging it (R05). - database: add missing '[' in "[DB Migration]" log prefix (R06). - xmpp/resource: NULL-out name/status after g_free to avoid double-free via roster_list.c cleanup path (R09, R23). - common: widen strtoi_range internal storage from int to long so that values in (INT_MAX, LONG_MAX] are rejected as out-of-range instead of being silently truncated on 64-bit platforms (R25). Refactors: - xmpp/message: extract _receive_omemo helper, removing three copies of the OMEMO receive block in groupchat / MUC-PM / chat handlers (R04). - omemo: flatten deeply nested device-list processing via guard-clause continues (R11). - tools/autocomplete: merge two nested ifs into a single && condition (R13). - ui/titlebar: extract _show_trust_indicator and inline _wprintw_withattr wrapper, collapsing three near-identical trust-indicator blocks (R22). - config/tlscerts: drop _checked_g_strdup wrapper; g_strdup is NULL-safe per glib documentation (R19). - ui/inputwin: use auto_gchar for spellcheck word instead of manual g_free (R20). - tools/editor: drop outdated "Deprecated synchronous" comment that no longer matches the callback-based implementation (R28). Tests: - tests/command/cmd_ac: rename segfaults_when_empty -> no_segfault_when_empty; expand cycling coverage to three files plus backward SHIFT-TAB traversal (R16, R17). - tests/common: add strtoi_range overflow/underflow and strtol-parsing consistency tests (R25). - tests/xmpp/jid: add test for '@' inside resourcepart per RFC 6122 section 2.4 (R26). Misc: - xmpp/omemo: change omemo_error_to_string return type from char* to gchar* for glib consistency (R01). - subprojects/libstrophe: point wrap-git at our fork at git.jabber.space/devs/libstrophe-gh (R24). - RELEASE_GUIDE: drop "Updating website" section referring to an upstream site that is not ours (R18).
47 lines
1.9 KiB
Markdown
47 lines
1.9 KiB
Markdown
# Release Guide
|
|
|
|
* Release libstrophe if required
|
|
|
|
* Set the correct release version in meson.build
|
|
|
|
* Run Unit tests: `meson setup build_test -Dtests=true && meson test -C build_test`
|
|
* Run Functional tests: same as above but needs stabber installed
|
|
|
|
* Check copyright dates in all files
|
|
|
|
* Create clean build folder:
|
|
`meson setup build_deb --buildtype=debug -Dnotifications=enabled -Dicons-and-clipboard=enabled -Dotr=enabled -Dpgp=enabled -Domemo=enabled -Dc-plugins=enabled -Dpython-plugins=enabled -Dxscreensaver=enabled -Domemo-qrcode=enabled -Dgdk-pixbuf=enabled`
|
|
|
|
* Build profanity: `meson compile -C build_deb`
|
|
|
|
* Generate HTML docs (the docgen argument only works when package status is development)
|
|
`./build_deb/profanity docgen`
|
|
|
|
* Generate manpages (the mangen argument only works when package status is development)
|
|
`./build_deb/profanity mangen`
|
|
|
|
* Determine if `libprofanity`'s version needs to be [increased](https://github.com/profanity-im/profanity/issues/973)
|
|
* Update plugin API docs (./apidocs/c and ./apidocs/python) need to run the `gen.sh` and commit the results to the website git repo
|
|
* Update CHANGELOG (Use scripts/changelog-helper.py)
|
|
* Update profrc.example
|
|
* Update profanity.doap (new XEPs and latest version). Look for `DEV` which marks what is done on the development branch.
|
|
* Add new release to profanity.doap
|
|
|
|
* Set the package status to release: `meson setup build_rel --buildtype=release`
|
|
|
|
* Update date and version in man pages (profanity.1, profanity-ox-setup.1)
|
|
* Add generated command manpages: `git add docs/profanity-*.1`
|
|
|
|
* Commit (Release 0.1.2)
|
|
* Tag (0.1.2)
|
|
|
|
* Generate tarballs: `meson dist -C build_rel --formats xztar,zip`
|
|
|
|
* Remove generated command manpages:
|
|
`git rm docs/profanity-*.1`
|
|
`git checkout HEAD -- docs/profanity-ox-setup.1`
|
|
docs/profanity.1 and docs/profanity-ox-setup.1 are handwritten.
|
|
|
|
* Commit `Start new cycle`
|
|
* Push
|