Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

fix: broken list of updates, due to the new `last` field colliding with loop variable fix: comparison of changed time vs cycle, was string, now proper epoch fix: remove direct calls into ops reporting from exec. indirect through callback fix: mishandling of TLS edge cases by Tcl `httpget`+`tls` packages. switched `url` utils to call on external `curl` instead tweak: website - renamed the pages for repo tables, page titles feat: website - added repo tables sorted by commits, forks. added columns for same data feat: website - added project tables sorted by #repos, #stores. sort order descending tweak: website - sorting for size, commits, forks descending tweak: website - reduce simple repo lists for projects to show only primaries chore: website - added '#forks' column to these lists, removed fork indicator from tags Leaf check-in: d131c978bf user: aku tags: vcs-plugged
fix: handling of `git://*` urls in the main vcs layer. cannot be url checked, bypass that action. leave check to the git commands invoked by the git vcs driver fix: weird insertion of empty line in `update` output from time to time. fix: export of state, skip projects without repository attached to them. this can happen when a phantom is removed after failure to complete feat: extended git VCS driver to invoke garbage collection on repositories after their updates. I.e. keep disk size in check feat: new chirurgy command `insert`. splice repository into the system, by url, project name, vs, and storage data. reject only if url is already present. no other checking. in other words, this can be used to add a broken, unreachable url. needed to recover when a broken repository was accidentally removed feat: new chirurgy command `stats`. actually not dangerous. regenerates size and commit data for referenced repositories. good to use after an `insert` feat: new output options for command `list`: --csv, --tsv, --pretty. pretty is default and pre-existing formatted table in terminal. csv, tsv generate respectively formatted data - they report the __entire__ query result, i.e. all columns (even if not shown by pretty), and all rows (--offset, --limit are void) feat: new sort options `--by-time` and `-by-commits` I.e. added ability to sort list results by time (last duration) and number of commits. both sort orders impose filter clauses to suppress repositories which do not have the relevant data (.i.e. phantoms) chore: extended `repository` table with dedicated column for duration of last setup/update. easier to pull out for display, and makes it available for use in ordering chore: tweaked `update` output, to align VCS names as well chore: removed various unsed/disabled pieces of code check-in: 049db6a63d user: aku tags: vcs-plugged
chore: whitespace cleanup chore: code cleanup, removed some unused procs, and gone exports tweak: help section indenting tweak: dropped ability to auto-regenerate site after changes - nice only for small setups does not scale to large setups where site generation can take minutes feat: hack command to change the vcs of a repository and its store check-in: 6dd242455a user: aku tags: vcs-plugged
fix/todo: do not create phantoms getting blocked at all no leaving around of disabled+hidden phantoms check-in: 2d19cf68c5 user: aku tags: vcs-plugged
now this one ran away from me a tiny bit ... - on the viewing side completely revamped the internals for getting lists of repositories. collapsed the large set of similar functions into a single function holding the core sql (returned fields, tables, base clauses to join the tables), plus a single function configuring the core with more clauses (filter, ordering, offset/limit) The various list commands then fed into that at first, and then got (mostly) subsumed into a massively expanded `list` command with lots more options to choose the filters, ordering, etc removed command `issues`. use `list --issues` instead removed command `disabled`. use `list --disabled` instead feat: Many new options for `list` feat: `list` substring search extended, accept multiple strings refactored and tweaked the processing from repo series to table as well feat: Added storage of lower-case project names and url. done for proper case-insensitive search with the move of the match process into sql [1]] - the fork tracking got redone a third time now the main change is that the immediate checks of found forks for validity/reachability is defered to happen when trying to complete the phantoms, i.e. actually setting up the store for the fork when update reaches it. this reduces the load on the remote servers significantly the only place where a series of validiity checks can still happen are imports. fix: modified `m url ok` to recognize status `429 too many requests`, and retry with a delay (using the `Retry-After` response. And a default of 60 seconds if no specific request was made forks who fail creation are removed. Of course, on the next update of the primary they will be recreated if they are reported again. however note that private forks are reported despite being inaccessible for cloning. To prevent such from bouncing between created as phantom and removed on failed completion a new tracking table counts such bounces and phantoms which exceed a configurable threshold are taken offline immediately when re-created the next time [[2]]. at that point bouncing stops feat: new command `config block` - view/modify the block threshold for phantoms feat: new option `--blocks` for `statistics`, to show block table feat: new commands `track`, `untrack`, `hide`, `publish` to view/modify the new flags for fork tracking and private repos removed `--track-forks` from `add`. default off, and use new `track`, `untrack` commands instead refactored the innards of `add`, `submission accept` and `import` for the above tweak: redid import/export as well, with proper long names for the commands feat: export/import now saves/uses tracking and privacy state flags tweak: removed any mentions of phantoms from the website, be it links or counts. for the site these simply do not exist required some reworking of statistics internals to handle requests for either with and without phantoms - general feat: new debug/test command `colors` to show the terminal colors feat: new debug/test command `url-ok` for direct access of the url validation functionality tweak: changed layout of config and statistics displays. separated into panels, shown left to right tweak: modified the messaging of command `update` to look like a table for normal operation (no failures or warnings), and mostly like it when interrupted by such fix: handling of `--extend` in `add`. validator default generated bogus data for it fix: mirror-vcs communication and import/export - flatten project names to single line, encode/decode linebreaks fix: mirror-vcs communication, read ops log even for failure, to get the detailed error message(s) fix: rolodex cleanup when encountering invaild ids left in it fix: fork retrieval for github. `git hub forks` delivers only the first 100. replaced with explicit `curl` [[3]] chore: removed a number of internal, now superfluous commands notes [[1]] todo: check if sqlite collating allows for the same [[2]] todo: do not create them at all. do not leave an (unused) phantom around [[3]] todo: check if Tcl http package is suitable check-in: a785918096 user: aku tags: vcs-plugged
fix: missing commit of vcs changes supporting [1dbe8e5f9c], and other lost changes fix: non-path safe base64 encoding for various store files fix: missing skip of unused stores in site generation, ditto in site db synch feat: show page generation time (extended footer) in site generation chore: rework the per-vcs store/repo count display in site fix: edge cases in cleanup of lost stores (no store directory), lost code feat: attempting to enable a disabled repository now validates the url fix: status display for stores with issues chore: reworked fork handling. added delays to reduce request load. stop after a fixed number of adds (defer more to future updates) note: `git hub forks` retrieves only first hundred forks, even if asked for `--all` note: doc reading shows that direct use of the api via `curl` or http package should be feasible note: given the extreme number of forks seen thinking on redesign to make fork management easier (better info where possible, auto-track off by default, knowing the number of forks (even if not tracked)) check-in: e9475f891f user: aku tags: vcs-plugged
fix: internals of store setup - defered init means validate again at actual setup time fix: missing removal of debris (partially init store) when adding a store fails fix: inverted condition for updating store attributes after update fix: bad column names when saving updated store attributes fix: table style for come-around-mail. go back to plain ASCII for this (box drawing chars may not display properly) feat: show counts of removed/same/possibly added forks after update feat: show phantom count, and per vcs store counts in statistics (cli, web) feat: as part of the previous, get per vcs repository counts feat: show count of pages when (re)generating the site check-in: 1dbe8e5f9c user: aku tags: vcs-plugged
chore: comment formatting tweaks (fill-column 90), removed some disabled left-over old code chore: removed various left-over unused project name arguments in repo/store/vcs commands feat: new command `archive` to extract stores from the system, various modifiers feat: split `site make` from `site on`, make the former a dedicated one-shot. feat: implemented repositories to function without a store - phantoms use: new forks from setup or update are added as phantoms -> time is spent only on url check - still linear in #forks, - yet much less than full store setup, i.e. cloning -> time for setup of highly forked repo is kept limited, - distributed across follow-on updates followup updates incrementally initialize the missing stores lots of places modified to deal with a missing store fix: calculation of statistics for an empty database (no projects, repositories, stores) fix: missing default of current repos for commands `enable`, `disable`, `move`, `remove` also handle an empty database fix: missing update of `repo_pending` when adding/removing repositories check-in: 01925ddb24 user: aku tags: vcs-plugged
chore: general whitespace cleanup. check-in: dc6bac384f user: aku tags: vcs-plugged
chore: reworked the structure of store directories, simplified callers (no need to rename stores anymore) chore: documented the new store state files chore: stores/vcs now discard leftover v2 state files in stores check-in: 98b9508198 user: aku tags: vcs-plugged
feat: extended command `add` with option `--extend` (add + merge semantics) feat: new command `move` feat: new command `statistics` feat: new commands `project`, and `projects` for project details and listing feat: tweaked table formatting, now using the box drawing characters feat: new site pages for statistics, projects, and project details chore: added code to github driver to clean up v2 state files (fork management) chore: db setup tweak, removed the auto-increment modifiers from all tables still using this unrecommended thing chore: redone page generation internals for easier reading of emitter code chore: redone store pages, account for multi-project possibility chore: reworked the guts of commands `export` and `import` for new semantics, and shared stores chore: reworked the guts of commands `merge` & `split` for the new semantics (store ops on repos, not projects) chore: tweaked index pages, removed small statistics, issues, disabled - all in the navbar chore: various tweaks to command messaging check-in: 039ce288e8 user: aku tags: vcs-plugged
chore: reworked merge & split for the new semantics (store ops on repos, not projects) check-in: 25f69ccbde user: aku tags: vcs-plugged
Update system introduction to match changes. check-in: d482cec0ee user: aku tags: vcs-plugged
feat: list projects feat: extended project rename to allow merging (= bulk move of repos in a project) fix: cleanup of still present old command names (mset -> project) fix: bad debug tags in new code fix: comment typo check-in: 636c7d468e user: aku tags: vcs-plugged
chore: extended tracing for checking urls, show TLS activity check-in: 202c8a6889 user: aku tags: vcs-plugged
feat: support for linking to a related web site check-in: 90fe27baa6 user: aku tags: vcs-plugged
database: extended notes about dropping of table `name`. check-in: 670408821a user: aku tags: vcs-plugged
submission accept: Extended ability of user to override submission data. submission accept: New options alias -V (--vcs) submission accept: New option --url, alias -U check-in: 9e0a0cb23c user: aku tags: vcs-plugged
Tweaked the formatting of avg update times (show window size, elements going into the result) Bugfix: Normalize the project name before putting it into lists. Flatten to single line, remove superfluous whitespace. Look at the description of https://github.com/luaforge/tclua. The multi-line broke MD formatting of the table) Added run time stamps to site generator (only at the major places) check-in: b6d8811f29 user: work tags: vcs-plugged
1. db migration, main and site 1. mirror set renamed to project. 1. updated cmdr spec, most commands 1. several commands switch to take repos instead of projects 1. completed the conversion of common vcs to call out to the backoffice code 1. reworked repo, store, vcs handling for the new schema 1. iterated over commands to check for issues and fix them 1. previous not complete, see merge, split, web pages 1. even so, the majority of the functionality looks to be working again 1. especially add/update of repos, i.e. the core. 1. and yet, still more testing needed to validate handling of issues with network and/or repo servers. 1. issues should be more localised however, as access (especially to github) should now use smaller requests overall 1. website, touch up of generated pages (lists, store details, new list of forks for > 5 forks of a repo) 1. see TODO.md for general things outside of fixes check-in: 5c2d6c24ac user: work tags: vcs-plugged
Fix v2/v3 repository migration check-in: 0f1fc429ce user: work tags: vcs-plugged
Fix forgotten removal of outdated tables from v2/v3 migration. check-in: 666134b711 user: work tags: vcs-plugged
Brought v2 schema docs into line with code. Writeup of issues. Writeup of v3. Added migration step from v2 to v3 schema. __BEWARE__ At this point migration works, and everything else will be broken, as it is assuming the v2 schema. check-in: 74724d9d0c user: work tags: vcs-plugged
Fix eols in scratch area check-in: e0637d5770 user: work tags: vcs-plugged
Blind work in vcs layer have more commands call on the backoffice code. Untested. Likely broken. check-in: 00532db491 user: work tags: vcs-plugged
`m vcs *`: - Converted `url-to-name` (was `name-from-url`) - Converted `update`. - Removed `revs`, `remotes`. - Still kept: `detect`. - Added tests for the converted commands. check-in: ce42f93675 user: aku tags: vcs-plugged
`m ops client`: - Fixed `fork` vs `forks` mismatch. - Ensured proper exit status for failure, regardless of failure cause. `m exec`: - Added `get+route` to the `m exec` variants (Allows re-routing of lines from actual out/err to logical out/err before acting on them, i.e. re-routing affects the progress reporting done, and exit state). - Further added method `err-last-get` to retrieve error state of last `get+route` call. `m vcs *`: - Conversion of `setup`, `mergable?`, `merge`, and `split`. - Extended `setup` to return commit count and size (kb) for store. - Moved the command determining store size out of VCS into `m exec`. Lower-level, shared. - Added tests for the converted commands. check-in: 5ac541ea09 user: aku tags: vcs-plugged
Removed `vcs-op` from main app (cmdr, glue). Going with the separate `mirror-vcs` app. Converted `export` over to new system. Reworked `m::ops::client` interna, avoid use of `::exit`. Added tests for `mirror-vcs` and the converted commands. check-in: 543460f8c4 user: aku tags: vcs-plugged
Scratch data for dev check-in: cddcfce63a user: aku tags: vcs-plugged
Start on moving VCS operations into separate executable, with main executable calling out. First step in making VCS more pluggable, extensible without changing the core. So far ops `version` and `cleanup` are moved/redone. New utility package for generic client handling. Added exec variants to specifically handle the plugin comm protocol (stdout, ops log, ...). check-in: 66213af5e1 user: aku tags: vcs-plugged
Updated schema docs to current setup. Leaf check-in: 1f4544326b user: aku tags: trunk
Moved processing of debug flags (and EV) into utility package. Added use to the support apps. check-in: 6856986b92 user: aku tags: trunk
Brought test suite back to spec and matching the code for all but new commands. To come, a commit adding tests for all the commands without and testable. Commands with side effects (primarily sending mail) not yet testable. Requires a mock smtp server for capture. check-in: 3220094340 user: aku tags: trunk
Larger schema reorg. Dropped table `name` and folded its information into the single user, `mirror_set`. check-in: ed5ddd6c2f user: aku tags: trunk
Fixed typos in sql invokation check-in: f96408ad63 user: aku tags: trunk
Fixed breakage to cycle mail done by previous commit. Tweaked the content of the table (reordered, removed previous data) check-in: a6ea53adbb user: aku tags: trunk
Added mail configuration `width` (state element `mail-width`). Determines the width of tables placed into generated mails. Currently the only application is in the generation of the cycle report mail. New command `mail width`. Affected commands `updates` and `debug cycle-mail`. check-in: 4e7a29301d user: aku tags: trunk
Exposed SMTP narrative tracing to mail config commands (show, set). check-in: ea95a59325 user: aku tags: trunk
- `debug cycle-mail` Extended to send as mail, configured or specific destination. Plus backend work for that. Fixes to the mail sending code which prevented this from working during updates. Error was swallowed. - `update` Fixed backend wrongly still using inactive/disabled repositories. - vcs backends. A bit more narrative tracing. check-in: 119798879d user: aku tags: trunk
Changes - `config show` : Show pending and total mirror sets with take per cycle. - `pending` : Show number of pending and total mirror sets before table. - `update` : Show start of current cycle in log of current run. Show more logging in the hook called when the cycle turns. Show take, and number of pending and total mirror sets. - mset backend : Added method to return count of pending mirror sets. - Changed variable names for all the generated mails, and unfolded lines. Enables dev to see what is generated at each location without requiring an editor. check-in: 5a2d58e068 user: aku tags: trunk
Updated README to note svn support. check-in: 44fd555cd3 user: aku tags: trunk
Fixed issue with cycle reporting in site, for unchanged repos. Also influenced by inverted condition on which pages to get insertions. check-in: 307c378610 user: aku tags: trunk
Tkt [667f777f17]. Added support for SVN. Fixed issue with forks handling for vcs which do not support such. check-in: f4c6f041b8 user: aku tags: trunk
Fake out SForge's handling of git repositories. check-in: 53d0011159 user: aku tags: trunk
Added tracking of the cycle roll over, with sending of mail if a destination is configured. New config command (`report`) for same. New debug command (`cycle-mail`) to check mail generation for cycle roll over. The start of the current cycle is stored in a new state key, `start-of-current-cycle`. The start of the cycle before is stored under `start-of-previous-cycle`. Cycle information is reported with the configuration, in `updates`, and all the list-based pages of the generated site. check-in: b03bdbfd3f user: aku tags: trunk
Fixed bad management of the tracking window. Now properly extending it when not at configured max length. check-in: 351703b3b7 user: aku tags: trunk
Ticket [7a4a72b413]. Added caching of commit counts to database. Added caching of github fork counts to database. Added tracking of size/commit changes (current, previous). Added tracking of update times (min, max, last N). N is configurable via new command `config window`. Default N = 10. Extended command `details` to show the new information (commits, changes, update time stats (moving average)). Same for web site generation. Extended commands `add` and `import` to show setup time for store, and github fork counts. Warn at higher fork counts, stop at very high fork counts. Extended command `update` to show update time for store, and (new) github fork counts. Extended command `updates` to show size changes, commits and commit changes, and time spent on last update. check-in: 46ca952cd0 user: aku tags: trunk
Added test command `debug mail-setup`. Generates and sends a fixed test mail using the current mail configuration. Extended the `details` command to show the store path. check-in: f6d37ebcae user: aku tags: trunk
Multiple icons for state information in website. Commands `enable` and `disabled` extended to accept multiple repository references. Added command `disabled` to show table of disabled repositories. Extended website with table of disabled repositories as well. Modified the database backend for tables of issues to exclude fully disabled stored. Affects website and command `issues`. Extended all store lists with issue flag. Save fork information in sorted order for easier comparison. check-in: d5d8695d63 user: aku tags: trunk
Ticket [0fe3495c2f]: Modified the handling of stores with issues: - Implemented user command `issues` to see stores with problems in the last update. - Cache information about existence problems (%stderr not empty) into the database, for easier access and filtering. - Extended the database schema of `store_times` to record this flag. - Added migration code initializing the flag cache from the primary information (%stderr logs). - Extended the store update logic to manage the flag cache directly. - Added a low-level database function retrieving the list of troubled stores, with filtering on the new flag. - Changes to web site generation. - Simplified. Now uses the new database function. - Always generate the page, even if empty. check-in: 833e635b29 user: aku tags: trunk