Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci/automatic building #29

Merged
merged 65 commits into from
Nov 28, 2021
Merged

Conversation

jamesb93
Copy link
Member

This automatically builds the FluCoMa externals on a macos runner with github actions on each commit to main. This will help to automatically alleviate any issues where relatively canon build processes with cmake are broken by rogue commits or edits to the cmake configuration. Could potentially just run on tagged commits or to check PR's.

@jamesb93 jamesb93 added the enhancement New feature or request label Sep 14, 2021
@jamesb93
Copy link
Member Author

Further to this, we can also use this action to eventually build and publish nightly releases as well as stable releases with tagged commits.

@weefuzzy
Copy link
Member

Nice. What's a sensible way to test this?

Longer term, it would indeed be nice to be able produce releases this way, although there's still a certain amount of human tidying up that has to be done (test-only externals have to be removed, for instance).

@jamesb93
Copy link
Member Author

To test that the automatic building works? Not sure. I can send proof of it working on my fork? I'm not sure how to run an action on a PR branch...

Right now I flew a bit closer to the sun and broke it by trying to run max patches headlessly as part of the build process. I'll dial it back to the state in which it compiled the package successfully.

@jamesb93
Copy link
Member Author

You can see on my fork the action running.

https://github.com/jamesb93/flucoma-max/runs/3609550172?check_suite_focus=true

We could tune it to be more selective, doing certain things on tagged commits or perhaps only running on PRs. Anyway, there is no urgency in closing this off and I intended to leave it here dangling so we can come back around to this when there are less workshop-y things pressing :)

jamesb93 and others added 2 commits September 20, 2021 22:55
Revert "fix pre/post cmake"

This reverts commit 7d04ffb.

Create does-it-build.yml

does it build?

consume SDK

curl the 8.0.3 SDK

add a ls stage for sanity

remove cmake flags for OSX architectures

move list cmd

add working directories for steps that urn in build

use macos as runner

use ninja for build process

add specific name for build

will write a text file named foo to the home directory

see if we can headless max patchers

also build on the ci branch

Buf2List: tidy up and add a 'buffer' message for immediate processing

Revert "fat binaries"

This reverts commit 35ef645.

Revert "build script"

This reverts commit 1ee3f5a.

# Conflicts:
#	create.sh

Initialize dumpDictionary pointer in MaxWrapper explicitly, as this is assumed in destructor

removed dangling script naming to buf2list

corrected buf2list use in mlpclass

corrected interface of mds to make it more interactive

updated buf2list2buf helpfiles with doc

dial back automatic patch testing in workflow
* Adjust cmake to handle changes to Max SDK from 8.2 onwards

* correct typo
@jamesb93
Copy link
Member Author

Apologies for force pushing, I rebased a few of my branches which were intermingled in order to separate out some of the commits which had polluted. Basically, I just squashed all of the commits I made while trying to get this CI to work so that it keeps the history a bit neater.

@jamesb93
Copy link
Member Author

jamesb93 commented Nov 7, 2021

This now builds but I haven't tested building with -DDOCS=ON. That's the next stage.

@jamesb93
Copy link
Member Author

At the moment this works but does not work if I compile with -DDOCS=ON for various reasons (I think python environments and such are making cmake sad). My strategy around this is to add another build component that will make the max references on Linux and then compile the results at the output.

@jamesb93 jamesb93 added this to the beta5 milestone Nov 15, 2021
@jamesb93
Copy link
Member Author

This is now finished.

https://github.com/jamesb93/flucoma-max/releases

At the moment its using an ad-hoc branch to pull down core where BLAS is not used in Eigen (which is a problem across all CCE's actually). This should be solved in a coming PR for core which I will then reflect in the CI to use the tip of dev rather than my branch (fix/blas-compilation-settings)

Copy link
Member

@weefuzzy weefuzzy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: what is patchers/write-test.maxpat for? Should it actually be in version control?

That notwithstanding, we should merge asap after the BLAS PR is in.

@jamesb93
Copy link
Member Author

Question: what is patchers/write-test.maxpat for? Should it actually be in version control?

That notwithstanding, we should merge asap after the BLAS PR is in.

Oops. I was a bad boy, testing out if we could launch patchers headlessly for some kind of egregious Max-based testing. I'll git rm this.

@jamesb93
Copy link
Member Author

Question: what is patchers/write-test.maxpat for? Should it actually be in version control?

That notwithstanding, we should merge asap after the BLAS PR is in.

I've removed it from vc, so once flucoma/flucoma-core#67 is in we're good to go.

@jamesb93 jamesb93 merged commit 5dbca51 into flucoma:main Nov 28, 2021
@jamesb93 jamesb93 deleted the ci/automatic-building branch November 28, 2021 13:02
jamesb93 added a commit that referenced this pull request Nov 28, 2021
* incorporate Ted's changes and recommendations

Revert "fix pre/post cmake"

This reverts commit 7d04ffb.

Create does-it-build.yml

does it build?

consume SDK

curl the 8.0.3 SDK

add a ls stage for sanity

remove cmake flags for OSX architectures

move list cmd

add working directories for steps that urn in build

use macos as runner

use ninja for build process

add specific name for build

will write a text file named foo to the home directory

see if we can headless max patchers

also build on the ci branch

Buf2List: tidy up and add a 'buffer' message for immediate processing

Revert "fat binaries"

This reverts commit 35ef645.

Revert "build script"

This reverts commit 1ee3f5a.

# Conflicts:
#	create.sh

Initialize dumpDictionary pointer in MaxWrapper explicitly, as this is assumed in destructor

removed dangling script naming to buf2list

corrected buf2list use in mlpclass

corrected interface of mds to make it more interactive

updated buf2list2buf helpfiles with doc

dial back automatic patch testing in workflow

* Adjust cmake to handle changes to Max SDK from 8.2 onwards (#32)

* Adjust cmake to handle changes to Max SDK from 8.2 onwards

* correct typo

* Update macos-build-test.yml

use the latest sdk from github

* you actually have to git clone...

* only build ampslice for now

* test releasing

* make names + commits

* give a proper asset name

* use ref for tag

* Update macos-build-test.yml

* spell prerelease properly

* change convention for naming n stuff

* Update macos-build-test.yml

* add windows-build script

* quotes around path for windows

* test a composite workflow

* update composite

* make a nightly action

* now check to see if we can build and see an external

* update infrastructure

* check with cached outputs too

* pre check in the right place

* dont check a non-existant file

* remove nightly cache workflow

* build and combine

* remove bad line

* do some sanity checks for cleaning

* inspect what is going on

* cleanup ls -R and change to latest macos

* see if we can copy the entire externals folder

* check

* now build fat and see

* remove mistake space

* get uname

* get clang version

* get system info

* try some silicon black magic

* use custom core

* use https

* check if core is there

* core is only one folder up

* make a release again

* make externals early

* 🩴 :burger:

* pass DCMAKE_APPLE flag

* full install of max

* make release builds on windows

* remove pdbs from release-packaging

* dont remove pdb files

* fix paths because they have spaces 👿

* try and deal with the hell that is windows

* now release it!

* try again

* only build on dev and ci branches

* now with DDOCS=ON

* ddocs off

* provide a more detailed tag for nightly builds

* also make docs

* use blas compilation branch (temporarily)

* fix malformed paths

* missing -D

* take max_ref and merge with final compile

* delete nightly before remaking it

* delete extraneous experimental patch

Co-authored-by: James Bradbury <jamesbradbury93@gmail.com>
Co-authored-by: weefuzzy <gungwho@gmail.com>
jamesb93 added a commit that referenced this pull request Feb 16, 2022
* copy the misc folder in installation target

* Add relative path file writing for data objects

In principle consistent with other Max objects (which aren't wholly 
consistent in edge cases)

* reset points if dict is successfully parsed

* crediting (#78)

crediting the new team

* update kdtree help file

* add fluid.stats~ and change category to statistical analysis

* move stft and add fluid.grid~

* grid out help file real estate

* adds fluid.plotter to the autocomplete objectlist

* adds fluid.waveform~ to objectlist

* first tab beautified

* reorder latency message

* getlatency after changing preset

* Transients Help File (#82)

* grid out help file

* update transients~ help file

* ci/automatic building (#29)

* incorporate Ted's changes and recommendations

Revert "fix pre/post cmake"

This reverts commit 7d04ffb.

Create does-it-build.yml

does it build?

consume SDK

curl the 8.0.3 SDK

add a ls stage for sanity

remove cmake flags for OSX architectures

move list cmd

add working directories for steps that urn in build

use macos as runner

use ninja for build process

add specific name for build

will write a text file named foo to the home directory

see if we can headless max patchers

also build on the ci branch

Buf2List: tidy up and add a 'buffer' message for immediate processing

Revert "fat binaries"

This reverts commit 35ef645.

Revert "build script"

This reverts commit 1ee3f5a.

# Conflicts:
#	create.sh

Initialize dumpDictionary pointer in MaxWrapper explicitly, as this is assumed in destructor

removed dangling script naming to buf2list

corrected buf2list use in mlpclass

corrected interface of mds to make it more interactive

updated buf2list2buf helpfiles with doc

dial back automatic patch testing in workflow

* Adjust cmake to handle changes to Max SDK from 8.2 onwards (#32)

* Adjust cmake to handle changes to Max SDK from 8.2 onwards

* correct typo

* Update macos-build-test.yml

use the latest sdk from github

* you actually have to git clone...

* only build ampslice for now

* test releasing

* make names + commits

* give a proper asset name

* use ref for tag

* Update macos-build-test.yml

* spell prerelease properly

* change convention for naming n stuff

* Update macos-build-test.yml

* add windows-build script

* quotes around path for windows

* test a composite workflow

* update composite

* make a nightly action

* now check to see if we can build and see an external

* update infrastructure

* check with cached outputs too

* pre check in the right place

* dont check a non-existant file

* remove nightly cache workflow

* build and combine

* remove bad line

* do some sanity checks for cleaning

* inspect what is going on

* cleanup ls -R and change to latest macos

* see if we can copy the entire externals folder

* check

* now build fat and see

* remove mistake space

* get uname

* get clang version

* get system info

* try some silicon black magic

* use custom core

* use https

* check if core is there

* core is only one folder up

* make a release again

* make externals early

* 🩴 :burger:

* pass DCMAKE_APPLE flag

* full install of max

* make release builds on windows

* remove pdbs from release-packaging

* dont remove pdb files

* fix paths because they have spaces 👿

* try and deal with the hell that is windows

* now release it!

* try again

* only build on dev and ci branches

* now with DDOCS=ON

* ddocs off

* provide a more detailed tag for nightly builds

* also make docs

* use blas compilation branch (temporarily)

* fix malformed paths

* missing -D

* take max_ref and merge with final compile

* delete nightly before remaking it

* delete extraneous experimental patch

Co-authored-by: James Bradbury <jamesbradbury93@gmail.com>
Co-authored-by: weefuzzy <gungwho@gmail.com>

* dont use BLAS branch (fixed in pr#67)

* remove dangling line

* use dev branch of flucoma core for ci

* cleanup english and patching on tab 2

* deferlow on file load (was failing before)

* update cosmetics

* point to /reference/sines in the learn platform not ampslice

* add learn and flucoma.org links

* apply 10x10 grid

* cancel previous runs if a new push is made

* Only need 1 outlet

* update outlet assistance

* update outlet 1 assist

* change tag name of nightly to be versionless

* Remove per-PR merge checks

* update bufselect

* add links to top of file

* initial cleanup

* patcher for linking to learn articles more easily

* changes to chroma help file

* remove spaces from installation path name (#90)

* fix references to spaced package name in CI

* sorted the package-info with a few fun anachronicisms

* missed a space in macbuild target

* only do a release on dev branch

* only do a release on dev branch

* trigger build on PR

* remove per PR building

* remove release checking

* add a deferlow to fluid.learn

* provide a small musical example on first tab

* add chroma frequency calculation

* replace list.change with zl.change

* human unit test maxpat

* make a soundful demonstration on each tab

* fix incorrect refrences to previous help files

* update positioning of online reference/flucoma link

* Fix fluid.learn abstraction not displaying properly (#101)

* initial cleanup

* changes to chroma help file

* add a deferlow to fluid.learn

* provide a small musical example on first tab

* add chroma frequency calculation

* replace list.change with zl.change

* make a soundful demonstration on each tab

* fix incorrect refrences to previous help files

* update positioning of online reference/flucoma link

* update fluid.learn patch to render more reliably

* Load media files from package abstraction (#102)

* a preliminary go at the bufloader

* tighten regex and implement auto loading

* add second tab for curating statistics with bufselect

* add cosmetic upgrades to second tab and neaten first tab

* fix loading woes with fluid.learn

* more cosmetic upgrades to patch

* cosmetic upgrades to chroma

* [Review Changes] BufChroma Help File (#98)

* update fluid.bufchroma~ help file

* Fix fluid.learn abstraction not displaying properly (#101)

* initial cleanup

* changes to chroma help file

* add a deferlow to fluid.learn

* provide a small musical example on first tab

* add chroma frequency calculation

* replace list.change with zl.change

* make a soundful demonstration on each tab

* fix incorrect refrences to previous help files

* update positioning of online reference/flucoma link

* update fluid.learn patch to render more reliably

* Load media files from package abstraction (#102)

* a preliminary go at the bufloader

* tighten regex and implement auto loading

* stripping back of first tab

* an interactive playback mechanism with chroma data

* chroma lookup

* add more detail tab

* polish patch

* layout fixes for help patch

* [Review Changes] KDTree Help File (#92)

* more cleanup on fluid.kdtree

* separate tabs

* add analysis data

* cleanup tab 1

* add presliced corpus points

* add a tab simplifying the explanation

* cosmetic upgrades

* add numbered instructions

* [CI] Refactor and use composite actions (#106)

* use flucoma actions

* use composite actions to build windows

* remove duplicate env setu

* use maxdocs composite action

* do CI on every ci located branch

* Re-enable building docs as part of ALL

* [CI] Fat Binaries (#107)

* do CI on every ci located branch

* bump to v3

* [CI] Actions@v4 (#108)

* do CI on every ci located branch

* use v4 of actions

* update docs

* Re-enable building docs as part of ALL

* [CI] Fat Binaries (#107)

* do CI on every ci located branch

* bump to v3

* [CI] Actions@v4 (#108)

* do CI on every ci located branch

* use v4 of actions

* update docs

* indentation

* remove duplicate

* typo

* [CI] Fix Documentation Build (#115)

* fix ci docs component

* make release all the time

* use ubuntu latest for building docs

* [Enhance] Update fluid.waveform~ (#116)

* update to translational api layer

* use new api in help file

* buf -> buffer

* alias indicesbuffer to addmarkers

* update help to reflect internal api

* singular for methods

* update waveform help

* fix pluarlisation of methods and arguments

* update help file for fluid.waveform

* various cosmetic upgrades (#103)

* BufNNDSVD Help File (#88)

* update bufnndsvd~ helpfile

* add playback to the help file

* [Docs] Fix Layout issues in BufChroma help (#117)

* fixes layout issues of bufchroma

* fix bufcompose load issue

* Update fluid.sines~.maxhelp

* update dataset help file (#120)

* labelset cosmetics

* remove frombuffer tab

* [Docs] Blocking Help Tab (#121)

* add back blocking attribute

* add attribute blocking to bufnndsvd

* add tab to bufstft

* add tab to bufselect

* change release action

* [Docs] BufLoudness Help (#122)

* griddify help file

* remove js starter

* experiment with waveform-based interface

* first tab done (possibly)

* finish multichannel tab

* PAs changes

* [Docs] Loudness Help File (#118)

* shell out loudness second tab

* cosmetic updates to second tab

* update second tab

* PA suggestions

* typo

* more typos

* [Docs] Audiotransport Help File (#105)

* work on audiotransport help file

* add fluid.learn abstraction

* cosmetic updates

* [Enhance] Retrieve toy DataSets (#126)

* pull datasets from the location specificed in PR 88 of core

* pull datasets to misc

* also add an abstraction for loading datasets

* update help file with new asset names

* add misc to ignore

* copy from Data instead of DataSets

* copy resources on cmake configure

* moved patchers from misc to patchers

* delete the files tracked by mistake

* update bufchroma to have an adaptive number of chroma (#129)

* AmpSlice Help File (#81)

* griddify help file

* in progress work for explaining thresholds and curves

* update bpatchers for providing linkage to sites

* update ampslice to be more friendly and clear

* add margin to link helper bpatchers (so they display correctly on load)

* update help file to accomodate bpatcher changes

* make text box way longer than it needs to be.

* update cosmetics

* update with review advice

* update learn subpatchers

* shuffle cosmetics

* update bufaudiotransport names (#131)

* Update nightly.yaml

Add workflow dispatch for manual launch

* correct docs path variable in CMake

* [Docs] Grid Help File (#110)

* add datasets that can be reused for examples

* update to fluid.grid helpfile

* try and make learn load in the right order...

* update aesthetics and separation of tabs

* cosmetic upgrades

* Revert "add datasets that can be reused for examples"

This reverts commit 20f58a3.

* update dataloader abstraction

* fix layout with new dataset loader

* Max buffer references weren't being freed safely (ASan) (#132)

* update quickstart

* [Fix] fluid.plotter~ clear label data (#135)

* fix single quotes

* remove old var

* clear all of the data that we need to clear

* re-order precedence of colouring (#136)

Co-authored-by: weefuzzy <gungwho@gmail.com>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>
Co-authored-by: Timo Hoogland <timohoogland@gmail.com>
Co-authored-by: James Bradbury <jamesbradbury93@gmail.com>
Co-authored-by: Ted Moore <ted@tedmooremusic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants