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).
1.9 KiB
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 -
Update plugin API docs (./apidocs/c and ./apidocs/python) need to run the
gen.shand 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
DEVwhich 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-*.1git checkout HEAD -- docs/profanity-ox-setup.1docs/profanity.1 and docs/profanity-ox-setup.1 are handwritten. -
Commit
Start new cycle -
Push