Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tinchodias/pharominer
https://github.com/tinchodias/pharominer
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/tinchodias/pharominer
- Owner: tinchodias
- License: mit
- Created: 2024-08-01T22:53:36.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-08-03T19:28:29.000Z (3 months ago)
- Last Synced: 2024-10-08T18:41:40.522Z (about 1 month ago)
- Language: Smalltalk
- Size: 88.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pharo Miner
The purpose of this project is gathering evolution information of [Pharo](https://pharo.org/). This is all intermediate versions between releases, and associated issue discussions of each evolution step.
This code is quite outdated (2015), but it seemed to work well on Pharo 11 in 2024.
Install on Pharo 11:
```smalltalk
Metacello new
baseline: 'PharoMiner';
repository: 'github://tinchodias/PharoMiner';
load.
```Download all Pharo 3 mcz to your disk (drink some mate meanwhile):
```smalltalk
PharoSlicesMiner downloadSlicesToCacheFrom: PharoSlicesMiner pharo30InboxRepository.
```Clone pharo-core git repo (drink more mate now):
```smalltalk
PharoVersionsMiner pharoCoreRepository
```## Do some queries
```smalltalk
slicesMiner := PharoSlicesMiner forPharo30.fogbugzMiner :=
PharoFogBugzMiner new
tracker:
(FogBugzTracker pharo
logOnWithEmail: '???'
password: '???');
issueNumbers: slicesMiner versionsByNumber keys;
yourself.
4 timesRepeat: [ fogbugzMiner run ].versionsMiner := PharoVersionsMiner forPharo30.
versionsMiner reliableTimeSpanInPharo30."Possible Pharo Tags for Slice"
candidateTagsByNumber := Dictionary new.
slicesMiner versionsByNumber keysAndValuesDo: [ :number :slices |
candidateTagsByNumber
at: number
put: (versionsMiner selectTagsForSlice: slices anyOne) ]."---"
"Fogbugz FRN events matches "
outdatedContributions :=
(fogbugzMiner resolvedFRNEventsIn: versionsMiner reliableTimeSpanInPharo30) reject: [ :each |
| bestSlice possiblePharoTagsForSlice currentPharoTagForEvent |
bestSlice := slicesMiner bestVersionAt: each.
possiblePharoTagsForSlice := versionsMiner selectTagsForSlice: bestSlice.
currentPharoTagForEvent := versionsMiner bestTagForTimestamp: each date.possiblePharoTagsForSlice
ifNotEmpty: [ possiblePharoTagsForSlice includes: currentPharoTagForEvent ]
ifEmpty: [ true ]
].
" % "
total := fogbugzMiner resolvedFRNEvents size.
(outdatedContributions size * 100 / total) asFloat. "----> 5.78 % ""Fogbugz FTI events matches "
outdatedContributionsFTI :=
(fogbugzMiner resolvedFTIEventsIn: versionsMiner reliableTimeSpanInPharo30) reject: [ :each |
| bestSlice possiblePharoTagsForSlice currentPharoTagForEvent |
bestSlice := slicesMiner bestVersionAt: each.
possiblePharoTagsForSlice := versionsMiner selectTagsForSlice: bestSlice.
currentPharoTagForEvent := versionsMiner bestTagForTimestamp: each date.possiblePharoTagsForSlice
ifNotEmpty: [ possiblePharoTagsForSlice includes: currentPharoTagForEvent ]
ifEmpty: [ true ]
].
" % "
total := fogbugzMiner resolvedFTIEvents size.
(outdatedContributionsFTI size * 100 / total) asFloat. " ---> 5 % "" not overlapping with FRN "
casesIdOfFRNEvents := outdatedContributions collect: [ :each | each case id ].
notOverlappingFTIEvents := outdatedContributionsFTI reject: [ :each |
casesIdOfFRNEvents includes: each case id ].
total := fogbugzMiner resolvedFRNEvents size + notOverlappingFTIEvents size.
((outdatedContributions size + notOverlappingFTIEvents size) * 100 / total) asFloat. "----> 6.65 % ""---"
"github/pharo-core has wrong timestamps before this tag: 30457"
startTime := versionsMiner timestampByTag at: '30457'.endTime := versionsMiner timestampByTag at: '30858'.
versionsMiner timestampByTag at: '30362'.
```## History
This codebase was recovered from SmalltalkHub.
* Source repository: http://smalltalkhub.com/MartinDias/PharoMiner
* Migration tool: https://github.com/pharo-contributions/git-migrationScript:
```smalltalk
migration := GitMigration on: 'MartinDias/PharoMiner'.
migration onEmptyMessage: [ :info | 'empty commit message' ].
migration downloadAllVersions.
migration populateCaches.
migration allAuthors.
migration authors: {
'MartinDias' -> #('Martín Dias' '').
'SkipLentz' -> #('Balletie' '') }.
migration
fastImportCodeToDirectory: 'src'
initialCommit: '6bf3a47'
to: 'import.txt'
```