Package: plm Version: 2.9.2-1.1 Severity: normal X-Debbugs-Cc: [email protected]
Dear Maintainer, PLM tracks student progress in an embedded jgit repository (plm.core.model. tracking.GitSpy / GitUtils). Each run creates a commit. If the user's git configuration enables commit signing (commit.gpgsign = true, common on developer machines), jgit tries to sign these internal commits and fails, dumping a stack trace to the student console on every run, in every language mode (Java, Scala, ...): org.eclipse.jgit.api.errors.ServiceUnavailableException: Signing service is not available at org.eclipse.jgit.api.CommitCommand.sign(CommitCommand.java:329) at org.eclipse.jgit.api.CommitCommand.call(CommitCommand.java:283) at plm.core.model.tracking.GitUtils.commit(...) at plm.core.model.tracking.GitSpy.executed(...) at plm.core.model.Game.fireProgressSpy(...) at plm.core.model.LessonRunner.run(...) To reproduce: 1. git config --global commit.gpgsign true (or have it set already) 2. Launch plm, run any exercise -> the stack trace above is printed. Root cause: PLM's CommitCommand inherits the ambient commit.gpgsign setting. Its internal bookkeeping commits should never be signed. Fix: call setSign(false) on each CommitCommand in GitUtils (three call sites: the empty initial commit, the manual-merge commit, and the per-run tracking commit). A patch doing exactly this is prepared and will be forwarded upstream (https://github.com/oster/PLM). Thanks, Juan

