View Issue Details

IDProjectCategoryView StatusLast Update
0006180Talerdeployment and operationspublic2021-08-24 14:23
ReporterChristian Grothoff Assigned ToChristian Grothoff Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version0.8Fixed in Version0.8 
Summary0006180: setup codespell as part of the CI for all of our source projects
DescriptionSee https://github.com/codespell-project/codespell
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

buckE

2020-04-17 07:01

reporter   ~0015672

I actually use codespell in my editor (Atom) and it's very useful.

This spec is not detailed enough to start. It's kind of a note, not a spec.

" setup codespell as part of the CI for all of our source projects"

As *what* part. Set up *to do what* exactly? How will I know it is done? What tests will you run to verify task completion?

Also, what is "the CI" and how do I access it?

Christian Grothoff

2020-04-17 07:49

manager   ~0015674

Yes, this is a note, not a spec. The idea was to provide an idea about next steps, not a full spec.
But I can give you more details:

The CI is buildbot. You access it via deployment.git, where you can edit the buildbot master configuration. We can probably re-use an existing slave for _this_ task, but could also deploy additional slave accounts for this or other tasks in the future.

Setup means to run codespell against the source repositories whenever they change and generate a report. The report could be a Web site (say codespell.taler.net) or sending an e-mail to the last committer in case spelling errors were found (I'd prefer this option).

The task is complete if developers get a notification whenever they commit a spelling mistake into the code (basically against any git.taler.net repository with code in a language that codespell supports).

buckE

2020-06-19 07:19

reporter   ~0016321

Okay this seems simple enough now. I take this as the defliverable:

> The task is complete if developers get a notification whenever they commit a spelling mistake into the code (basically against any git.taler.net repository with code in a language that
> codespell supports).

QUESTIONS:

- Do you want this to run on *every* codebase?

- What about the ones that do not currently have a buildbot worker?

- Because this will take time to install on each codebase, please specify the highest-priority ones to start with. And above that, a low-impact one that I can use to test. :)

- Do you know a buildbot method to create a meta worker? ie - something that can be called from any shell account with a worker? I don't think this exists and I don't see it in the docs, but I might as well ask before I go another way. Otherwise I guess it should be easy to write a generic "codespell.sh" script, and run codespell.sh from each other script called by each worker, since those scripts already have access to the deployment/buildbot directory.

- Can you install codespell on taler.net? This is preferable to installing locally on "every" shell account that runs a buildbot worker on a codebase. However, it is not available for stretch: https://packages.debian.org/search?keywords=codespell&searchon=names&suite=stable&section=all Maybe a global pip install: https://github.com/codespell-project/codespell

Christian Grothoff

2020-06-19 10:54

manager   ~0016325

Yes, every codebase on git.taler.net, and likely eventually also git.gnunet.org (as a service to GNUnet).

This should be a separate buildslave (process/user-ID) that only runs the spell checker. It has nothing to do with other jobs, and again may be run on code bases for which we have no other jobs.

For each codebase, the main work is to write the trigger (if git changes, do run spellchecker) and a factory (checkout code, run spellchecker, report). Overall, I would _hope_ you can write a python function "setup_spellchecker(ARG)" which takes as ARG the URL of a git repo and then that function creates the trigger and the factory rules for that Git repo. Maybe we need additional args to specify the programming language, but overall I would hope for a "write once, use for any repo"-style implementation.

Most important repos: exchange, merchant, wallet*.

Christian Grothoff

2020-06-19 10:55

manager   ~0016326

Last edited: 2020-06-19 10:56

I've setup a user codespell@taler.net to run one buildslave for all of the buildbot jobs (for _all_ repos).

buckE

2020-06-26 09:32

reporter   ~0016370

Note: this is on hold until logs and other BB questions are answered for sphinx and can be used here too.

Christian Grothoff

2020-07-22 21:39

manager   ~0016505

Worker is now running, output at:
https://buildbot.taler.net/#/builders/19/builds/3/steps/7/logs/stdio

Issue History

Date ModifiedUsernameFieldChange
2020-04-14 19:46Christian GrothoffNew Issue
2020-04-14 19:46Christian GrothoffStatusnew => assigned
2020-04-14 19:46Christian GrothoffAssigned To => buckE
2020-04-17 07:01buckENote Added: 0015672
2020-04-17 07:49Christian GrothoffNote Added: 0015674
2020-06-19 07:19buckENote Added: 0016321
2020-06-19 07:19buckEAssigned TobuckE => Christian Grothoff
2020-06-19 10:54Christian GrothoffNote Added: 0016325
2020-06-19 10:54Christian GrothoffAssigned ToChristian Grothoff => buckE
2020-06-19 10:55Christian GrothoffNote Added: 0016326
2020-06-19 10:56Christian GrothoffNote Edited: 0016326
2020-06-26 09:32buckENote Added: 0016370
2020-06-30 01:56buckEAssigned TobuckE => Christian Grothoff
2020-07-04 22:06Christian GrothoffAssigned ToChristian Grothoff =>
2020-07-04 22:06Christian GrothoffStatusassigned => implementing
2020-07-22 20:05Christian GrothoffAssigned To => Christian Grothoff
2020-07-22 20:05Christian GrothoffStatusimplementing => assigned
2020-07-22 20:05Christian GrothoffTarget Versiongit (master) => 0.8
2020-07-22 21:39Christian GrothoffNote Added: 0016505
2020-07-22 21:39Christian GrothoffStatusassigned => informing
2020-07-22 21:39Christian GrothoffResolutionopen => fixed
2020-07-22 21:39Christian GrothoffFixed in Version => 0.8
2021-08-24 14:23Christian GrothoffStatusinforming => closed