Eliot Miranda uploaded a new version of VMMakerUI to project VM Maker:
http://source.squeak.org/VMMaker/VMMakerUI-eem.42.mcz
==================== Summary ====================
Name: VMMakerUI-eem.42
Author: eem
Time: 31 July 2021, 4:16:47.512835 pm
UUID: 2760ca32-e892-4ce6-82bf-fcae360134ef
Ancestors: VMMakerUI-eem.41
More robustness for updating in the presense of first version packages.
=============== Diff against VMMakerUI-eem.41 ===============
Item was changed:
----- Method: TheWorldMainDockingBar>>updateVMMaker (in category '*VMMakerUI-updater') -----
updateVMMaker
<updater: 'Update VMMaker'>
| updater history message |
updater := MCMcmUpdater
updateMapNamed: 'update.oscog'
repository: 'http://source.squeak.org/VMMaker'.
updater lastUpdateMap ifEmpty: [
"If this is the first time that you use the updater, start at 5.mcm to avoid loading old code."
updater lastUpdateMap at: updater repository put: 5].
history := updater dependentPackages
collect: [:package | package name -> (package workingCopy ancestors ifNotEmpty: [:ancestors| ancestors first])]
as: OrderedDictionary.
updater doUpdate: false.
"Set update history to the packages that actually changed."
updater dependentPackages do: [:package | | oldVersionInfo newVersionInfo |
oldVersionInfo := history at: package name ifAbsent: [].
newVersionInfo := package workingCopy ancestors first.
"N.B. the first version in a package's history will have empty ancestors.
oldVersionInfo basicSize = 0 is true for these as well as nil."
(oldVersionInfo basicSize = 0 ifTrue: [0] ifFalse: [oldVersionInfo versionNumber]) < newVersionInfo versionNumber
ifTrue: [history at: package name put: {oldVersionInfo. newVersionInfo}]
ifFalse: [history removeKey: package name]].
"Prepare message, including the update history and OSVM ci badges."
message := String streamContents: [:s |
s nextPutAll: 'VMMaker update succesful.<br><br>'.
history
ifEmpty: [s nextPutAll: 'All packages were already up-to-date.']
ifNotEmpty: [s nextPutAll: 'Updated packages:'].
history keysAndValuesDo: [:packageName :updateInfo |
s nextPutAll: '<br> - '.
s nextPutAll: packageName; space.
updateInfo isArray
ifFalse: [s nextPutAll: '*removed*' translated]
ifTrue: [
updateInfo first
ifNil: [s nextPutAll: '*added*' translated]
+ ifNotNil: [updateInfo first isArray ifFalse: [s print: updateInfo first versionNumber]].
- ifNotNil: [s print: updateInfo first versionNumber].
s nextPutAll: ' -> <b>'.
s print: updateInfo second versionNumber.
s nextPutAll: '</b>']].
s nextPutAll: ('<br><br>Url: <a href="{1}">{1}</a>' format: {updater repository}).
s nextPutAll: '<br>Map: '; print: updater updateMapName.
s nextPutAll: ('<br><br>TravisCI status: <a href="{1}"><img src="{2}" /> {3}</a>'
format: {
self osvm_TravisCI_statusPageUrl.
self osvm_TravisCI_statusBadgeUrl.
self osvm_TravisCI_statusTimestamp}).
s nextPutAll: ('<br>AppVeyor status: <a href="{1}"><img src="{2}" /> {3}</a>'
format: {
self osvm_AppVeyor_statusPageUrl.
self osvm_AppVeyor_statusBadgeUrl.
self osvm_AppVeyor_statusTimestamp}).
s nextPutAll: ('<br><br>NOTE THAT updated platform sources might be available, too:<br> -> <a href="{1}">{1}</a>' format: {'https://github.com/OpenSmalltalk/opensmalltalk-vm'}).
].
self inform: message asTextFromHtml.!
Branch: refs/heads/add-VectorEnginePlugin
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 34f46acfe5f9c03a35dd07e563e4c45873fae433
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/34f46acfe5f9c03a35…
Author: David T. Lewis <lewis(a)mail.msen.com>
Date: 2021-07-31 (Sat, 31 Jul 2021)
Changed paths:
A src/plugins/VectorEnginePlugin/VectorEnginePlugin.c
Log Message:
-----------
Add generated source for VectorEnginePlugin
Commit: 6fe127d17ca12135e43d664d3fbaac19da23e5b2
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/6fe127d17ca12135e4…
Author: David T. Lewis <lewis(a)mail.msen.com>
Date: 2021-07-31 (Sat, 31 Jul 2021)
Changed paths:
M build.linux32ARMv6/pharo.cog.spur/plugins.ext
M build.linux32ARMv6/squeak.cog.spur/plugins.ext
M build.linux32ARMv6/squeak.cog.v3/plugins.ext
M build.linux32ARMv6/squeak.stack.spur/plugins.ext
M build.linux32ARMv6/squeak.stack.v3/plugins.ext
M build.linux32x86/pharo.cog.spur.lowcode/plugins.ext
M build.linux32x86/pharo.cog.spur/plugins.ext
M build.linux32x86/pharo.sista.spur/plugins.ext
M build.linux32x86/pharo.stack.spur.lowcode/plugins.ext
M build.linux32x86/squeak.cog.spur/plugins.ext
M build.linux32x86/squeak.cog.v3/plugins.ext
M build.linux32x86/squeak.sista.spur/plugins.ext
M build.linux32x86/squeak.stack.spur/plugins.ext
M build.linux32x86/squeak.stack.v3/plugins.ext
M build.linux64ARMv8/pharo.stack.spur/plugins.ext
M build.linux64ARMv8/squeak.cog.spur/plugins.ext
M build.linux64ARMv8/squeak.cogmt.spur/plugins.ext
M build.linux64ARMv8/squeak.stack.spur/plugins.ext
M build.linux64x64/pharo.cog.spur/plugins.ext
M build.linux64x64/squeak.cog.spur/plugins.ext
M build.linux64x64/squeak.stack.spur/plugins.ext
Log Message:
-----------
Add VectorEnginePlugin as external plugin for Linux build configurations
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/38ebdbefe606...6f…
Adds workflows (i.e., GitHub Actions) for automated builds. Replaces TravisCI and AppVeyor integration.
Automated builds on push/pull-requests:
- Linux (x86, 64-bit and 32-bit)
- Linux (ARMv6, ARMv7, ARMv8/Aarch64)
- macOS (x86, only 64-bit)
- Windows (x86, 64-bit and 32-bit)
Mostly, those builds include the following flavors:
- squeak.cog.spur (also for Cuis)
- squeak.sista.spur (also for Cuis)
- squeak.stack.spur (also for Cuis)
- pharo.cog.spur (for Pharo7.0 and before, I suppose)
- pharo.sista.spur (for Pharo7.0 and before, I suppose)
- pharo.stack.spur (for Pharo7.0 and before, I suppose)
There are some exceptions from this pattern such as:
- pharo.* not building on Windows bc. of an issue with third-party lib builds, related to GitHub Actions
- *.sista.spur bc. of unprepared build target on some platforms such as all ARM targets
- No Linux itimer-heartbeat builds prepared for *.stack.spur; threaded only for now
- No pharo.* builds prepared for ARM so far, except pharo.cog.cpur for ARMv6 in monthly builds; see below
Still, many if not all of those issues can easily be fixed in the future. We would just add the missing build configurations. :-)
Note that all these VM flavors include builds for "fast," "assert," and "debug" mode -- which we did not have in our previous TravisCI/AppVeyor setup.
---------------
There are also two separate workflows that manage "extra builds," such as for VM flavors that are not used on a regular basis:
- newspeak.* (incl. ARMv7)
- *.v3 (incl. ARMv6)
- *.lowcode
- pharo.cog.spur for ARMv6
These extra builds are triggered *once per month* or anytime per request.
These extra builds are only in "fast" mode.
---------------
All the latest build artifacts can be downloaded from three different tags, which are for my fork as follows:
- https://github.com/marceltaeumel/opensmalltalk-vm/releases/tag/latest-build
- https://github.com/marceltaeumel/opensmalltalk-vm/releases/tag/latest-asser…
- https://github.com/marceltaeumel/opensmalltalk-vm/releases/tag/latest-debug…
After merging this pull-request, replace "marceltaeumel" with "opensmalltalk-vm", and you will form the respective URLs. The URL will be stable for any particular VM flavor and platform. **Feel free to share those URLs to "Get the latest bleeding edge OSVM now!"** :-)
For previous build artifacts, note that all workflows store their artifacts *with a timestamp* after they ran. You can access those artifacts for about 90 days when logged into GitHub. Here is an example:
- https://github.com/marceltaeumel/opensmalltalk-vm/actions/runs/1073960213
Note that you can download a ZIP archive from GitHub, which will then hold the actual build artifact/container, e.g., \*.zip or \*.tar.gz or \*.dmg.
---------------
Finally, we can now manage builds and artifacts for release candidates:
1. Tag a commit as candidate such as "202107301330"
2. For each "Build for *"-workflow on the actions page for OSVM, just click "Run workflow" where you enter that tag and manually start the workflow.
3. Those artifacts will be attached to the tag and are then accessible under, e.g., "https://github.com/marceltaeumel/opensmalltalk-vm/releases/tag/202107301330", just like the *latest-build* artifacts are.
For an actual VM release, we would manually create a release through the GitHub webpage and copy over the artifacts from the latest release candidate. For the squeak-app bundles, we would also copy those over to http://files.squeak.org/base/.
---------------
After merging this PR, an *owner* in this repository should:
- Update the certificates in deploy/squeak, deploy/newspeak, and deploy/pharo and configure the required secret as documented in .github/workflows/macos.yml
- Deactivate the TravisCI and AppVeyor hooks. Their .yml files have been removed already.
Happy coding!
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/579
-- Commit Summary --
* Adds latest work on actions for continuous integration.
* Change deploy branch to "Cog".
* Try Newspeak builds.
* Also build for pull_request; only deploy on push. [ci skip]
* Merge remote-tracking branch 'remotes/upstream/Cog' into Cog
* Setup all main builds for Linux, macOS, and Windows. Sketch workflow for Linux32xARMv6 (not functional). Adds extra workflow for not-so-common VM flavors.
* Quick-fix generated FT2Plugin to compile in Linux. Note that code generation does currently not work for that plugin.
* Quick fix to make squeak.cog.v3 build again on Linux32x86. Do not set or use endOfJITZone. This might not be what we actually want.
* [ci skip] Another quickfix for making the rather old EventsHandlerPlugin compile on Linux. Where are its Slang sources located anyway?
* Setup ARM builds for Linux. Remove obsolete build files for TravisCI, AppVeyor, Bintray.
* In all main "Build for *" workflows, add workflow_dispatch to build artifacts for release candidates per tag.
* Merge remote-tracking branch 'remotes/upstream/Cog' into Cog
-- File Changes --
D .appveyor.yml (198)
A .github/workflows/extra-arm.yml (114)
A .github/workflows/extra.yml (105)
A .github/workflows/linux-arm.yml (142)
A .github/workflows/linux.yml (137)
A .github/workflows/macos.yml (122)
A .github/workflows/win.yml (129)
D .travis.yml (225)
M build.linux32ARMv6/newspeak.cog.spur/build.assert/mvm (2)
M build.linux32ARMv6/newspeak.cog.spur/build.debug/mvm (2)
M build.linux32ARMv6/newspeak.stack.spur/build.assert/mvm (2)
M build.linux32ARMv6/newspeak.stack.spur/build.debug/mvm (2)
M build.linux32ARMv6/newspeak.stack.spur/build/mvm (2)
M build.linux32ARMv6/pharo.cog.spur/build.assert/mvm (2)
M build.linux32ARMv6/pharo.cog.spur/build.debug/mvm (2)
M build.linux32ARMv6/squeak.cog.spur/build.assert/mvm (2)
M build.linux32ARMv6/squeak.cog.spur/build.debug/mvm (2)
M build.linux32ARMv6/squeak.cog.spur/build/mvm (2)
M build.linux32ARMv6/squeak.cog.v3/build.assert/mvm (2)
M build.linux32ARMv6/squeak.cog.v3/build.debug/mvm (2)
M build.linux32ARMv6/squeak.cog.v3/build/mvm (2)
M build.linux32ARMv6/squeak.stack.spur/build.assert/mvm (2)
M build.linux32ARMv6/squeak.stack.spur/build.debug/mvm (2)
M build.linux32ARMv6/squeak.stack.spur/build/mvm (2)
M build.linux32ARMv6/squeak.stack.v3/build.assert/mvm (2)
M build.linux32ARMv6/squeak.stack.v3/build.debug/mvm (2)
M build.linux32ARMv6/squeak.stack.v3/build/mvm (2)
A build.linux32ARMv7/newspeak.cog.spur/plugins.ext (3)
A build.linux32ARMv7/newspeak.cog.spur/plugins.int (29)
A build.linux32ARMv7/newspeak.stack.spur/plugins.ext (3)
A build.linux32ARMv7/newspeak.stack.spur/plugins.int (29)
M build.linux32x86/pharo.cog.spur.lowcode/build/mvm (6)
M build.linux32x86/pharo.stack.spur.lowcode/build/mvm (6)
D deploy/bintray-cleanup.sh (37)
D deploy/bintray.json (15)
D deploy/bintray.sh (22)
D deploy/filter-exec.sh (35)
M deploy/pack-vm.sh (144)
A deploy/sign-vm.sh (100)
M platforms/Cross/plugins/IA32ABI/ia32abi.h (4)
M platforms/unix/vm/sqUnixMemory.c (2)
A scripts/ci/actions_build.sh (182)
A scripts/ci/actions_prepare_linux_arm.sh (17)
A scripts/ci/actions_prepare_linux_x86.sh (68)
A scripts/ci/actions_prepare_msys.sh (28)
D scripts/ci/travis_build.sh (142)
D scripts/ci/travis_helpers.sh (12)
D scripts/ci/travis_install.sh (144)
M src/plugins/EventsHandlerPlugin/EventsHandlerPlugin.c (2)
M src/plugins/FT2Plugin/FT2Plugin.c (2)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/579.patchhttps://github.com/OpenSmalltalk/opensmalltalk-vm/pull/579.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/579