David T. Lewis uploaded a new version of Chronology-Core to project The Trunk: http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80 Author: dtl Time: 19 May 2022, 12:03:05.720962 pm UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808 Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec. The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset: be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added: + ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol') ----- + asLocalAt: anOffset + "Answer a DateAndTime for a different time zone offset that has the same + year, month, day, hour, minute, and second as this instance, and with + printString that matches except for time zone offset." + + | newOffset newMicros | + newOffset := anOffset asDuration asSeconds. + newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds. + ^ self class utcMicroseconds: newMicros offset: newOffset + !
Item was changed: ----- Method: DateAndTime>>offset: (in category 'ansi protocol') ----- offset: anOffset + "Answer a <DateAndTime> equivalent to the receiver but with its local time + being offset from UTC by offset. - "Answer a DateAndTime for a different time zone offset that has the same - year, month, day, hour, minute, and second as this instance, and with - printString that matches except for time zone offset."
+ See asLocalAt: for the earlier behavior of this method." + + ^ self class + utcMicroseconds: utcMicroseconds + offset: anOffset asDuration asSeconds! - | newOffset newMicros | - newOffset := anOffset asDuration asSeconds. - newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds. - ^ self class utcMicroseconds: newMicros offset: newOffset - !
Item was changed: ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol') ----- utcOffset: anOffset + "Compatiblity. Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset." + + ^ self offset: anOffset! - "Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset" - ^ self class - utcMicroseconds: utcMicroseconds - offset: anOffset asDuration asSeconds!
Item was changed: ----- Method: Timespan class>>current (in category 'squeak protocol') ----- current + ^ self starting: (DateAndTime now asLocalAt: self defaultOffset)! - ^ self starting: (DateAndTime now offset: self defaultOffset)!
Note for future self: This is a breaking change that should be documented in the next release notes. :-)
Best, Christoph
On 2022-09-06T16:03:35+00:00, commits@source.squeak.org wrote:
David T. Lewis uploaded a new version of Chronology-Core to project The Trunk: http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80 Author: dtl Time: 19 May 2022, 12:03:05.720962 pm UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808 Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec. The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset: be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added:
- ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol') -----
- asLocalAt: anOffset
- "Answer a DateAndTime for a different time zone offset that has the same
- year, month, day, hour, minute, and second as this instance, and with
- printString that matches except for time zone offset."
- | newOffset newMicros |
- newOffset := anOffset asDuration asSeconds.
- newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
- ^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>offset: (in category 'ansi protocol') ----- offset: anOffset
- "Answer a <DateAndTime> equivalent to the receiver but with its local time
- being offset from UTC by offset.
- "Answer a DateAndTime for a different time zone offset that has the same
- year, month, day, hour, minute, and second as this instance, and with
- printString that matches except for time zone offset."
- See asLocalAt: for the earlier behavior of this method."
- ^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
- | newOffset newMicros |
- newOffset := anOffset asDuration asSeconds.
- newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
- ^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol') ----- utcOffset: anOffset
- "Compatiblity. Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset."
- ^ self offset: anOffset!
- "Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset"
- ^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
Item was changed: ----- Method: Timespan class>>current (in category 'squeak protocol') ----- current
- ^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
- ^ self starting: (DateAndTime now offset: self defaultOffset)!
Hi Christoph,
Question to present you: do you have any means to definitively retrieve this note when you or anyone else actually writes the release notes? ;-)
If there is a practical means to do so, maybe initialize these release notes right now and already write it down.
Kind regards, Jakob
Am Mo., 28. Nov. 2022 um 16:10 Uhr schrieb < christoph.thiede@student.hpi.uni-potsdam.de>:
Note for future self: This is a breaking change that should be documented in the next release notes. :-)
Best, Christoph
On 2022-09-06T16:03:35+00:00, commits@source.squeak.org wrote:
David T. Lewis uploaded a new version of Chronology-Core to project The
Trunk:
http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80 Author: dtl Time: 19 May 2022, 12:03:05.720962 pm UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808 Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec.
The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset:
be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at
https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added:
- ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol')
- asLocalAt: anOffset
"Answer a DateAndTime for a different time zone offset that has
the same
year, month, day, hour, minute, and second as this instance, and
with
printString that matches except for time zone offset."
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>offset: (in category 'ansi protocol') ----- offset: anOffset
"Answer a <DateAndTime> equivalent to the receiver but with its
local time
being offset from UTC by offset.
"Answer a DateAndTime for a different time zone offset that has
the same
year, month, day, hour, minute, and second as this instance, and
with
printString that matches except for time zone offset."
See asLocalAt: for the earlier behavior of this method."
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol')
utcOffset: anOffset
"Compatiblity. Answer a DateAndTime equivalent to the receiver but
offset from UTC by anOffset."
^ self offset: anOffset!
"Answer a DateAndTime equivalent to the receiver but offset from
UTC by anOffset"
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
Item was changed: ----- Method: Timespan class>>current (in category 'squeak protocol')
current
^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
^ self starting: (DateAndTime now offset: self defaultOffset)!
List,
Could we flag #breaking the way we flag #deprecated?
I think we should hold off deleting the old implementation for at least one version... Is Squeak's debugger advanced enough to run the old code during the transition period?
I was thinking #breaking:legacy: or similar to invoke the old implementation. User flexibility to not need to debug someone else's library, yaknow?
On Mon, Nov 28, 2022, 08:21 Jakob Reschke jakres+squeak@gmail.com wrote:
Hi Christoph,
Question to present you: do you have any means to definitively retrieve this note when you or anyone else actually writes the release notes? ;-)
If there is a practical means to do so, maybe initialize these release notes right now and already write it down.
Kind regards, Jakob
Am Mo., 28. Nov. 2022 um 16:10 Uhr schrieb < christoph.thiede@student.hpi.uni-potsdam.de>:
Note for future self: This is a breaking change that should be documented in the next release notes. :-)
Best, Christoph
On 2022-09-06T16:03:35+00:00, commits@source.squeak.org wrote:
David T. Lewis uploaded a new version of Chronology-Core to project The
Trunk:
http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80 Author: dtl Time: 19 May 2022, 12:03:05.720962 pm UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808 Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec.
The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let
#utcOffset: be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at
https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added:
- ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol')
- asLocalAt: anOffset
"Answer a DateAndTime for a different time zone offset that has
the same
year, month, day, hour, minute, and second as this instance, and
with
printString that matches except for time zone offset."
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>offset: (in category 'ansi protocol') ----- offset: anOffset
"Answer a <DateAndTime> equivalent to the receiver but with its
local time
being offset from UTC by offset.
"Answer a DateAndTime for a different time zone offset that has
the same
year, month, day, hour, minute, and second as this instance, and
with
printString that matches except for time zone offset."
See asLocalAt: for the earlier behavior of this method."
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol')
utcOffset: anOffset
"Compatiblity. Answer a DateAndTime equivalent to the receiver
but offset from UTC by anOffset."
^ self offset: anOffset!
"Answer a DateAndTime equivalent to the receiver but offset from
UTC by anOffset"
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
Item was changed: ----- Method: Timespan class>>current (in category 'squeak protocol')
current
^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
^ self starting: (DateAndTime now offset: self defaultOffset)!
Hi Lauren,
Could we flag #breaking the way we flag #deprecated?
This is an interesting idea, but I think that the concept of change mismatches the static concept of source code here. IMHO we should not start documenting changelogs in every single method again. :-)
I think we should hold off deleting the old implementation for at least one version... Is Squeak's debugger advanced enough to run the old code during the transition period?
So many fancy ideas, but probably too fancy for a "production" system. :D Most likely, this would ultimately lead us to versioning hell, I think. However, some mechanisms that could be used for this would be layered methods (e.g. Context/S) or multiple environments to that one could install different versions of a package.
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Lauren P drurowin@gmail.com Gesendet: Montag, 28. November 2022 17:09:40 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Trunk: Chronology-Core-dtl.80.mcz
List,
Could we flag #breaking the way we flag #deprecated?
I think we should hold off deleting the old implementation for at least one version... Is Squeak's debugger advanced enough to run the old code during the transition period?
I was thinking #breaking:legacy: or similar to invoke the old implementation. User flexibility to not need to debug someone else's library, yaknow?
On Mon, Nov 28, 2022, 08:21 Jakob Reschke <jakres+squeak@gmail.commailto:jakres%2Bsqueak@gmail.com> wrote: Hi Christoph,
Question to present you: do you have any means to definitively retrieve this note when you or anyone else actually writes the release notes? ;-)
If there is a practical means to do so, maybe initialize these release notes right now and already write it down.
Kind regards, Jakob
Am Mo., 28. Nov. 2022 um 16:10 Uhr schrieb <christoph.thiede@student.hpi.uni-potsdam.demailto:christoph.thiede@student.hpi.uni-potsdam.de>: Note for future self: This is a breaking change that should be documented in the next release notes. :-)
Best, Christoph
On 2022-09-06T16:03:35+00:00, commits@source.squeak.orgmailto:commits@source.squeak.org wrote:
David T. Lewis uploaded a new version of Chronology-Core to project The Trunk: http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80 Author: dtl Time: 19 May 2022, 12:03:05.720962 pm UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808 Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec. The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset: be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added:
- ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol') -----
- asLocalAt: anOffset
"Answer a DateAndTime for a different time zone offset that has the same
year, month, day, hour, minute, and second as this instance, and with
printString that matches except for time zone offset."
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>offset: (in category 'ansi protocol') ----- offset: anOffset
"Answer a <DateAndTime> equivalent to the receiver but with its local time
being offset from UTC by offset.
"Answer a DateAndTime for a different time zone offset that has the same
year, month, day, hour, minute, and second as this instance, and with
printString that matches except for time zone offset."
See asLocalAt: for the earlier behavior of this method."
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol') ----- utcOffset: anOffset
"Compatiblity. Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset."
^ self offset: anOffset!
"Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset"
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
Item was changed: ----- Method: Timespan class>>current (in category 'squeak protocol') ----- current
^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
^ self starting: (DateAndTime now offset: self defaultOffset)!
On Mon, Nov 28, 2022 at 09:09:40AM -0700, Lauren P wrote:
List,
Could we flag #breaking the way we flag #deprecated?
Let's not over-engineer this. I'm the person who was worried about potentially breaking some external packages with the change in Chronology-Core-dtl. But it turned out to be a non-issue, nothing got broken and nobody had any problems with it at all.
So it was just me being worried about something that was not a problem. We don't need to engineer a solution for my excessive worrying, I'll try to just stop doing that :-)
Dave
But it turned out to be a non-issue, nothing got broken and nobody had any problems with it at all.
Well, Squeak Inbox Talk displayed dates in the wrong timezone since then until I noticed, but I have fixed that now. :-) What I want to say with that is, I would not assume that everyone who detects a bug or a breaking change will report it to the mailing list. I think (at least I hope?) that there is a notable part of the community that does not actively engage on the mailing list. Maybe someone also will update a package five years from now from Squeak 6.0 to Squeak 7.0 and stumble about that breaking change. But as mentioned earlier, I think that a simple entry in the release notes will be fine.
Best, Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von David T. Lewis lewis@mail.msen.com Gesendet: Dienstag, 29. November 2022 01:02 Uhr An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Trunk: Chronology-Core-dtl.80.mcz
On Mon, Nov 28, 2022 at 09:09:40AM -0700, Lauren P wrote:
List,
Could we flag #breaking the way we flag #deprecated?
Let's not over-engineer this. I'm the person who was worried about potentially breaking some external packages with the change in Chronology-Core-dtl. But it turned out to be a non-issue, nothing got broken and nobody had any problems with it at all.
So it was just me being worried about something that was not a problem. We don't need to engineer a solution for my excessive worrying, I'll try to just stop doing that :-)
Dave
On Tue, Nov 29, 2022 at 12:03:46PM +0000, Thiede, Christoph wrote:
But it turned out to be a non-issue, nothing got broken and nobody had any problems with it at all.
Well, Squeak Inbox Talk displayed dates in the wrong timezone since then until I noticed, but I have fixed that now. :-)
Oh dear, I stand corrected!
What I want to say with that is, I would not assume that everyone who detects a bug or a breaking change will report it to the mailing list. I think (at least I hope?) that there is a notable part of the community that does not actively engage on the mailing list. Maybe someone also will update a package five years from now from Squeak 6.0 to Squeak 7.0 and stumble about that breaking change. But as mentioned earlier, I think that a simple entry in the release notes will be fine.
I agree. And your work on release notes is very much appreciated.
Dave
List,
I forgot about the release notes... I'm on the list, so I see them in real time.
On Tue, Nov 29, 2022, 15:52 David T. Lewis lewis@mail.msen.com wrote:
On Tue, Nov 29, 2022 at 12:03:46PM +0000, Thiede, Christoph wrote:
But it turned out to be a non-issue, nothing got broken and nobody had
any problems with it at all.
Well, Squeak Inbox Talk displayed dates in the wrong timezone since then
until I noticed, but I have fixed that now. :-)
Oh dear, I stand corrected!
At my work, the time zone of your punch is determined by the device you use to punch. Luckily, our corporate had the foresight to *not* record in UTC or with zone offset, so upon discovery everybody got a few extra days of backpay.
You were right to call that a breaker.
What I want to say with that is, I would not assume that everyone who detects a bug or a breaking change will report it to the mailing list. I think (at least I hope?) that there is a notable part of the community that does not actively engage on the mailing list.
I would hope so as well! It was good to see new names during the 6.0 release.
Maybe someone also will update a package five years from now from Squeak
6.0 to Squeak 7.0 and stumble about that breaking change. But as mentioned earlier, I think that a simple entry in the release notes will be fine.
I agree. And your work on release notes is very much appreciated
I should read them! It sounds like a fair bit of effort on your part.
Hi Jakob,
do you have any means to definitively retrievethis note when you or anyone else actually writes the release notes? ;-)
Thank you for raising this question! For the last release notes, I did a quick search in Squeak Inbox Talk for "breaking change" in the timespan of the previous alpha version and skimmed the results quickly, which yielded 17 conversations that I was able to skim pretty quickly.
However, this step is not documented anywhere. The entire process of writing release notes could benefit from some better documentation. (I also have too many other changes lying around in my working copy of SIT, one of them is a filter to search for versions for a particular release only which I used for the 6.0 release. I should really find some time to commit all of this stuff ...)
maybe initialize these release notes right now
As already mentioned earlier [1], I wanted to propose that we migrate the release notes into the image using the HelpBrowser (similar to Help-Squeak-Project, maybe create another package for it?). Serializing, versioning, and deploying them through the squeak-app repository really felt unconvenient for me. We still could maintain a generated HTML version of them if we feel a need for this.
Best, Christoph
[1] http://lists.squeakfoundation.org/pipermail/squeak-dev/2022-June/221167.html
--- Sent from Squeak Inbox Talk
On 2022-11-28T17:21:25+01:00, jakres+squeak@gmail.com wrote:
Hi Christoph,
Question to present you: do you have any means to definitively retrieve this note when you or anyone else actually writes the release notes? ;-)
If there is a practical means to do so, maybe initialize these release notes right now and already write it down.
Kind regards, Jakob
Am Mo., 28. Nov. 2022 um 16:10 Uhr schrieb < christoph.thiede at student.hpi.uni-potsdam.de>:
Note for future self: This is a breaking change that should be documented in the next release notes. :-)
Best, Christoph
On 2022-09-06T16:03:35+00:00, commits at source.squeak.org wrote:
David T. Lewis uploaded a new version of Chronology-Core to project The
Trunk:
http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80 Author: dtl Time: 19 May 2022, 12:03:05.720962 pm UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808 Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec.
The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset:
be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at
https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added:
- ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol')
- asLocalAt: anOffset
"Answer a DateAndTime for a different time zone offset that has
the same
year, month, day, hour, minute, and second as this instance, and
with
printString that matches except for time zone offset."
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>offset: (in category 'ansi protocol') ----- offset: anOffset
"Answer a <DateAndTime> equivalent to the receiver but with its
local time
being offset from UTC by offset.
"Answer a DateAndTime for a different time zone offset that has
the same
year, month, day, hour, minute, and second as this instance, and
with
printString that matches except for time zone offset."
See asLocalAt: for the earlier behavior of this method."
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol')
utcOffset: anOffset
"Compatiblity. Answer a DateAndTime equivalent to the receiver but
offset from UTC by anOffset."
^ self offset: anOffset!
"Answer a DateAndTime equivalent to the receiver but offset from
UTC by anOffset"
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
Item was changed: ----- Method: Timespan class>>current (in category 'squeak protocol')
current
^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
^ self starting: (DateAndTime now offset: self defaultOffset)!
Hi all --
We can start taking notes in a "6.1" at any time: https://github.com/squeak-smalltalk/squeak-app/tree/squeak-trunk/release-not... [https://github.com/squeak-smalltalk/squeak-app/tree/squeak-trunk/release-not...]
Best, Marcel Am 29.11.2022 05:11:00 schrieb christoph.thiede@student.hpi.uni-potsdam.de christoph.thiede@student.hpi.uni-potsdam.de: Hi Jakob,
do you have any means to definitively retrievethis note when you or anyone else actually writes the release notes? ;-)
Thank you for raising this question! For the last release notes, I did a quick search in Squeak Inbox Talk for "breaking change" in the timespan of the previous alpha version and skimmed the results quickly, which yielded 17 conversations that I was able to skim pretty quickly.
However, this step is not documented anywhere. The entire process of writing release notes could benefit from some better documentation. (I also have too many other changes lying around in my working copy of SIT, one of them is a filter to search for versions for a particular release only which I used for the 6.0 release. I should really find some time to commit all of this stuff ...)
maybe initialize these release notes right now
As already mentioned earlier [1], I wanted to propose that we migrate the release notes into the image using the HelpBrowser (similar to Help-Squeak-Project, maybe create another package for it?). Serializing, versioning, and deploying them through the squeak-app repository really felt unconvenient for me. We still could maintain a generated HTML version of them if we feel a need for this.
Best, Christoph
[1] http://lists.squeakfoundation.org/pipermail/squeak-dev/2022-June/221167.html
--- Sent from Squeak Inbox Talk [https://github.com/hpi-swa-lab/squeak-inbox-talk]
On 2022-11-28T17:21:25+01:00, jakres+squeak@gmail.com wrote:
Hi Christoph,
Question to present you: do you have any means to definitively retrieve this note when you or anyone else actually writes the release notes? ;-)
If there is a practical means to do so, maybe initialize these release notes right now and already write it down.
Kind regards, Jakob
Am Mo., 28. Nov. 2022 um 16:10 Uhr schrieb < christoph.thiede at student.hpi.uni-potsdam.de>:
Note for future self: This is a breaking change that should be documented in the next release notes. :-)
Best, Christoph
On 2022-09-06T16:03:35+00:00, commits at source.squeak.org wrote:
David T. Lewis uploaded a new version of Chronology-Core to project The
Trunk:
http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80 Author: dtl Time: 19 May 2022, 12:03:05.720962 pm UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808 Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec.
The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset:
be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at
https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added:
- ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol')
- asLocalAt: anOffset
- "Answer a DateAndTime for a different time zone offset that has
the same
- year, month, day, hour, minute, and second as this instance, and
with
- printString that matches except for time zone offset."
- | newOffset newMicros |
- newOffset := anOffset asDuration asSeconds.
- newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
- ^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>offset: (in category 'ansi protocol') ----- offset: anOffset
- "Answer a <DateAndTime> equivalent to the receiver but with its
local time
- being offset from UTC by offset.
- "Answer a DateAndTime for a different time zone offset that has
the same
- year, month, day, hour, minute, and second as this instance, and
with
- printString that matches except for time zone offset."
- See asLocalAt: for the earlier behavior of this method."
- ^ self class
- utcMicroseconds: utcMicroseconds
- offset: anOffset asDuration asSeconds!
- | newOffset newMicros |
- newOffset := anOffset asDuration asSeconds.
- newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
- ^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol')
utcOffset: anOffset
- "Compatiblity. Answer a DateAndTime equivalent to the receiver but
offset from UTC by anOffset."
- ^ self offset: anOffset!
- "Answer a DateAndTime equivalent to the receiver but offset from
UTC by anOffset"
- ^ self class
- utcMicroseconds: utcMicroseconds
- offset: anOffset asDuration asSeconds!
Item was changed: ----- Method: Timespan class>>current (in category 'squeak protocol')
current
- ^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
- ^ self starting: (DateAndTime now offset: self defaultOffset)!
Release Note reminders are already initialized as a side-effect of our normal development process.
The way I wrote them for one or two 4.x releases was by literally reading the notes of all MCVersions since the previous production release. It's not hard to get all this pasted together in our IDE, and then it was just a matter of sitting down and reading and digesting them into which bits were important enough to include, and also re-written in a less-technical way for the Release Notes audience.
I have since remembered to keep this use-case in mind when writing my MCVersion notes, e.g., I ask myself, "what verbiage will be helpful to future consumers of this note..?" while being as clear and terse as possible, because...
... going through all of them is a laborious one-time chore per release, but the best way to not miss anything.
- Chris
On Mon, Nov 28, 2022 at 9:21 AM Jakob Reschke jakres+squeak@gmail.com wrote:
Hi Christoph,
Question to present you: do you have any means to definitively retrieve this note when you or anyone else actually writes the release notes? ;-)
If there is a practical means to do so, maybe initialize these release notes right now and already write it down.
Kind regards, Jakob
Am Mo., 28. Nov. 2022 um 16:10 Uhr schrieb < christoph.thiede@student.hpi.uni-potsdam.de>:
Note for future self: This is a breaking change that should be documented in the next release notes. :-)
Best, Christoph
On 2022-09-06T16:03:35+00:00, commits@source.squeak.org wrote:
David T. Lewis uploaded a new version of Chronology-Core to project The
Trunk:
http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80 Author: dtl Time: 19 May 2022, 12:03:05.720962 pm UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808 Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec.
The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let
#utcOffset: be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at
https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added:
- ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol')
- asLocalAt: anOffset
"Answer a DateAndTime for a different time zone offset that has
the same
year, month, day, hour, minute, and second as this instance, and
with
printString that matches except for time zone offset."
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>offset: (in category 'ansi protocol') ----- offset: anOffset
"Answer a <DateAndTime> equivalent to the receiver but with its
local time
being offset from UTC by offset.
"Answer a DateAndTime for a different time zone offset that has
the same
year, month, day, hour, minute, and second as this instance, and
with
printString that matches except for time zone offset."
See asLocalAt: for the earlier behavior of this method."
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
| newOffset newMicros |
newOffset := anOffset asDuration asSeconds.
newMicros := localOffsetSeconds - newOffset * 1000000 +
utcMicroseconds.
^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed: ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol')
utcOffset: anOffset
"Compatiblity. Answer a DateAndTime equivalent to the receiver
but offset from UTC by anOffset."
^ self offset: anOffset!
"Answer a DateAndTime equivalent to the receiver but offset from
UTC by anOffset"
^ self class
utcMicroseconds: utcMicroseconds
offset: anOffset asDuration asSeconds!
Item was changed: ----- Method: Timespan class>>current (in category 'squeak protocol')
current
^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
^ self starting: (DateAndTime now offset: self defaultOffset)!
squeak-dev@lists.squeakfoundation.org