Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Modified sak release utility methods (review, readme) to pull the set of modified modules and commit messages directly out of the repository instead of scraping the ChangeLog. This is based on the presence of a tag "release" to stop the search. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | tcllib-1-16-rc |
Files: | files | file ages | folders |
SHA1: |
251a312c0a32951436250ae959bbc959 |
User & Date: | aku 2014-01-24 07:56:23.036 |
Original Comment: | Modified sak release utility methats (review, readme) to pull the set of modified modules and commit messages directly out of the repository instead of scraping the ChangeLog. This is based on the presence of a tag "release" to stop the search. |
Context
2014-01-29
| ||
21:12 | Merge RC with latest fixes check-in: 59ef0e2775 user: andreask tags: tcllib-1-16-rc | |
2014-01-24
| ||
07:56 | Modified sak release utility methods (review, readme) to pull the set of modified modules and commit messages directly out of the repository instead of scraping the ChangeLog. This is based on the presence of a tag "release" to stop the search. check-in: 251a312c0a user: aku tags: tcllib-1-16-rc | |
04:49 | Fix oops in new test textutil-7.5. check-in: f7cdeb52d0 user: aku tags: tcllib-1-16-rc | |
Changes
Changes to sak.tcl.
︙ | ︙ | |||
1171 1172 1173 1174 1175 1176 1177 | set packages($p) [lindex $vm 0] } nparray packages $f close $f } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 | set packages($p) [lindex $vm 0] } nparray packages $f close $f } # -------------------------------------------------------------- # Handle modules using docstrip proc docstripUser {m} { global distribution set mdir [file join $distribution modules $m] |
︙ | ︙ |
Changes to support/devel/sak/readme/readme.tcl.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # -*- tcl -*- # (C) 2009 Andreas Kupries <[email protected]> ## # ### package require sak::color namespace eval ::sak::readme { namespace import ::sak::color::* } # ### proc ::sak::readme::usage {} { package require sak::help puts stdout \n[sak::help::on readme] exit 1 } proc ::sak::readme::run {} { global package_name package_version getpackage struct::set struct/sets.tcl getpackage struct::matrix struct/matrix.tcl getpackage textutil::adjust textutil/adjust.tcl set issues {} # package -> list(version) set old_version [loadoldv [location_PACKAGES]] array set releasep [loadpkglist [location_PACKAGES]] array set currentp [ipackages] | > > > > > > > > > > > > > > > < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # -*- tcl -*- # (C) 2009 Andreas Kupries <[email protected]> ## # ### package require sak::color package require sak::review namespace eval ::sak::readme { namespace import ::sak::color::* } # ### proc ::sak::readme::usage {} { package require sak::help puts stdout \n[sak::help::on readme] exit 1 } proc ::sak::readme::run {} { global package_name package_version getpackage struct::set struct/sets.tcl getpackage struct::matrix struct/matrix.tcl getpackage textutil::adjust textutil/adjust.tcl # Future: Consolidate with ... review ... # Determine which packages are potentially changed, from the set # of modules touched since the last release, as per the fossil # repository's commit log. set trunk [sak::review::Leaf trunk] ;# rid set release [sak::review::YoungestOfTag release] ;# datetime sak::review::AllParentsAfter $trunk $release -> rid { sak::review::FileSet $rid -> path action { lappend modifiedm [lindex [file split $path] 1] } } set modifiedm [lsort -unique $modifiedm] set issues {} # package -> list(version) set old_version [loadoldv [location_PACKAGES]] array set releasep [loadpkglist [location_PACKAGES]] array set currentp [ipackages] array set changed {} foreach p [array names currentp] { foreach {vlist module} $currentp($p) break set currentp($p) $vlist set changed($p) [struct::set contains $modifiedm $module] } |
︙ | ︙ |
Changes to support/devel/sak/review/review.tcl.
︙ | ︙ | |||
35 36 37 38 39 40 41 42 43 | proc ::sak::review::Scan {} { global distribution variable review Banner "Scan for modules and packages to review..." # Determine which packages are potentially changed and therefore # in need of review, from the set of modules touched since the | > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > < | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | proc ::sak::review::Scan {} { global distribution variable review Banner "Scan for modules and packages to review..." # Future: Consolidate with ... readme ... # Determine which packages are potentially changed and therefore # in need of review, from the set of modules touched since the # last release, as per the fossil repository's commit log. # list of modified modules. set modifiedm {} # database of commit message per changed module. array set cm {} set trunk [Leaf trunk] ;# rid set release [YoungestOfTag release] ;# datetime AllParentsAfter $trunk $release -> rid { Next ; Progress " $rid" set d [Description $rid] Progress " D" FileSet $rid -> path action { Progress . set px [file split $path] set themodule [lindex $px 1] lappend modifiedm $themodule lappend cm($themodule) $d # ignore files in modules/ if {[llength $px] < 3} continue lappend pt($themodule) [file join {*}[lrange $px 2 end]] } } # cleanup module list, may have duplicates set modifiedm [lsort -unique $modifiedm] array set review {} # package -> list(version) set old_version [loadoldv [location_PACKAGES]] array set releasep [loadpkglist [location_PACKAGES]] array set currentp [ipackages] array set changed {} foreach p [array names currentp] { foreach {vlist module} $currentp($p) break set currentp($p) $vlist set changed($p) [struct::set contains $modifiedm $module] } |
︙ | ︙ | |||
116 117 118 119 120 121 122 | #Progress " [=cya mismatch]" incr np } } Close | | | | < | | < < | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | #Progress " [=cya mismatch]" incr np } } Close # Postprocessing phase, pull in all relevant commit messages of the module. foreach m [array names review] { # commit messages set entries [lsort -unique $cm($m)] # and affected files lappend entries [join [lsort -dict [lsort -unique $pt($m)]] \n] set review($m) [list $review($m) [join $entries \n\n]] } set review() $np return } |
︙ | ︙ | |||
228 229 230 231 232 233 234 235 236 237 238 239 240 241 | set notes($k) $t } close $f } return } # # ## ### ##### ######## ############# ##################### ## Phase II. Interactively review the changes packages. # Namespace variables # # review : array, database of all modules, keyed by name | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 | set notes($k) $t } close $f } return } proc ::sak::review::FileSet {rid _ pv av script} { upvar 1 $pv thepath $av theaction lappend map @rid@ $rid foreach line [split [string trim [F [string map $map { SELECT filename.name, CASE WHEN nullif(mlink.pid,0) is null THEN 'added' WHEN nullif(mlink.fid,0) is null THEN 'deleted' ELSE 'edited' END FROM mlink, filename WHERE mlink.mid = @rid@ AND mlink.fnid = filename.fnid ORDER BY filename.name; }]]] \n] { foreach {thepath theaction} [split $line |] break # ignore all changes not in modules if {![string match modules* $thepath]} continue uplevel 1 $script } return } proc ::sak::review::Description {rid} { lappend map @rid@ $rid string trim [F [string map $map { SELECT coalesce(event.ecomment,event.comment) FROM event WHERE event.objid = @rid@ ; }]] } proc ::sak::review::AllParentsAfter {rid cut _ rv script} { upvar 1 $rv therev array set rev {} set rev($rid) . lappend front $rid # Standard iterative incremental transitive-closure. We have a # front of revisions whose parents we take, which become the new # front to follow, until no parents are delivered anymore due to # the cutoff condition (timestamp, only the revisions coming after # are accepted). while {1} { set new {} foreach cid $front { foreach pid [split [Parents $cid $cut] \n] { lappend new $pid } } if {![llength $new]} break # record new parents, and make them the new starting points set front {} foreach pid $new { if {[info exists rev($pid)]} continue set rev($pid) . lappend front $pid set therev $pid uplevel 1 $script } } } proc ::sak::review::Parents {rid cut} { lappend map @rid@ $rid lappend map @cutoff@ $cut F [string map $map { SELECT pid FROM plink WHERE plink.cid = @rid@ AND plink.mtime > @cutoff@ ; }] } proc ::sak::review::YoungestOfTag {tag} { lappend map @tag@ $tag F [string map $map { SELECT event.mtime FROM tag, tagxref, event WHERE tag.tagname = 'sym-' || '@tag@' AND tagxref.tagid = tag.tagid AND tagxref.tagtype > 0 AND tagxref.rid = event.objid AND event.type = 'ci' ORDER BY event.mtime DESC LIMIT 1 ; }] } proc ::sak::review::Leaf {branch} { lappend map @branch@ $branch F [string map $map { SELECT blob.rid FROM leaf, blob, tag, tagxref WHERE blob.rid = leaf.rid AND tag.tagname = 'sym-' || '@branch@' AND tagxref.tagid = tag.tagid AND tagxref.tagtype > 0 AND tagxref.rid = leaf.rid ; }] } proc ::sak::review::F {script} { exec fossil sqlite3 << $script } # # ## ### ##### ######## ############# ##################### ## Phase II. Interactively review the changes packages. # Namespace variables # # review : array, database of all modules, keyed by name |
︙ | ︙ |