[Pharo-project] Helping getting pharo license-clean
Hi all (and matthew we need your guidance/help) We really want to get pharo 1.0 license clean. It would be bad that 1.0 is not. But 1.0 should get out before summer. Here is a collection of all the information I collected on the topic: Here what matthew wrote I've done the first step and done a full audit, using Yoshiki's tools [1], of all the code in Squeak 3.10.2, with the exception of four packages: - Monticello - SUnit, TestRunner, and SUnitImproved - Universes - Traits I also applied all of yoshiki's etoys changes to 3.10.2. The algorithm that Yoshiki seemed to follow when cleaning etoys is: - If the method can be easily deleted, delete it - Otherwise, use the historical image [1] to revert to the latest version before the problematic author - Fix any bugs this causes I think we can use the same procedure. Perhaps Yoshiki will comment. So, to help with the relicense, grab the historical image[1], check out the license audit [2], leave a note on mantis about what you think you'll work on, and start rolling out change sets. For your convenience, all of the license audits are included both in the relicensing tools download and on mantis. I'll try to keep both up to date as we progress with the relicense [1] The tools I've been using to do the relicense: http://ftp.squeak.org/4.0alpha/squeak4.0-relicensingTools.zip see also: http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586... http://www.squeaksource.com/MethodAuthorship.html [2] The 4.0 relicense mantis issue: http://bugs.squeak.org/view.php?id=6989 The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data here is another email from matthew On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
I need your guidance for the MIT conversion effort of Pharo Do you have some cycles to help me and telling me how to proceed? I'm on holidays (so working remotely so I may allocate some time on that).
I can help you after school gets out in a week. I need to do a quick count of how many lines of code need to be fixed in squeak for submission to SFLC. I can do the same for Pharo. I don't know how strenuous you want to be in your license conversion. The next 3 steps in the license conversion process are, in no particular order: - get a document from yoshiki documenting how etoys was relicensed (and, by extension, cuis). The board will overview it with the help of SFLC and determine if it is good enough. - The board will publish a statement about what is and is not a trivial-enough change to ignore. - I will count up the lines of code to be converted, and determine how many of them are trivial and non-trivial You should chat with Randal Schwartz about what you need to decide before you can start relicensing, and what you need to document in case your relicense needs to be reviewed in the future. Yoshiki and Juan did not do this and thus we have no evidence yet that Yoshiki's relicense is strong enough. I documented the priorities for squeak 4.0 in this email: http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134083.... You should probably figure out your priorities for the relicense as well, so you know whose standards you need to meet. Since that email was written, Randal has indeed heard back from SFLC, but I haven't heard what they had to say yet. -- Matthew Fulmer -- http://mtfulmer.wordpress.com/
I also applied all of yoshiki's etoys changes to 3.10.2. The algorithm that Yoshiki seemed to follow when cleaning etoys is: - If the method can be easily deleted, delete it - Otherwise, use the historical image [1] to revert to the latest version before the problematic author - Fix any bugs this causes
I think we can use the same procedure. Perhaps Yoshiki will comment.
Perhaps^^; Does Pharo have ScaledDecimal and it is used? If so, that would be the biggest piece that would be removed. There wouldn't be any serious bugs that would cause major trouble otherwise.
On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
I need your guidance for the MIT conversion effort of Pharo Do you have some cycles to help me and telling me how to proceed? I'm on holidays (so working remotely so I may allocate some time on that).
I can help you after school gets out in a week. I need to do a quick count of how many lines of code need to be fixed in squeak for submission to SFLC. I can do the same for Pharo. I don't know how strenuous you want to be in your license conversion.
What is the reason for Pharo to go with SFLC?
You should chat with Randal Schwartz about what you need to decide before you can start relicensing, and what you need to document in case your relicense needs to be reviewed in the future. Yoshiki and Juan did not do this and thus we have no evidence yet that Yoshiki's relicense is strong enough.
There will be no such evidence. There will be no evidence for a statement like "there is no white crow". -- Yoshiki
Perhaps^^;
:)
Does Pharo have ScaledDecimal and it is used? it ha but I do not know if this is used.
If so, that would be the biggest piece that would be removed. There wouldn't be any serious bugs that would cause major trouble otherwise.
I can help you after school gets out in a week. I need to
do a quick count of how many lines of code need to be fixed in squeak for submission to SFLC. I can do the same for Pharo. I don't know how strenuous you want to be in your license conversion.
What is the reason for Pharo to go with SFLC?
I do not know.
You should chat with Randal Schwartz about what you need to decide before you can start relicensing, and what you need to document in case your relicense needs to be reviewed in the future. Yoshiki and Juan did not do this and thus we have no evidence yet that Yoshiki's relicense is strong enough.
There will be no such evidence. There will be no evidence for a statement like "there is no white crow".
Indeed I think that we should stop somewhere.
On May 15, 2009, at 21:36 , Stéphane Ducasse wrote:
I can help you after school gets out in a week. I need to do a quick count of how many lines of code need to be fixed in squeak for submission to SFLC. I can do the same for Pharo. I don't know how strenuous you want to be in your license conversion.
What is the reason for Pharo to go with SFLC?
I do not know.
This is a misunderstanding. We do not intend to go with SFLC. Matthew referred to *Squeak's* submission to SFLC. Adrian
Hi yoshiki What did you do with code of people that passed away. It is obvious that they gave the code for squeak. Now removing this code is like if we do not consider their contribution because they are dead. I feel that this license process is a huge shit. stef
At Sat, 16 May 2009 10:14:48 +0200, Stéphane Ducasse wrote:
Hi yoshiki
What did you do with code of people that passed away. It is obvious that they gave the code for squeak.
For Russel Swan, re removed his code. For Jerry Archibald, we contacted his daughter and she signed the relicencing agreement with us. For Henrik, we removed most of them and rewrite the remaining.
Now removing this code is like if we do not consider their contribution because they are dead.
I feel the same way and two of the people heirs we managed to contact with felt the same way.
I feel that this license process is a huge shit.
It pretty much is. -- Yoshiki
On May 17, 2009, at 10:28 PM, Yoshiki Ohshima wrote:
At Sat, 16 May 2009 10:14:48 +0200, Stéphane Ducasse wrote:
Hi yoshiki
What did you do with code of people that passed away. It is obvious that they gave the code for squeak.
For Russel Swan, re removed his code. For Jerry Archibald, we contacted his daughter and she signed the relicencing agreement with us. For Henrik, we removed most of them and rewrite the remaining.
Now removing this code is like if we do not consider their contribution because they are dead.
I feel the same way and two of the people heirs we managed to contact with felt the same way.
Especially since henrik slept at my place....
I feel that this license process is a huge shit.
It pretty much is.
-- Yoshiki
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Hi Yoshiki, On May 15, 2009, at 20:52 , Yoshiki Ohshima wrote:
Does Pharo have ScaledDecimal and it is used? If so, that would be the biggest piece that would be removed. There wouldn't be any serious bugs that would cause major trouble otherwise.
I checked and ScaledDecimal is not used in Pharo. So should be easy to remove. (There are a few instances in the image but from literals in tests, and there are no methods called from the core that instantiate ScaledDecimals.) Adrian
ScaledDecimals are certainly not much used in Kernel. There were none in st80. But they are ANSI. Their main purpose is to ease implementation of financial apps and avoid round off errors of Floating point operations. You should ask if they are used in Seaside first. Now, re-implementing ScaledDecimals from scratch is not an heavy task. ScaledDecimals are essentially Faction with special printOn:. Nicolas 2009/5/16 Adrian Lienhard <adi@netstyle.ch>:
Hi Yoshiki,
On May 15, 2009, at 20:52 , Yoshiki Ohshima wrote:
Does Pharo have ScaledDecimal and it is used? If so, that would be the biggest piece that would be removed. There wouldn't be any serious bugs that would cause major trouble otherwise.
I checked and ScaledDecimal is not used in Pharo. So should be easy to remove. (There are a few instances in the image but from literals in tests, and there are no methods called from the core that instantiate ScaledDecimals.)
Adrian
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
2009/5/16 Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com>:
ScaledDecimals are certainly not much used in Kernel. There were none in st80. But they are ANSI.
Their main purpose is to ease implementation of financial apps and avoid round off errors of Floating point operations. You should ask if they are used in Seaside first.
Now, re-implementing ScaledDecimals from scratch is not an heavy task. ScaledDecimals are essentially Faction with special printOn:.
I mean Fraction of course
Nicolas
2009/5/16 Adrian Lienhard <adi@netstyle.ch>:
Hi Yoshiki,
On May 15, 2009, at 20:52 , Yoshiki Ohshima wrote:
Does Pharo have ScaledDecimal and it is used? If so, that would be the biggest piece that would be removed. There wouldn't be any serious bugs that would cause major trouble otherwise.
I checked and ScaledDecimal is not used in Pharo. So should be easy to remove. (There are a few instances in the image but from literals in tests, and there are no methods called from the core that instantiate ScaledDecimals.)
Adrian
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
I followed the advices and started to give a try with the latest VM 4.1.1beta2U and 10306 |m d f| m := MethodHistoryDatabase new. MethodHistoryChangeList ignoreNonExsiting: false. m readFile: 'SqueakV1.sources' encodingName: 'mac-roman'. d := FileDirectory default directoryNamed: 'history-updates'. #('PreBeta' 'Sqk20Beta') do: [:v | m readFilesIn: d updateFile: 'updates.list' versionName: v.]. m readFile: 'SqueakV2.sources' encodingName: 'mac-roman'. #('Squeak2.0' 'Squeak2.1' 'Squeak2.2beta' 'Squeak2.2' 'Squeak2.3' 'Squeak2.4' 'Squeak2.5test' 'Squeak2.5' 'Squeak2.6alpha' 'Squeak2.6' 'Squeak2.7alpha' 'Squeak2.7' 'Squeak2.8alpha' 'Squeak2.8' 'Squeak2.9alpha') do: [:v | m readFilesIn: d updateFile: 'updates.list' versionName: v.]. m readFile: 'SqueakV3.sources' encodingName: 'mac-roman'. #('Squeak3.0' 'Squeak3.1alpha' 'Squeak3.1beta' 'Squeak3.2alpha' 'Squeak3.2gamma' 'Squeak3.2' 'Squeak3.2.1' 'Squeak3.4alpha' 'Squeak3.4beta' 'Squeak3.4gamma' 'Squeak3.5alpha' 'Squeak3.5beta' 'Squeak3.5gamma' 'Squeak3.6alpha' 'Squeak3.6beta' 'Squeak3.6gamma' 'Squeak3.6') do: [:v | m readFilesIn: d updateFile: 'updates.list' versionName: v.]. d := FileDirectory default directoryNamed: 'squeak.org-updates'. #('Squeak3.7alpha' 'Squeak3.7beta' 'Squeak3.7gamma' 'Squeak3.7' 'Squeak3.8alpha' 'Squeak3.8beta' 'Squeak3.8gamma') do: [:v | m readFilesIn: d updateFile: 'SqCupdates.list' versionName: v.]. m readFile: 'Squeak3.9b-7053.changes' encodingName: 'utf-8'. m readFile: 'SqueakV39.sources' encodingName: 'utf-8'. m readFile: 'Squeak39g-7056+3102-7179.changes' encodingName: 'utf-8'. b := MethodHistoryBrowser new. b database: m. MethodHistoryBrowser openBrowserView: (b openEditString: nil) label: 'foo'. Authorship initialize. authors := Authorship new. authors database: m. missing := authors missingAuthorsWithMethods. returned := authors returnedAuthorsWithMethods. notAccounted := authors notAccounted. historicalMissing := authors historicalMissingAuthorsWithMethods. historicalNotAccounted := authors historicalNotAccounted. f _ FileStream newFileNamed: 'currentMissing.html'. m writeDictWithVersion: missing toHTMLFileNameOn: f title: 'AgreementMissingPharo' explanationFileName: nil. f close. m writeDict: missing toFileName: 'missingPharo.txt'. missing at: ((m at: #Debugger at: #buildMorphicNotifierLabelled:message:) at: 3) author missing I got From: ghjg To: Pharo-project@lists.gforge.inria.fr Subject: [BUG]UTF8TextConverter(Object)>>error: here insert explanation of what you were doing, suspect changes you've made and so forth. 15 May 2009 9:42:37 pm VM: Mac OS - intel - 1056 - Squeak3.8.1 of '28 Aug 2006' [latest update: #6747] Squeak VM 4.1.1b2 Image: Pharo0.1 [Latest update: #10306] SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir /Data/squeak4.0-relicenseTools/history Trusted Dir /foobar/tooBar/forSqueak/bogus Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My Squeak UTF8TextConverter(Object)>>error: Receiver: an UTF8TextConverter Arguments and temporary variables: aString: 'Invalid utf8 input detected' Receiver's instance variables: an UTF8TextConverter UTF8TextConverter>>errorMalformedInput Receiver: an UTF8TextConverter Arguments and temporary variables: Receiver's instance variables: an UTF8TextConverter UTF8TextConverter>>nextFromStream: Receiver: an UTF8TextConverter Arguments and temporary variables: aStream: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/ history/Pharo0.1C...etc... character1: $ value1: 160 character2: Character tab value2: 9 unicode: nil character3: Character tab value3: 9 character4: nil value4: nil Receiver's instance variables: an UTF8TextConverter MultiByteFileStream>>next Receiver: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/ history/Pharo0.1Core-10306clreadytowo...etc... Arguments and temporary variables: char: nil secondChar: nil state: nil Receiver's instance variables: MultiByteFileStream(PositionableStream)>>nextChunk Receiver: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/ history/Pharo0.1Core-10306clreadytowo...etc... Arguments and temporary variables: terminator: $! out: a WriteStream 'doesNotUnderstand: aMessage "Handle the fact that there ...etc... ch: Character cr Receiver's instance variables: MultiByteFileStream(PositionableStream)>>nextChunkText Receiver: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/ history/Pharo0.1Core-10306clreadytowo...etc... Arguments and temporary variables: string: nil runsRaw: nil strm: nil runs: nil peek: nil pos: nil Receiver's instance variables: [] in RemoteString>>text Receiver: a RemoteString Arguments and temporary variables: theFile: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/ history/Pharo0.1C...etc... Receiver's instance variables: sourceFileNumber: 2 filePositionHi: 10007336 BlockClosure>>ensure: Receiver: [closure] in RemoteString>>text Arguments and temporary variables: aBlock: [closure] in RemoteString>>text returnValue: nil b: nil Receiver's instance variables: outerContext: RemoteString>>text startpc: 72 numArgs: 0 RemoteString>>text Receiver: a RemoteString Arguments and temporary variables: theFile: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/ history/Pharo0.1C...etc... Receiver's instance variables: sourceFileNumber: 2 filePositionHi: 10007336 CompiledMethod>>getSourceFromFile Receiver: a CompiledMethod (838) Arguments and temporary variables: position: 10007336 Receiver's instance variables: a CompiledMethod (838) CompiledMethod>>methodNode Receiver: a CompiledMethod (838) Arguments and temporary variables: aClass: Object source: nil Receiver's instance variables: a CompiledMethod (838) [] in DebuggerMethodMap class>>forMethod: Receiver: DebuggerMethodMap Arguments and temporary variables: aMethod: a CompiledMethod (838) Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#abstractSourceMap->a CompiledMethod (1628) #for...etc... format: 140 instanceVariables: #('timestamp' 'methodReference' 'methodNode' 'abstractSource...etc... organization: ('initialize-release' forMethod:methodNode:) ('accessing' markRec...etc... subclasses: {DebuggerMethodMapForBlueBookMethods . DebuggerMethodMapForClosureC...etc... name: #DebuggerMethodMap classPool: a Dictionary(#MapCache->a WeakIdentityKeyDictionary(a CompiledMethod...etc... sharedPools: nil environment: Smalltalk category: #'Tools-Debugger' traitComposition: nil localSelectors: nil WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent: Receiver: a WeakIdentityKeyDictionary(a CompiledMethod (1637)->a DebuggerMethodMapForClosureCompiled...etc... Arguments and temporary variables: key: a CompiledMethod (838) aBlock: [closure] in DebuggerMethodMap class>>forMethod: assoc: nil Receiver's instance variables: tally: 16 array: an Array(nil nil a CompiledMethod (2402)->a DebuggerMethodMapForClosureC...etc... DebuggerMethodMap class>>forMethod: Receiver: DebuggerMethodMap Arguments and temporary variables: aMethod: a CompiledMethod (838) Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#abstractSourceMap->a CompiledMethod (1628) #for...etc... format: 140 instanceVariables: #('timestamp' 'methodReference' 'methodNode' 'abstractSource...etc... organization: ('initialize-release' forMethod:methodNode:) ('accessing' markRec...etc... subclasses: {DebuggerMethodMapForBlueBookMethods . DebuggerMethodMapForClosureC...etc... name: #DebuggerMethodMap classPool: a Dictionary(#MapCache->a WeakIdentityKeyDictionary(a CompiledMethod...etc... sharedPools: nil environment: Smalltalk category: #'Tools-Debugger' traitComposition: nil localSelectors: nil CompiledMethod>>debuggerMap Receiver: a CompiledMethod (838) Arguments and temporary variables: Receiver's instance variables: a CompiledMethod (838) MethodContext(InstructionStream)>>debuggerMap Receiver: ByteString(Object)>>doesNotUnderstand: #missing Arguments and temporary variables: Receiver's instance variables: sender: UndefinedObject>>DoIt pc: 50 stackp: 3 method: a CompiledMethod (838) closureOrNil: nil receiver: 'hg' Debugger>>selectedMessage Receiver: a Debugger Arguments and temporary variables: Receiver's instance variables: dependents: a DependentsArray(a PreDebugWindow(2623) a PluggableListMorph(853))...etc... contents: nil currentCompiledMethod: nil contentsSymbol: nil interruptedProcess: a Process in Debugger class>>openOn:context:label:contents:...etc... interruptedController: nil contextStack: an OrderedCollection(ByteString(Object)>>doesNotUnderstand: #miss...etc... contextStackTop: ByteString(Object)>>doesNotUnderstand: #missing contextStackIndex: 1 contextStackList: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: ...etc... receiverInspector: an Inspector contextVariablesInspector: a ContextVariablesInspector externalInterrupt: false proceedValue: nil selectingPC: true debuggerMap: nil savedCursor: ((CursorWithMask extent: 16@16 depth: 1 fromArray: #( 2r0 2...etc... isolationHead: nil failedProject: nil errorWasInUIProcess: true labelString: nil Debugger>>contextStackIndex:oldContextWas: Receiver: a Debugger Arguments and temporary variables: anInteger: 1 oldContext: nil isNewMethod: true selectedContextSlotName: nil index: nil Receiver's instance variables: dependents: a DependentsArray(a PreDebugWindow(2623) a PluggableListMorph(853))...etc... contents: nil currentCompiledMethod: nil contentsSymbol: nil interruptedProcess: a Process in Debugger class>>openOn:context:label:contents:...etc... interruptedController: nil contextStack: an OrderedCollection(ByteString(Object)>>doesNotUnderstand: #miss...etc... contextStackTop: ByteString(Object)>>doesNotUnderstand: #missing contextStackIndex: 1 contextStackList: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: ...etc... receiverInspector: an Inspector contextVariablesInspector: a ContextVariablesInspector externalInterrupt: false proceedValue: nil selectingPC: true debuggerMap: nil savedCursor: ((CursorWithMask extent: 16@16 depth: 1 fromArray: #( 2r0 2...etc... isolationHead: nil failedProject: nil errorWasInUIProcess: true labelString: nil Debugger>>toggleContextStackIndex: Receiver: a Debugger Arguments and temporary variables: anInteger: 1 Receiver's instance variables: dependents: a DependentsArray(a PreDebugWindow(2623) a PluggableListMorph(853))...etc... contents: nil currentCompiledMethod: nil contentsSymbol: nil interruptedProcess: a Process in Debugger class>>openOn:context:label:contents:...etc... interruptedController: nil contextStack: an OrderedCollection(ByteString(Object)>>doesNotUnderstand: #miss...etc... contextStackTop: ByteString(Object)>>doesNotUnderstand: #missing contextStackIndex: 1 contextStackList: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: ...etc... receiverInspector: an Inspector contextVariablesInspector: a ContextVariablesInspector externalInterrupt: false proceedValue: nil selectingPC: true debuggerMap: nil savedCursor: ((CursorWithMask extent: 16@16 depth: 1 fromArray: #( 2r0 2...etc... isolationHead: nil failedProject: nil errorWasInUIProcess: true labelString: nil Debugger>>debugAt: Receiver: a Debugger Arguments and temporary variables: anInteger: 1 Receiver's instance variables: dependents: a DependentsArray(a PreDebugWindow(2623) a PluggableListMorph(853))...etc... contents: nil currentCompiledMethod: nil contentsSymbol: nil interruptedProcess: a Process in Debugger class>>openOn:context:label:contents:...etc... interruptedController: nil contextStack: an OrderedCollection(ByteString(Object)>>doesNotUnderstand: #miss...etc... contextStackTop: ByteString(Object)>>doesNotUnderstand: #missing contextStackIndex: 1 contextStackList: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: ...etc... receiverInspector: an Inspector contextVariablesInspector: a ContextVariablesInspector externalInterrupt: false proceedValue: nil selectingPC: true debuggerMap: nil savedCursor: ((CursorWithMask extent: 16@16 depth: 1 fromArray: #( 2r0 2...etc... isolationHead: nil failedProject: nil errorWasInUIProcess: true labelString: nil PluggableListMorph>>changeModelSelection: Receiver: a PluggableListMorph(853) Arguments and temporary variables: anInteger: 1 Receiver's instance variables: bounds: 319@384 corner: 759@473 owner: a PreDebugWindow(2623) submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197)) fullBounds: 319@384 corner: 759@473 color: Color white extension: a MorphExtension (2096) [locked] [other: (layoutFrame -
a LayoutF...etc... borderWidth: 1 borderColor: (Color r: 0.667 g: 0.667 b: 0.667) model: a Debugger slotName: nil open: false scrollBar: a ScrollBar(3036) scroller: a TransformMorph(1197) retractableScrollBar: false scrollBarOnLeft: false getMenuSelector: nil getMenuTitleSelector: nil hasFocus: false hScrollBar: a ScrollBar(3648) list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: #missing' 'U...etc... getListSelector: #contextStackList getListSizeSelector: nil getListElementSelector: nil getIndexSelector: #contextStackIndex setIndexSelector: #debugAt: keystrokeActionSelector: nil autoDeselect: true lastKeystrokeTime: 0 lastKeystrokes: '' doubleClickSelector: nil handlesBasicKeys: nil potentialDropRow: nil listMorph: a LazyListMorph(2276) hScrollRangeCache: nil
PluggableListMorph>>mouseUp: Receiver: a PluggableListMorph(853) Arguments and temporary variables: event: [442@390 mouseUp 14061207 nil] row: 1 mdr: 1 Receiver's instance variables: bounds: 319@384 corner: 759@473 owner: a PreDebugWindow(2623) submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197)) fullBounds: 319@384 corner: 759@473 color: Color white extension: a MorphExtension (2096) [locked] [other: (layoutFrame -
a LayoutF...etc... borderWidth: 1 borderColor: (Color r: 0.667 g: 0.667 b: 0.667) model: a Debugger slotName: nil open: false scrollBar: a ScrollBar(3036) scroller: a TransformMorph(1197) retractableScrollBar: false scrollBarOnLeft: false getMenuSelector: nil getMenuTitleSelector: nil hasFocus: false hScrollBar: a ScrollBar(3648) list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: #missing' 'U...etc... getListSelector: #contextStackList getListSizeSelector: nil getListElementSelector: nil getIndexSelector: #contextStackIndex setIndexSelector: #debugAt: keystrokeActionSelector: nil autoDeselect: true lastKeystrokeTime: 0 lastKeystrokes: '' doubleClickSelector: nil handlesBasicKeys: nil potentialDropRow: nil listMorph: a LazyListMorph(2276) hScrollRangeCache: nil
PluggableListMorph(Morph)>>handleMouseUp: Receiver: a PluggableListMorph(853) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] Receiver's instance variables: bounds: 319@384 corner: 759@473 owner: a PreDebugWindow(2623) submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197)) fullBounds: 319@384 corner: 759@473 color: Color white extension: a MorphExtension (2096) [locked] [other: (layoutFrame -
a LayoutF...etc... borderWidth: 1 borderColor: (Color r: 0.667 g: 0.667 b: 0.667) model: a Debugger slotName: nil open: false scrollBar: a ScrollBar(3036) scroller: a TransformMorph(1197) retractableScrollBar: false scrollBarOnLeft: false getMenuSelector: nil getMenuTitleSelector: nil hasFocus: false hScrollBar: a ScrollBar(3648) list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: #missing' 'U...etc... getListSelector: #contextStackList getListSizeSelector: nil getListElementSelector: nil getIndexSelector: #contextStackIndex setIndexSelector: #debugAt: keystrokeActionSelector: nil autoDeselect: true lastKeystrokeTime: 0 lastKeystrokes: '' doubleClickSelector: nil handlesBasicKeys: nil potentialDropRow: nil listMorph: a LazyListMorph(2276) hScrollRangeCache: nil
MouseButtonEvent>>sentTo: Receiver: [442@390 mouseUp 14061207 nil] Arguments and temporary variables: anObject: a PluggableListMorph(853) Receiver's instance variables: timeStamp: 14061207 source: a HandMorph(3216) windowIndex: nil type: #mouseUp buttons: 0 position: 442@390 handler: nil wasHandled: true whichButton: 4 PluggableListMorph(Morph)>>handleEvent: Receiver: a PluggableListMorph(853) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] Receiver's instance variables: bounds: 319@384 corner: 759@473 owner: a PreDebugWindow(2623) submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197)) fullBounds: 319@384 corner: 759@473 color: Color white extension: a MorphExtension (2096) [locked] [other: (layoutFrame -
a LayoutF...etc... borderWidth: 1 borderColor: (Color r: 0.667 g: 0.667 b: 0.667) model: a Debugger slotName: nil open: false scrollBar: a ScrollBar(3036) scroller: a TransformMorph(1197) retractableScrollBar: false scrollBarOnLeft: false getMenuSelector: nil getMenuTitleSelector: nil hasFocus: false hScrollBar: a ScrollBar(3648) list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: #missing' 'U...etc... getListSelector: #contextStackList getListSizeSelector: nil getListElementSelector: nil getIndexSelector: #contextStackIndex setIndexSelector: #debugAt: keystrokeActionSelector: nil autoDeselect: true lastKeystrokeTime: 0 lastKeystrokes: '' doubleClickSelector: nil handlesBasicKeys: nil potentialDropRow: nil listMorph: a LazyListMorph(2276) hScrollRangeCache: nil
MorphicEventDispatcher>>dispatchDefault:with: Receiver: a MorphicEventDispatcher Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] aMorph: a PluggableListMorph(853) localEvt: [442@390 mouseUp 14061207 nil] index: 3 child: a TransformMorph(1197) morphs: an Array(a ScrollBar(3036) a TransformMorph(1197)) inside: true Receiver's instance variables: lastType: #mouseUp lastDispatch: #dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: Receiver: a MorphicEventDispatcher Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] aMorph: a PluggableListMorph(853) Receiver's instance variables: lastType: #mouseUp lastDispatch: #dispatchDefault:with: PluggableListMorph(Morph)>>processEvent:using: Receiver: a PluggableListMorph(853) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] defaultDispatcher: a MorphicEventDispatcher Receiver's instance variables: bounds: 319@384 corner: 759@473 owner: a PreDebugWindow(2623) submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197)) fullBounds: 319@384 corner: 759@473 color: Color white extension: a MorphExtension (2096) [locked] [other: (layoutFrame -
a LayoutF...etc... borderWidth: 1 borderColor: (Color r: 0.667 g: 0.667 b: 0.667) model: a Debugger slotName: nil open: false scrollBar: a ScrollBar(3036) scroller: a TransformMorph(1197) retractableScrollBar: false scrollBarOnLeft: false getMenuSelector: nil getMenuTitleSelector: nil hasFocus: false hScrollBar: a ScrollBar(3648) list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: #missing' 'U...etc... getListSelector: #contextStackList getListSizeSelector: nil getListElementSelector: nil getIndexSelector: #contextStackIndex setIndexSelector: #debugAt: keystrokeActionSelector: nil autoDeselect: true lastKeystrokeTime: 0 lastKeystrokes: '' doubleClickSelector: nil handlesBasicKeys: nil potentialDropRow: nil listMorph: a LazyListMorph(2276) hScrollRangeCache: nil
PluggableListMorph(Morph)>>processEvent: Receiver: a PluggableListMorph(853) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] Receiver's instance variables: bounds: 319@384 corner: 759@473 owner: a PreDebugWindow(2623) submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197)) fullBounds: 319@384 corner: 759@473 color: Color white extension: a MorphExtension (2096) [locked] [other: (layoutFrame -
a LayoutF...etc... borderWidth: 1 borderColor: (Color r: 0.667 g: 0.667 b: 0.667) model: a Debugger slotName: nil open: false scrollBar: a ScrollBar(3036) scroller: a TransformMorph(1197) retractableScrollBar: false scrollBarOnLeft: false getMenuSelector: nil getMenuTitleSelector: nil hasFocus: false hScrollBar: a ScrollBar(3648) list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: #missing' 'U...etc... getListSelector: #contextStackList getListSizeSelector: nil getListElementSelector: nil getIndexSelector: #contextStackIndex setIndexSelector: #debugAt: keystrokeActionSelector: nil autoDeselect: true lastKeystrokeTime: 0 lastKeystrokes: '' doubleClickSelector: nil handlesBasicKeys: nil potentialDropRow: nil listMorph: a LazyListMorph(2276) hScrollRangeCache: nil
PluggableListMorph>>handleFocusEvent: Receiver: a PluggableListMorph(853) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] Receiver's instance variables: bounds: 319@384 corner: 759@473 owner: a PreDebugWindow(2623) submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197)) fullBounds: 319@384 corner: 759@473 color: Color white extension: a MorphExtension (2096) [locked] [other: (layoutFrame -
a LayoutF...etc... borderWidth: 1 borderColor: (Color r: 0.667 g: 0.667 b: 0.667) model: a Debugger slotName: nil open: false scrollBar: a ScrollBar(3036) scroller: a TransformMorph(1197) retractableScrollBar: false scrollBarOnLeft: false getMenuSelector: nil getMenuTitleSelector: nil hasFocus: false hScrollBar: a ScrollBar(3648) list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand: #missing' 'U...etc... getListSelector: #contextStackList getListSizeSelector: nil getListElementSelector: nil getIndexSelector: #contextStackIndex setIndexSelector: #debugAt: keystrokeActionSelector: nil autoDeselect: true lastKeystrokeTime: 0 lastKeystrokes: '' doubleClickSelector: nil handlesBasicKeys: nil potentialDropRow: nil listMorph: a LazyListMorph(2276) hScrollRangeCache: nil
[] in HandMorph>>sendFocusEvent:to:clear: Receiver: a HandMorph(3216) Arguments and temporary variables: <<error during printing> Receiver's instance variables: bounds: 754@479 corner: 770@495 owner: a PasteUpMorph(1622) [world] submorphs: #() fullBounds: 754@479 corner: 770@495 color: Color blue extension: a MorphExtension (539) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [754@479 mouseUp 20587660 nil] targetOffset: 27@13 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 20587660 754 479 0 0 0 1) lastKeyScanCode: 5 combinedChar: nil [] in PasteUpMorph>>becomeActiveDuring: Receiver: a PasteUpMorph(1622) [world] Arguments and temporary variables: <<error during printing> Receiver's instance variables: bounds: 0@0 corner: 1217@772 owner: nil submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(1690) a SystemWindow(30...etc... fullBounds: nil color: (Color r: 0.97 g: 0.98 b: 1.0) extension: a MorphExtension (2543) [eventHandler = an EventHandler] [other: (...etc... borderWidth: 0 borderColor: (Color r: 0.03 g: 0.02 b: 0.0) presenter: a Presenter (1246) model: a MorphicModel(1926) cursor: 1 padding: 3 backgroundMorph: nil isPartsBin: nil autoLineLayout: false indicateCursor: nil resizeToFit: nil wantsMouseOverHalos: nil worldState: a WorldState griddingOn: nil BlockClosure>>on:do: Receiver: [closure] in PasteUpMorph>>becomeActiveDuring: Arguments and temporary variables: exception: Error handlerAction: [closure] in PasteUpMorph>>becomeActiveDuring: handlerActive: false Receiver's instance variables: outerContext: PasteUpMorph>>becomeActiveDuring: startpc: 67 numArgs: 0 PasteUpMorph>>becomeActiveDuring: Receiver: a PasteUpMorph(1622) [world] Arguments and temporary variables: aBlock: [closure] in HandMorph>>sendFocusEvent:to:clear: priorWorld: a PasteUpMorph(1622) [world] priorHand: a HandMorph(3216) priorEvent: [442@390 mouseOver nil nil] Receiver's instance variables: bounds: 0@0 corner: 1217@772 owner: nil submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(1690) a SystemWindow(30...etc... fullBounds: nil color: (Color r: 0.97 g: 0.98 b: 1.0) extension: a MorphExtension (2543) [eventHandler = an EventHandler] [other: (...etc... borderWidth: 0 borderColor: (Color r: 0.03 g: 0.02 b: 0.0) presenter: a Presenter (1246) model: a MorphicModel(1926) cursor: 1 padding: 3 backgroundMorph: nil isPartsBin: nil autoLineLayout: false indicateCursor: nil resizeToFit: nil wantsMouseOverHalos: nil worldState: a WorldState griddingOn: nil HandMorph>>sendFocusEvent:to:clear: Receiver: a HandMorph(3216) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] focusHolder: a PluggableListMorph(853) aBlock: [closure] in HandMorph>>sendMouseEvent: w: a PasteUpMorph(1622) [world] result: #(nil) Receiver's instance variables: bounds: 754@479 corner: 770@495 owner: a PasteUpMorph(1622) [world] submorphs: #() fullBounds: 754@479 corner: 770@495 color: Color blue extension: a MorphExtension (539) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [754@479 mouseUp 20587660 nil] targetOffset: 27@13 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 20587660 754 479 0 0 0 1) lastKeyScanCode: 5 combinedChar: nil HandMorph>>sendEvent:focus:clear: Receiver: a HandMorph(3216) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] focusHolder: a PluggableListMorph(853) aBlock: [closure] in HandMorph>>sendMouseEvent: result: nil Receiver's instance variables: bounds: 754@479 corner: 770@495 owner: a PasteUpMorph(1622) [world] submorphs: #() fullBounds: 754@479 corner: 770@495 color: Color blue extension: a MorphExtension (539) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [754@479 mouseUp 20587660 nil] targetOffset: 27@13 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 20587660 754 479 0 0 0 1) lastKeyScanCode: 5 combinedChar: nil HandMorph>>sendMouseEvent: Receiver: a HandMorph(3216) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] Receiver's instance variables: bounds: 754@479 corner: 770@495 owner: a PasteUpMorph(1622) [world] submorphs: #() fullBounds: 754@479 corner: 770@495 color: Color blue extension: a MorphExtension (539) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [754@479 mouseUp 20587660 nil] targetOffset: 27@13 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 20587660 754 479 0 0 0 1) lastKeyScanCode: 5 combinedChar: nil HandMorph>>handleEvent: Receiver: a HandMorph(3216) Arguments and temporary variables: anEvent: [442@390 mouseUp 14061207 nil] evt: [442@390 mouseUp 14061207 nil] ofs: nil Receiver's instance variables: bounds: 754@479 corner: 770@495 owner: a PasteUpMorph(1622) [world] submorphs: #() fullBounds: 754@479 corner: 770@495 color: Color blue extension: a MorphExtension (539) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [754@479 mouseUp 20587660 nil] targetOffset: 27@13 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 20587660 754 479 0 0 0 1) lastKeyScanCode: 5 combinedChar: nil HandMorph>>processEvents Receiver: a HandMorph(3216) Arguments and temporary variables: evt: [442@390 mouseUp 14061207 nil] evtBuf: #(1 14061207 442 390 0 0 0 1) type: 1 hadAny: false Receiver's instance variables: bounds: 754@479 corner: 770@495 owner: a PasteUpMorph(1622) [world] submorphs: #() fullBounds: 754@479 corner: 770@495 color: Color blue extension: a MorphExtension (539) [eventHandler = an EventHandler] mouseFocus: nil keyboardFocus: nil eventListeners: nil mouseListeners: nil keyboardListeners: nil mouseClickState: nil mouseOverHandler: a MouseOverHandler lastMouseEvent: [754@479 mouseUp 20587660 nil] targetOffset: 27@13 damageRecorder: a DamageRecorder cacheCanvas: nil cachedCanvasHasHoles: true temporaryCursor: nil temporaryCursorOffset: nil hardwareCursor: nil hasChanged: true savedPatch: nil userInitials: '' lastEventBuffer: #(1 20587660 754 479 0 0 0 1) lastKeyScanCode: 5 combinedChar: nil --- The full stack --- UTF8TextConverter(Object)>>error: UTF8TextConverter>>errorMalformedInput UTF8TextConverter>>nextFromStream: MultiByteFileStream>>next MultiByteFileStream(PositionableStream)>>nextChunk MultiByteFileStream(PositionableStream)>>nextChunkText [] in RemoteString>>text BlockClosure>>ensure: RemoteString>>text CompiledMethod>>getSourceFromFile CompiledMethod>>methodNode [] in DebuggerMethodMap class>>forMethod: WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent: DebuggerMethodMap class>>forMethod: CompiledMethod>>debuggerMap MethodContext(InstructionStream)>>debuggerMap Debugger>>selectedMessage Debugger>>contextStackIndex:oldContextWas: Debugger>>toggleContextStackIndex: Debugger>>debugAt: PluggableListMorph>>changeModelSelection: PluggableListMorph>>mouseUp: PluggableListMorph(Morph)>>handleMouseUp: MouseButtonEvent>>sentTo: PluggableListMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PluggableListMorph(Morph)>>processEvent:using: PluggableListMorph(Morph)>>processEvent: PluggableListMorph>>handleFocusEvent: [] in HandMorph>>sendFocusEvent:to:clear: [] in PasteUpMorph>>becomeActiveDuring: BlockClosure>>on:do: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: HandMorph>>sendEvent:focus:clear: HandMorph>>sendMouseEvent: HandMorph>>handleEvent: HandMorph>>processEvents - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess [] in BlockClosure>>newProcess
I tried to see if my signature is filed; I was quite excited to send postage all the way to France, but do not see my name in the signature list, or anywhere for that matter...but (unfortunately), "RobRothwell" shows up, for example, in Class DisplayScreen>>fullScreenOn... Rob On Fri, May 15, 2009 at 1:55 PM, Stéphane Ducasse <stephane.ducasse@inria.fr
wrote:
Hi all (and matthew we need your guidance/help)
We really want to get pharo 1.0 license clean. It would be bad that 1.0 is not. But 1.0 should get out before summer.
Here is a collection of all the information I collected on the topic:
Here what matthew wrote
I've done the first step and done a full audit, using Yoshiki's tools [1], of all the code in Squeak 3.10.2, with the exception of four packages: - Monticello - SUnit, TestRunner, and SUnitImproved - Universes - Traits
I also applied all of yoshiki's etoys changes to 3.10.2. The algorithm that Yoshiki seemed to follow when cleaning etoys is: - If the method can be easily deleted, delete it - Otherwise, use the historical image [1] to revert to the latest version before the problematic author - Fix any bugs this causes
I think we can use the same procedure. Perhaps Yoshiki will comment.
So, to help with the relicense, grab the historical image[1], check out the license audit [2], leave a note on mantis about what you think you'll work on, and start rolling out change sets. For your convenience, all of the license audits are included both in the relicensing tools download and on mantis. I'll try to keep both up to date as we progress with the relicense
[1] The tools I've been using to do the relicense: http://ftp.squeak.org/4.0alpha/squeak4.0-relicensingTools.zip see also:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586... http://www.squeaksource.com/MethodAuthorship.html
[2] The 4.0 relicense mantis issue: http://bugs.squeak.org/view.php?id=6989
The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
here is another email from matthew
On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
I need your guidance for the MIT conversion effort of Pharo Do you have some cycles to help me and telling me how to proceed? I'm on holidays (so working remotely so I may allocate some time on that).
I can help you after school gets out in a week. I need to do a quick count of how many lines of code need to be fixed in squeak for submission to SFLC. I can do the same for Pharo. I don't know how strenuous you want to be in your license conversion.
The next 3 steps in the license conversion process are, in no particular order:
- get a document from yoshiki documenting how etoys was relicensed (and, by extension, cuis). The board will overview it with the help of SFLC and determine if it is good enough. - The board will publish a statement about what is and is not a trivial-enough change to ignore. - I will count up the lines of code to be converted, and determine how many of them are trivial and non-trivial
You should chat with Randal Schwartz about what you need to decide before you can start relicensing, and what you need to document in case your relicense needs to be reviewed in the future. Yoshiki and Juan did not do this and thus we have no evidence yet that Yoshiki's relicense is strong enough.
I documented the priorities for squeak 4.0 in this email:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134083....
You should probably figure out your priorities for the relicense as well, so you know whose standards you need to meet.
Since that email was written, Randal has indeed heard back from SFLC, but I haven't heard what they had to say yet.
-- Matthew Fulmer -- http://mtfulmer.wordpress.com/
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Hi rob you are in the list of ok commiters now when I run the script I did not add the pharoers to the list of authors. I should do that. Now are you telling to me that you did the following steps and run it without getting a debugger? On which system are you? Stef On May 15, 2009, at 11:02 PM, Rob Rothwell wrote:
I tried to see if my signature is filed; I was quite excited to send postage all the way to France, but do not see my name in the signature list, or anywhere for that matter...but (unfortunately), "RobRothwell" shows up, for example, in Class DisplayScreen>>fullScreenOn...
Rob
On Fri, May 15, 2009 at 1:55 PM, Stéphane Ducasse <stephane.ducasse@inria.fr
wrote: Hi all (and matthew we need your guidance/help)
We really want to get pharo 1.0 license clean. It would be bad that 1.0 is not. But 1.0 should get out before summer.
Here is a collection of all the information I collected on the topic:
Here what matthew wrote
I've done the first step and done a full audit, using Yoshiki's tools [1], of all the code in Squeak 3.10.2, with the exception of four packages: - Monticello - SUnit, TestRunner, and SUnitImproved - Universes - Traits
I also applied all of yoshiki's etoys changes to 3.10.2. The algorithm that Yoshiki seemed to follow when cleaning etoys is: - If the method can be easily deleted, delete it - Otherwise, use the historical image [1] to revert to the latest version before the problematic author - Fix any bugs this causes
I think we can use the same procedure. Perhaps Yoshiki will comment.
So, to help with the relicense, grab the historical image[1], check out the license audit [2], leave a note on mantis about what you think you'll work on, and start rolling out change sets. For your convenience, all of the license audits are included both in the relicensing tools download and on mantis. I'll try to keep both up to date as we progress with the relicense
[1] The tools I've been using to do the relicense: http://ftp.squeak.org/4.0alpha/squeak4.0- relicensingTools.zip see also: http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586... http://www.squeaksource.com/MethodAuthorship.html
[2] The 4.0 relicense mantis issue: http://bugs.squeak.org/view.php?id=6989
The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
here is another email from matthew
On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
I need your guidance for the MIT conversion effort of Pharo Do you have some cycles to help me and telling me how to proceed? I'm on holidays (so working remotely so I may allocate some time on that).
I can help you after school gets out in a week. I need to do a quick count of how many lines of code need to be fixed in squeak for submission to SFLC. I can do the same for Pharo. I don't know how strenuous you want to be in your license conversion.
The next 3 steps in the license conversion process are, in no particular order:
- get a document from yoshiki documenting how etoys was relicensed (and, by extension, cuis). The board will overview it with the help of SFLC and determine if it is good enough. - The board will publish a statement about what is and is not a trivial-enough change to ignore. - I will count up the lines of code to be converted, and determine how many of them are trivial and non-trivial
You should chat with Randal Schwartz about what you need to decide before you can start relicensing, and what you need to document in case your relicense needs to be reviewed in the future. Yoshiki and Juan did not do this and thus we have no evidence yet that Yoshiki's relicense is strong enough.
I documented the priorities for squeak 4.0 in this email: http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134083....
You should probably figure out your priorities for the relicense as well, so you know whose standards you need to meet.
Since that email was written, Randal has indeed heard back from SFLC, but I haven't heard what they had to say yet.
-- Matthew Fulmer -- http://mtfulmer.wordpress.com/
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
here are the files I got not taking into account pharoer I started to add them to http://code.google.com/p/pharo/wiki/LicenseCleanEffort and put comment for the corresponding actions. Stef
Hi all I'm going over the list of authors that did not sign and will produce a list of actions. http://code.google.com/p/pharo/wiki/ResultofRelicensing We will have probably to update the authorlist with the one of pharo. Stef
Hi Stef, How did you produce the list of methods you put on the wiki page? It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages. I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker. Adrian On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
See http://code.google.com/p/pharo/issues/detail?id=816 for a MIT replacement of ScaledDecimal 2009/5/16 Adrian Lienhard <adi@netstyle.ch>:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Yes I will try to add the pharoers to the list and redo the list After that there is also a list of method which do not have author. I could not attach it to the wiki. So I will create a package with it. To answer your question read my reply to rob: this is the way I generated the list. Stef On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Aren't historic methods (Sequeak 1.0) already relicensed? 2009/5/17 Stéphane Ducasse <stephane.ducasse@inria.fr>:
Yes I will try to add the pharoers to the list and redo the list After that there is also a list of method which do not have author. I could not attach it to the wiki. So I will create a package with it.
To answer your question read my reply to rob: this is the way I generated the list.
Stef
On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Not all since some of them have no authors this files contains the methods with missing authors On May 17, 2009, at 9:48 AM, Nicolas Cellier wrote:
Aren't historic methods (Sequeak 1.0) already relicensed?
2009/5/17 Stéphane Ducasse <stephane.ducasse@inria.fr>:
Yes I will try to add the pharoers to the list and redo the list After that there is also a list of method which do not have author. I could not attach it to the wiki. So I will create a package with it.
To answer your question read my reply to rob: this is the way I generated the list.
Stef
On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
I'm confused, in checking one or two of the entries against a v1.1 squeak's v1 squeak.source I can see some methods that would be from the original push from Apple and don't have author information, then changed say as part of RAH's ANSI math updates. Are you saying because the original entry has no initials it's suspect, or because it's changed by RAH ? On 17-May-09, at 12:59 AM, Stéphane Ducasse wrote:
Not all since some of them have no authors this files contains the methods with missing authors
-- = = = ======================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ========================================================================
I do not know Frankly I do not like this issue. May be yoshiki can bring some light. I just run his scripts. On May 17, 2009, at 10:10 AM, John M McIntosh wrote:
I'm confused, in checking one or two of the entries against a v1.1 squeak's v1 squeak.source I can see some methods that would be from the original push from Apple and don't have author information, then changed say as part of RAH's ANSI math updates.
Are you saying because the original entry has no initials it's suspect, or because it's changed by RAH ?
On 17-May-09, at 12:59 AM, Stéphane Ducasse wrote:
Not all since some of them have no authors this files contains the methods with missing authors
-- = = = = = ====================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http:// www.smalltalkconsulting.com = = = = = ======================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
tx! Stef On May 17, 2009, at 10:36 PM, Yoshiki Ohshima wrote:
At Sun, 17 May 2009 11:18:09 +0200, Stéphane Ducasse wrote:
I do not know Frankly I do not like this issue. May be yoshiki can bring some light. I just run his scripts.
Any methods that existed in 1.1 (1.1x, I forgot), are covered by Apple.
-- Yoshiki
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On May 17, 2009, at 08:31 , Stéphane Ducasse wrote:
Yes I will try to add the pharoers to the list and redo the list After that there is also a list of method which do not have author. I could not attach it to the wiki. So I will create a package with it.
To answer your question read my reply to rob: this is the way I generated the list.
Well, this mail was not really helpful in getting there but I eventually managed (after an hour or two :(). So that others can produce the audit list more easily I added instructions at http://code.google.com/p/pharo/wiki/LicenseCleanEffort?ts=1242566822 As mentioned there, I created a new version of Methodauthorships and stored it in the PharoTaskForces repository. I added all authors that were previously missing but that signed the Pharo license, or that Stef identified to be his own changes but with wrong initials. With this I produced an updated list and added it to: http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242567420 So now we can start working and we need *your* help! Nicolas did a first step by implementing a new ScaledDecimal. Various stuff can be removed (e.g., the ScaleMorph). The following may help: - in the zip file (see instructions mentioned above) there are changesets from EToys - http://bugs.squeak.org/view.php?id=6989 Cheers, Adrian
Stef
On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On May 17, 2
Well, this mail was not really helpful in getting there but I eventually managed (after an hour or two :().
Ok sorry This is a copy of the mail I got from matthew and it worked for me So I thought it was precise enough.
So that others can produce the audit list more easily I added instructions at http://code.google.com/p/pharo/wiki/LicenseCleanEffort?ts=1242566822
Yes I did that. Now you should pay attention that matthew indicated that there are more recent author list available at: The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
As mentioned there, I created a new version of Methodauthorships and stored it in the PharoTaskForces repository. I added all authors that were previously missing but that signed the Pharo license, or that Stef identified to be his own changes but with wrong initials.
With this I produced an updated list and added it to:
http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242567420
So now we can start working and we need *your* help!
Nicolas did a first step by implementing a new ScaledDecimal. Various stuff can be removed (e.g., the ScaleMorph).
The following may help: - in the zip file (see instructions mentioned above) there are changesets from EToys - http://bugs.squeak.org/view.php?id=6989
Cheers, Adrian
Stef
On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
I merged in the additional authors of this repository and I updated the working list on the Wiki [1]. We currently have a total of 243 dirty methods. Does anybody recognize an author on the list that could be contacted? (one method of Bryce Kampjes is on the list but should not (will fix in the next version)). Cheers, Adrian [1] http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242581939 On May 17, 2009, at 16:02 , Stéphane Ducasse wrote:
On May 17, 2
Well, this mail was not really helpful in getting there but I eventually managed (after an hour or two :().
Ok sorry This is a copy of the mail I got from matthew and it worked for me So I thought it was precise enough.
So that others can produce the audit list more easily I added instructions at http://code.google.com/p/pharo/wiki/LicenseCleanEffort?ts=1242566822
Yes I did that. Now you should pay attention that matthew indicated that there are more recent author list available at:
The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
As mentioned there, I created a new version of Methodauthorships and stored it in the PharoTaskForces repository. I added all authors that were previously missing but that signed the Pharo license, or that Stef identified to be his own changes but with wrong initials.
With this I produced an updated list and added it to:
http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242567420
So now we can start working and we need *your* help!
Nicolas did a first step by implementing a new ScaledDecimal. Various stuff can be removed (e.g., the ScaleMorph).
The following may help: - in the zip file (see instructions mentioned above) there are changesets from EToys - http://bugs.squeak.org/view.php?id=6989
Cheers, Adrian
Stef
On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
I can send in a licence agreement. Bryce On Sun, 2009-05-17 at 19:46 +0200, Adrian Lienhard wrote:
I merged in the additional authors of this repository and I updated the working list on the Wiki [1].
We currently have a total of 243 dirty methods.
Does anybody recognize an author on the list that could be contacted? (one method of Bryce Kampjes is on the list but should not (will fix in the next version)).
Cheers, Adrian
[1] http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242581939
On May 17, 2009, at 16:02 , Stéphane Ducasse wrote:
On May 17, 2
Well, this mail was not really helpful in getting there but I eventually managed (after an hour or two :().
Ok sorry This is a copy of the mail I got from matthew and it worked for me So I thought it was precise enough.
So that others can produce the audit list more easily I added instructions at http://code.google.com/p/pharo/wiki/LicenseCleanEffort?ts=1242566822
Yes I did that. Now you should pay attention that matthew indicated that there are more recent author list available at:
The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
As mentioned there, I created a new version of Methodauthorships and stored it in the PharoTaskForces repository. I added all authors that were previously missing but that signed the Pharo license, or that Stef identified to be his own changes but with wrong initials.
With this I produced an updated list and added it to:
http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242567420
So now we can start working and we need *your* help!
Nicolas did a first step by implementing a new ScaledDecimal. Various stuff can be removed (e.g., the ScaleMorph).
The following may help: - in the zip file (see instructions mentioned above) there are changesets from EToys - http://bugs.squeak.org/view.php?id=6989
Cheers, Adrian
Stef
On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On May 17, 2009, at 21:26 , Bryce Kampjes wrote:
I can send in a licence agreement.
Yes, please do so. I somehow thought you were on the list [1] but I was wrong. Thanks, Adrian [1] http://code.google.com/p/pharo/wiki/ListOfOkCommitters
Bryce
On Sun, 2009-05-17 at 19:46 +0200, Adrian Lienhard wrote:
I merged in the additional authors of this repository and I updated the working list on the Wiki [1].
We currently have a total of 243 dirty methods.
Does anybody recognize an author on the list that could be contacted? (one method of Bryce Kampjes is on the list but should not (will fix in the next version)).
Cheers, Adrian
[1] http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242581939
On May 17, 2009, at 16:02 , Stéphane Ducasse wrote:
On May 17, 2
Well, this mail was not really helpful in getting there but I eventually managed (after an hour or two :().
Ok sorry This is a copy of the mail I got from matthew and it worked for me So I thought it was precise enough.
So that others can produce the audit list more easily I added instructions at http://code.google.com/p/pharo/wiki/LicenseCleanEffort?ts=1242566822
Yes I did that. Now you should pay attention that matthew indicated that there are more recent author list available at:
The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
As mentioned there, I created a new version of Methodauthorships and stored it in the PharoTaskForces repository. I added all authors that were previously missing but that signed the Pharo license, or that Stef identified to be his own changes but with wrong initials.
With this I produced an updated list and added it to:
http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242567420
So now we can start working and we need *your* help!
Nicolas did a first step by implementing a new ScaledDecimal. Various stuff can be removed (e.g., the ScaleMorph).
The following may help: - in the zip file (see instructions mentioned above) there are changesets from EToys - http://bugs.squeak.org/view.php?id=6989
Cheers, Adrian
Stef
On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Pleaseeeeeee! Stef On May 17, 2009, at 9:26 PM, Bryce Kampjes wrote:
I can send in a licence agreement.
Bryce
On Sun, 2009-05-17 at 19:46 +0200, Adrian Lienhard wrote:
I merged in the additional authors of this repository and I updated the working list on the Wiki [1].
We currently have a total of 243 dirty methods.
Does anybody recognize an author on the list that could be contacted? (one method of Bryce Kampjes is on the list but should not (will fix in the next version)).
Cheers, Adrian
[1] http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242581939
On May 17, 2009, at 16:02 , Stéphane Ducasse wrote:
On May 17, 2
Well, this mail was not really helpful in getting there but I eventually managed (after an hour or two :().
Ok sorry This is a copy of the mail I got from matthew and it worked for me So I thought it was precise enough.
So that others can produce the audit list more easily I added instructions at http://code.google.com/p/pharo/wiki/LicenseCleanEffort?ts=1242566822
Yes I did that. Now you should pay attention that matthew indicated that there are more recent author list available at:
The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
As mentioned there, I created a new version of Methodauthorships and stored it in the PharoTaskForces repository. I added all authors that were previously missing but that signed the Pharo license, or that Stef identified to be his own changes but with wrong initials.
With this I produced an updated list and added it to:
http://code.google.com/p/pharo/wiki/ResultofRelicensing?ts=1242567420
So now we can start working and we need *your* help!
Nicolas did a first step by implementing a new ScaledDecimal. Various stuff can be removed (e.g., the ScaleMorph).
The following may help: - in the zip file (see instructions mentioned above) there are changesets from EToys - http://bugs.squeak.org/view.php?id=6989
Cheers, Adrian
Stef
On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
Hi Stef,
How did you produce the list of methods you put on the wiki page?
It seems this will be some work, but its certainly doable. Stuff like ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be in the core anyway. We can extract them into external packages.
I suggest that when we have an up to date list that takes Pharaoers into account, we start working through it and tag each method that is fixed. Changesets can be gathered in a single task in the tracker.
Adrian
On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
Hi all
I'm going over the list of authors that did not sign and will produce a list of actions.
http://code.google.com/p/pharo/wiki/ResultofRelicensing
We will have probably to update the authorlist with the one of pharo.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
On Sat, May 16, 2009 at 2:43 AM, Stéphane Ducasse <stephane.ducasse@inria.fr
wrote:
Hi rob
you are in the list of ok commiters
Great; thanks...
now when I run the script I did not add the pharoers to the list of authors. I should do that.
Make sense! Now are you telling to me that you did the following steps and run it
without getting a debugger?
Which steps? I just loaded the mcz and browsed the class side: The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
On which system are you?
I just checked it out in a pharo0.1-10303dev09.05.1.image updated to 10306 on Windows XP Professional and everything loaded fine... Take care, Rob
On May 15, 2009, at 11:02 PM, Rob Rothwell wrote:
I tried to see if my signature is filed; I was quite excited to send postage all the way to France, but do not see my name in the signature list, or anywhere for that matter...but (unfortunately), "RobRothwell" shows up, for example, in Class DisplayScreen>>fullScreenOn...
Rob
On Fri, May 15, 2009 at 1:55 PM, Stéphane Ducasse < stephane.ducasse@inria.fr
wrote: Hi all (and matthew we need your guidance/help)
We really want to get pharo 1.0 license clean. It would be bad that 1.0 is not. But 1.0 should get out before summer.
Here is a collection of all the information I collected on the topic:
Here what matthew wrote
I've done the first step and done a full audit, using Yoshiki's tools [1], of all the code in Squeak 3.10.2, with the exception of four packages: - Monticello - SUnit, TestRunner, and SUnitImproved - Universes - Traits
I also applied all of yoshiki's etoys changes to 3.10.2. The algorithm that Yoshiki seemed to follow when cleaning etoys is: - If the method can be easily deleted, delete it - Otherwise, use the historical image [1] to revert to the latest version before the problematic author - Fix any bugs this causes
I think we can use the same procedure. Perhaps Yoshiki will comment.
So, to help with the relicense, grab the historical image[1], check out the license audit [2], leave a note on mantis about what you think you'll work on, and start rolling out change sets. For your convenience, all of the license audits are included both in the relicensing tools download and on mantis. I'll try to keep both up to date as we progress with the relicense
[1] The tools I've been using to do the relicense: http://ftp.squeak.org/4.0alpha/squeak4.0- relicensingTools.zip see also:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586...
http://www.squeaksource.com/MethodAuthorship.html
[2] The 4.0 relicense mantis issue: http://bugs.squeak.org/view.php?id=6989
The most up-to-date list of ok contributors is at http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz See the class-side methods in Authorship, category data
here is another email from matthew
On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
I need your guidance for the MIT conversion effort of Pharo Do you have some cycles to help me and telling me how to proceed? I'm on holidays (so working remotely so I may allocate some time on that).
I can help you after school gets out in a week. I need to do a quick count of how many lines of code need to be fixed in squeak for submission to SFLC. I can do the same for Pharo. I don't know how strenuous you want to be in your license conversion.
The next 3 steps in the license conversion process are, in no particular order:
- get a document from yoshiki documenting how etoys was relicensed (and, by extension, cuis). The board will overview it with the help of SFLC and determine if it is good enough. - The board will publish a statement about what is and is not a trivial-enough change to ignore. - I will count up the lines of code to be converted, and determine how many of them are trivial and non-trivial
You should chat with Randal Schwartz about what you need to decide before you can start relicensing, and what you need to document in case your relicense needs to be reviewed in the future. Yoshiki and Juan did not do this and thus we have no evidence yet that Yoshiki's relicense is strong enough.
I documented the priorities for squeak 4.0 in this email:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134083....
You should probably figure out your priorities for the relicense as well, so you know whose standards you need to meet.
Since that email was written, Randal has indeed heard back from SFLC, but I haven't heard what they had to say yet.
-- Matthew Fulmer -- http://mtfulmer.wordpress.com/
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Ok I thought that you took the http://ftp.squeak.org/4.0alpha/squeak4.0-relicensingTools.zip then put there the latest pharo image and run Stef |m d f| m := MethodHistoryDatabase new. MethodHistoryChangeList ignoreNonExsiting: false. m readFile: 'SqueakV1.sources' encodingName: 'mac-roman'. d := FileDirectory default directoryNamed: 'history-updates'. #('PreBeta' 'Sqk20Beta') do: [:v | m readFilesIn: d updateFile: 'updates.list' versionName: v.]. m readFile: 'SqueakV2.sources' encodingName: 'mac-roman'. #('Squeak2.0' 'Squeak2.1' 'Squeak2.2beta' 'Squeak2.2' 'Squeak2.3' 'Squeak2.4' 'Squeak2.5test' 'Squeak2.5' 'Squeak2.6alpha' 'Squeak2.6' 'Squeak2.7alpha' 'Squeak2.7' 'Squeak2.8alpha' 'Squeak2.8' 'Squeak2.9alpha') do: [:v | m readFilesIn: d updateFile: 'updates.list' versionName: v.]. m readFile: 'SqueakV3.sources' encodingName: 'mac-roman'. #('Squeak3.0' 'Squeak3.1alpha' 'Squeak3.1beta' 'Squeak3.2alpha' 'Squeak3.2gamma' 'Squeak3.2' 'Squeak3.2.1' 'Squeak3.4alpha' 'Squeak3.4beta' 'Squeak3.4gamma' 'Squeak3.5alpha' 'Squeak3.5beta' 'Squeak3.5gamma' 'Squeak3.6alpha' 'Squeak3.6beta' 'Squeak3.6gamma' 'Squeak3.6') do: [:v | m readFilesIn: d updateFile: 'updates.list' versionName: v.]. d := FileDirectory default directoryNamed: 'squeak.org-updates'. #('Squeak3.7alpha' 'Squeak3.7beta' 'Squeak3.7gamma' 'Squeak3.7' 'Squeak3.8alpha' 'Squeak3.8beta' 'Squeak3.8gamma') do: [:v | m readFilesIn: d updateFile: 'SqCupdates.list' versionName: v.]. m readFile: 'Squeak3.9b-7053.changes' encodingName: 'utf-8'. m readFile: 'SqueakV39.sources' encodingName: 'utf-8'. m readFile: 'Squeak39g-7056+3102-7179.changes' encodingName: 'utf-8'. b := MethodHistoryBrowser new. b database: m. MethodHistoryBrowser openBrowserView: (b openEditString: nil) label: 'foo'. Authorship initialize. authors := Authorship new. authors database: m. missing := authors missingAuthorsWithMethods. returned := authors returnedAuthorsWithMethods. notAccounted := authors notAccounted. historicalMissing := authors historicalMissingAuthorsWithMethods. historicalNotAccounted := authors historicalNotAccounted. f _ FileStream newFileNamed: 'currentMissing.html'. m writeDictWithVersion: missing toHTMLFileNameOn: f title: 'AgreementMissingPharo' explanationFileName: nil. f close. m writeDict: missing toFileName: 'missingPharo.txt'. missing at: ((m at: #Debugger at: #buildMorphicNotifierLabelled:message:) at: 3) author missing
participants (7)
-
Adrian Lienhard -
Bryce Kampjes -
John M McIntosh -
Nicolas Cellier -
Rob Rothwell -
Stéphane Ducasse -
Yoshiki Ohshima