View Issue Details

IDProjectCategoryView StatusLast Update
0006180Talerdeployment and operationspublic2020-07-22 23:39
ReporterChristian Grothoff Assigned ToChristian Grothoff  
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
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.

Activities

buckE

2020-04-17 09: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 09: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 09: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 12: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 12:55

manager   ~0016326

Last edited: 2020-06-19 12:56

View 2 revisions

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 11: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 23:39

manager   ~0016505

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

Issue History

Date Modified Username Field Change
2020-04-14 21:46 Christian Grothoff New Issue
2020-04-14 21:46 Christian Grothoff Status new => assigned
2020-04-14 21:46 Christian Grothoff Assigned To => buckE
2020-04-17 09:01 buckE Note Added: 0015672
2020-04-17 09:49 Christian Grothoff Note Added: 0015674
2020-06-19 09:19 buckE Note Added: 0016321
2020-06-19 09:19 buckE Assigned To buckE => Christian Grothoff
2020-06-19 12:54 Christian Grothoff Note Added: 0016325
2020-06-19 12:54 Christian Grothoff Assigned To Christian Grothoff => buckE
2020-06-19 12:55 Christian Grothoff Note Added: 0016326
2020-06-19 12:56 Christian Grothoff Note Edited: 0016326 View Revisions
2020-06-26 11:32 buckE Note Added: 0016370
2020-06-30 03:56 buckE Assigned To buckE => Christian Grothoff
2020-07-05 00:06 Christian Grothoff Assigned To Christian Grothoff =>
2020-07-05 00:06 Christian Grothoff Status assigned => confirmed
2020-07-22 22:05 Christian Grothoff Assigned To => Christian Grothoff
2020-07-22 22:05 Christian Grothoff Status confirmed => assigned
2020-07-22 22:05 Christian Grothoff Target Version git (master) => 0.8
2020-07-22 23:39 Christian Grothoff Note Added: 0016505
2020-07-22 23:39 Christian Grothoff Status assigned => resolved
2020-07-22 23:39 Christian Grothoff Resolution open => fixed
2020-07-22 23:39 Christian Grothoff Fixed in Version => 0.8