* 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.
