Developer mode
Ralph Seichter
abbot at monksofcool.net
Mon Nov 18 20:32:07 UTC 2019
* Ryan Schmidt:
> I wonder if we should add a "developer mode" to MacPorts -- something
> that developers could enable in macports.conf.
I for one would like to be able to peek into what is happening under the
hood when working with Portfiles, so increased logging of technical
details sounds useful to me. That includes deprecation warnings,
suggested update paths, etc.
> In "developer mode", "port lint" or other checks could be run as part
> of every install.
Gentoo Linux provides a tool called 'repoman' [1] that is similar to
'port lint' in some aspects. It also provides convenience functions like
updating manifests (mostly source tarball checksums) and a wrapper for
VCS commits that pre-populates commit messages with the ebuild name
(similar to Port name), sign-off lines, and links to referenced/closed
issues in Gentoo's Bugzilla. I find repoman to be very useful, and if
the developer mode you suggested comes with similar utility, I would
welcome it.
[1] https://wiki.gentoo.org/wiki/Repoman
-Ralph
P.S.: Output of 'repoman --help' in the current version:
usage: repoman [options] [mode]
Modes: ci | commit | fix | full | help | manifest | manifest-check | scan
optional arguments:
-h, --help show this help message and exit
-a, --ask Request a confirmation before commiting
-b <BUG-NO|BUG-URL>, --bug <BUG-NO|BUG-URL>
Mention a Gentoo or upstream bug in the commit footer;
takes either Gentoo bug number or full bug URL
-c <PR-NO|PR-URL>, --closes <PR-NO|PR-URL>
Adds a Closes footer to close GitHub pull request (or
compatible); takes either GitHub PR number or full PR
URL
-m COMMITMSG, --commitmsg COMMITMSG
specify a commit message on the command line
-M COMMITMSGFILE, --commitmsgfile COMMITMSGFILE
specify a path to a file that contains a commit
message
--digest <y|n> Automatically update Manifest digests for modified
files
-p, --pretend don't commit or fix anything; just show what would be
done
-q, --quiet do not print unnecessary messages
--echangelog <y|n|force>
for commit mode, call echangelog if ChangeLog is
unmodified (or regardless of modification if 'force'
is specified)
--experimental-inherit <y|n>
Enable experimental inherit.missing checks which may
misbehave when the internal eclass database becomes
outdated
--experimental-repository-modules <y|n>
Enable experimental repository modules
-f, --force Commit with QA violations
-S, --straight-to-stable
Allow committing straight to stable
--vcs VCS Force using specific VCS instead of autodetection
-v, --verbose be very verbose in output
-V, --version show version info
-x, --xmlparse forces the metadata.xml parse check to be carried out
--if-modified <y|n> only check packages that have uncommitted
modifications
-i, --ignore-arches ignore arch-specific failures (where arch != host)
--ignore-default-opts
do not use the REPOMAN_DEFAULT_OPTS environment
variable
-I, --ignore-masked ignore masked packages (not allowed with commit mode)
--include-arches ARCHES
A space separated list of arches used to filter the
selection of profiles for dependency checks
-d, --include-dev include dev profiles in dependency checks
-e <y|n>, --include-exp-profiles <y|n>
include exp profiles in dependency checks
--unmatched-removal enable strict checking of package.mask and
package.unmask files for unmatched removal atoms
--without-mask behave as if no package.mask entries exist (not
allowed with commit mode)
--output-style {column,default}
select output type
--mode {ci,commit,fix,full,help,manifest,manifest-check,scan}
specify which mode repoman will run in (default=full)
For more help consult the man page.
More information about the macports-dev
mailing list