Hi,
I was trying to merge in Zinc changes from the latest Pharo 7 back to the MC Zinc repos. It seems like MCMczWriter>>#flush breaks [1]. I can save to the package cache but not to an Http repo, nor copy to it. Guile, has this been tested, or do you no longer use the old MC ? Sven [1] ByteString(Object)>>error: ByteString(Object)>>errorImproperStore ByteString>>at:put: ZipWriteStream(WriteStream)>>nextPut: [ :ch | self nextPut: ch ] in ZipWriteStream(DeflateStream)>>next:putAll:startingAt: in Block: [ :ch | self nextPut: ch ] ByteArray(SequenceableCollection)>>do: ZipWriteStream(DeflateStream)>>next:putAll:startingAt: ZipWriteStream(DeflateStream)>>nextPutAll: ZipStringMember(ZipArchiveMember)>>compressDataTo: ZipStringMember(ZipArchiveMember)>>writeDataTo: ZipStringMember(ZipArchiveMember)>>writeTo: [ :member | member writeTo: stream. member endRead ] in ZipArchive>>writeTo: in Block: [ :member | ... OrderedCollection>>do: ZipArchive>>writeTo: MCMczWriter>>flush MCMczWriter class>>fileOut:on: MCVersion>>fileOutOn: [ :s | aVersion fileOutOn: s ] in MCHttpRepository(MCFileBasedRepository)>>basicStoreVersion: in Block: [ :s | aVersion fileOutOn: s ] MCHttpRepository>>entityStreamContents: MCHttpRepository>>writeStreamForFileNamed:replace:do: MCHttpRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do: MCHttpRepository(MCFileBasedRepository)>>basicStoreVersion: MCHttpRepository(MCRepository)>>storeVersion: MCHttpRepository(MCFileBasedRepository)>>storeVersion: [ super storeVersion: aVersion ] in MCHttpRepository>>storeVersion: in Block: [ super storeVersion: aVersion ] BlockClosure>>on:do: MCHttpRepository>>retryOnCredentialRequest: MCHttpRepository>>storeVersion: MCWorkingCopyBrowser>>storeVersion:in: [ self storeVersion: newVersion in: aRepository; storeDependencies: newVersion in: aRepository ] in [ [ self storeVersion: newVersion in: aRepository; storeDependencies: newVersion in: aRepository ] ensure: [ (MCVersionInspector new version: newVersion) show ] ] in MCWorkingCopyBrowser>>basicSaveVersionIn: in Block: [ self... |
On Tue, Mar 13, 2018 at 8:08 PM, Sven Van Caekenberghe <[hidden email]> wrote: Hi,
I do not use old MC since some time already... I'll take a look at this tomorrow morning. But if this is broken it means it was not covered by tests :/
|
> On 13 Mar 2018, at 20:22, Guillermo Polito <[hidden email]> wrote: > > > > On Tue, Mar 13, 2018 at 8:08 PM, Sven Van Caekenberghe <[hidden email]> wrote: > Hi, > > I was trying to merge in Zinc changes from the latest Pharo 7 back to the MC Zinc repos. It seems like MCMczWriter>>#flush breaks [1]. I can save to the package cache but not to an Http repo, nor copy to it. > > Guile, has this been tested, or do you no longer use the old MC ? > > I do not use old MC since some time already... > > I'll take a look at this tomorrow morning. But if this is broken it means it was not covered by tests :/ Guille (I got your name wrong before, sorry about that), Thanks. Yes there are probably no tests, too bad. I am guessing, the following is wrong, after your changes: MCHttpRepository>>#entityStreamContents: aBlock "Generate output in a buffer because we need the length" | stream | stream := RWBinaryOrTextStream on: String new. aBlock value: stream. stream reset. ^ (ZnStreamingEntity type: ZnMimeType applicationOctetStream) stream: stream; contentLength: stream size; yourself there probably should be no String there. > Sven > > [1] > ByteString(Object)>>error: > ByteString(Object)>>errorImproperStore > ByteString>>at:put: > ZipWriteStream(WriteStream)>>nextPut: > [ :ch | self nextPut: ch ] in ZipWriteStream(DeflateStream)>>next:putAll:startingAt: in Block: [ :ch | self nextPut: ch ] > ByteArray(SequenceableCollection)>>do: > ZipWriteStream(DeflateStream)>>next:putAll:startingAt: > ZipWriteStream(DeflateStream)>>nextPutAll: > ZipStringMember(ZipArchiveMember)>>compressDataTo: > ZipStringMember(ZipArchiveMember)>>writeDataTo: > ZipStringMember(ZipArchiveMember)>>writeTo: > [ :member | > member writeTo: stream. > member endRead ] in ZipArchive>>writeTo: in Block: [ :member | ... > OrderedCollection>>do: > ZipArchive>>writeTo: > MCMczWriter>>flush > MCMczWriter class>>fileOut:on: > MCVersion>>fileOutOn: > [ :s | aVersion fileOutOn: s ] in MCHttpRepository(MCFileBasedRepository)>>basicStoreVersion: in Block: [ :s | aVersion fileOutOn: s ] > MCHttpRepository>>entityStreamContents: > MCHttpRepository>>writeStreamForFileNamed:replace:do: > MCHttpRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do: > MCHttpRepository(MCFileBasedRepository)>>basicStoreVersion: > MCHttpRepository(MCRepository)>>storeVersion: > MCHttpRepository(MCFileBasedRepository)>>storeVersion: > [ super storeVersion: aVersion ] in MCHttpRepository>>storeVersion: in Block: [ super storeVersion: aVersion ] > BlockClosure>>on:do: > MCHttpRepository>>retryOnCredentialRequest: > MCHttpRepository>>storeVersion: > MCWorkingCopyBrowser>>storeVersion:in: > [ self > storeVersion: newVersion in: aRepository; > storeDependencies: newVersion in: aRepository ] in [ [ self > storeVersion: newVersion in: aRepository; > storeDependencies: newVersion in: aRepository ] > ensure: [ (MCVersionInspector new version: newVersion) show ] ] in MCWorkingCopyBrowser>>basicSaveVersionIn: in Block: [ self... > > > > > > -- > > Guille Polito > Research Engineer > > Centre de Recherche en Informatique, Signal et Automatique de Lille > CRIStAL - UMR 9189 > French National Center for Scientific Research - http://www.cnrs.fr > > Web: http://guillep.github.io > Phone: +33 06 52 70 66 13 |
Guille,
> On 13 Mar 2018, at 20:30, Sven Van Caekenberghe <[hidden email]> wrote: > > > >> On 13 Mar 2018, at 20:22, Guillermo Polito <[hidden email]> wrote: >> >> >> >> On Tue, Mar 13, 2018 at 8:08 PM, Sven Van Caekenberghe <[hidden email]> wrote: >> Hi, >> >> I was trying to merge in Zinc changes from the latest Pharo 7 back to the MC Zinc repos. It seems like MCMczWriter>>#flush breaks [1]. I can save to the package cache but not to an Http repo, nor copy to it. >> >> Guile, has this been tested, or do you no longer use the old MC ? >> >> I do not use old MC since some time already... >> >> I'll take a look at this tomorrow morning. But if this is broken it means it was not covered by tests :/ > > Guille (I got your name wrong before, sorry about that), > > Thanks. Yes there are probably no tests, too bad. > > I am guessing, the following is wrong, after your changes: > > MCHttpRepository>>#entityStreamContents: aBlock > "Generate output in a buffer because we need the length" > > | stream | > stream := RWBinaryOrTextStream on: String new. > aBlock value: stream. > stream reset. > ^ (ZnStreamingEntity type: ZnMimeType applicationOctetStream) > stream: stream; > contentLength: stream size; > yourself > > there probably should be no String there. I changed stream := RWBinaryOrTextStream on: String new. to stream := RWBinaryOrTextStream on: ByteArray new. and now I can commit MC again. Not sure if that is the best fix, the idea is probably to phase out RWBinaryOrTextStream. It would probably also work to just write to a ByteArray new writeStream then take the bytes/contents and wrap a read stream around them ... >> Sven >> >> [1] >> ByteString(Object)>>error: >> ByteString(Object)>>errorImproperStore >> ByteString>>at:put: >> ZipWriteStream(WriteStream)>>nextPut: >> [ :ch | self nextPut: ch ] in ZipWriteStream(DeflateStream)>>next:putAll:startingAt: in Block: [ :ch | self nextPut: ch ] >> ByteArray(SequenceableCollection)>>do: >> ZipWriteStream(DeflateStream)>>next:putAll:startingAt: >> ZipWriteStream(DeflateStream)>>nextPutAll: >> ZipStringMember(ZipArchiveMember)>>compressDataTo: >> ZipStringMember(ZipArchiveMember)>>writeDataTo: >> ZipStringMember(ZipArchiveMember)>>writeTo: >> [ :member | >> member writeTo: stream. >> member endRead ] in ZipArchive>>writeTo: in Block: [ :member | ... >> OrderedCollection>>do: >> ZipArchive>>writeTo: >> MCMczWriter>>flush >> MCMczWriter class>>fileOut:on: >> MCVersion>>fileOutOn: >> [ :s | aVersion fileOutOn: s ] in MCHttpRepository(MCFileBasedRepository)>>basicStoreVersion: in Block: [ :s | aVersion fileOutOn: s ] >> MCHttpRepository>>entityStreamContents: >> MCHttpRepository>>writeStreamForFileNamed:replace:do: >> MCHttpRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do: >> MCHttpRepository(MCFileBasedRepository)>>basicStoreVersion: >> MCHttpRepository(MCRepository)>>storeVersion: >> MCHttpRepository(MCFileBasedRepository)>>storeVersion: >> [ super storeVersion: aVersion ] in MCHttpRepository>>storeVersion: in Block: [ super storeVersion: aVersion ] >> BlockClosure>>on:do: >> MCHttpRepository>>retryOnCredentialRequest: >> MCHttpRepository>>storeVersion: >> MCWorkingCopyBrowser>>storeVersion:in: >> [ self >> storeVersion: newVersion in: aRepository; >> storeDependencies: newVersion in: aRepository ] in [ [ self >> storeVersion: newVersion in: aRepository; >> storeDependencies: newVersion in: aRepository ] >> ensure: [ (MCVersionInspector new version: newVersion) show ] ] in MCWorkingCopyBrowser>>basicSaveVersionIn: in Block: [ self... >> >> >> >> >> >> -- >> >> Guille Polito >> Research Engineer >> >> Centre de Recherche en Informatique, Signal et Automatique de Lille >> CRIStAL - UMR 9189 >> French National Center for Scientific Research - http://www.cnrs.fr >> >> Web: http://guillep.github.io >> Phone: +33 06 52 70 66 13 |
There is a fix in here: On Wed, Mar 14, 2018 at 10:53 AM, Sven Van Caekenberghe <[hidden email]> wrote: Guille,
|
Free forum by Nabble | Edit this page |