153 Commits

Author SHA1 Message Date
Sybren A. Stüvel
02fac6a4df Change Go package name from git.blender.org to projects.blender.org
Change the package base name of the Go code, from
`git.blender.org/flamenco` to `projects.blender.org/studio/flamenco`.

The old location, `git.blender.org`, has no longer been use since the
[migration to Gitea][1]. The new package names now reflect the actual
location where Flamenco is hosted.

[1]: https://code.blender.org/2023/02/new-blender-development-infrastructure/
2023-08-01 12:42:31 +02:00
Sybren A. Stüvel
cac030e9d4 Bump version of FFmpeg to 5.1
The 5.0 binaries that were bundled could no longer be downloaded from the
original URLs, so I took the opportunity to upgrade a minor version.

Unfortunately there is a discrepancy between the last version of FFmpeg
(according to https://ffmpeg.org/download.html#release_5.1) and the
binaries that are offered for download. Because of this, Linux is at 5.1.1,
where Windows and macOS (darwin) are on 5.1.2.
2023-07-31 17:07:44 +02:00
Sybren A. Stüvel
dc6d5d9b8e Makefile: explicitly specify Git hash length
Explicitly specify the Git hash length to use, to ensure consistent version
info regardless of version of Git or platform to build on.
2023-07-24 15:58:45 +02:00
Sybren A. Stüvel
b58f1e15f1 Add CLI utility to recreate tasks of jobs
Due to an issue (which has been fixed in the previous commit), all tasks
in the database were deleted when starting Flamenco. This tool attempts
to recompile the job and recreate its tasks.

The statuses of the tasks are set based on the job status. Basically:

- job active → tasks queued
- job completed → tasks completed
- job cancelled / failed → tasks cancelled
- otherwise → tasks queued

To ensure that the tool is only used to create tasks from scratch, it
refuses to work on a job that still has tasks in the database.
2023-07-10 14:10:15 +02:00
Sybren A. Stüvel
2c163652c0 Makefile: when deploying the website, avoid setting timestamps & owners
The current setup on our webserver disallows setting timestamps or
permissions on the root (of the website) directory, so `rsync -a`
caused an error.

`-a` is a synonym of `-rlptgoD`; the new options are that minus `-t` for
setting times, `-o` and `-g` for setting file ownership (they should
be owned by the uploading user), and `-p` for setting permissions.
2023-06-02 10:51:49 +02:00
Sybren A. Stüvel
0086abcc7a Makefile: be less verbose when publishing the website 2023-05-26 11:20:05 +02:00
Sybren A. Stüvel
77ff6151bd Fix check-environment Makefile rule
Bunch of improvements to the `check-environment` rule:

- it was listed as the first target in `Makefile`, causing it to be run
  when you just use `make`. It's now moved down to where it is first used.
- Call with `$(MAKE) -s` so that there is less logging noise.
- Use `@echo` so that there is less logging noise.
- Change the example to set the right environment variable (it had a
  trailing underscore).
2023-05-19 12:09:29 +02:00
Francesco Siddi
9915951007 Deploy: Update deployment instructions
Move sensitive information into a dedicated .env file, which is
required only for deployment purposes.
2023-05-15 20:09:03 +02:00
Sebastian Parborg
f6f1ebdd05 Make runtime paths configurable at build time
To allow more build-time configuration:

- `Makefile` will now pick up `LDFLAGS` from environment variables, and
- locations of configuration files can now be overridden with linker
  options.

These are not used for regular Flamenco builds, but do allow studios to
customize where configuration files are stored.

Review: https://projects.blender.org/studio/flamenco/pulls/104200
2023-04-04 12:29:03 +02:00
Sybren A. Stüvel
4a142316a1 Add --tag to git describe
Without this, the reported version is 'v3.1-{number of commits}` even after
v3.2 has been tagged. Weird.
2023-03-21 12:24:48 +01:00
Sybren A. Stüvel
996f5da2af Bumped version to 3.3-alpha0 2023-03-21 12:22:38 +01:00
Sybren A. Stüvel
9e1948a1a0 Bump version to v3.2 2023-02-21 12:09:08 +01:00
Sybren A. Stüvel
372bb66e09 Bump version to 3.2-rc1 2023-02-21 11:35:55 +01:00
Sybren A. Stüvel
652f73c073 Add Makefile target for shaman-checkout-id-setter
It's not meant to be widely used, but this at least gives an easier way
to build the static library with embedded version info intact.
2023-02-07 15:47:11 +01:00
Sybren A. Stüvel
80e0d0fc18 Bumped version to 3.2-beta 2023-02-07 15:38:14 +01:00
Sybren A. Stüvel
70bb0c2655 Bumped version to 3.2-alpha 2022-10-20 12:10:30 +02:00
Sybren A. Stüvel
8a36cf1d38 Bumped version to 3.1 2022-10-18 10:57:13 +02:00
Sybren A. Stüvel
1abeb71f57 Fix Linux & macOS packaging issue with FFmpeg
FFmpeg was put in the wrong location in the release packages for Linux and
macOS. It should have been in a subdirectory called `tools` so that the
Worker finds it, but it was in the top-level directory of the package.
This is now fixed.
2022-10-03 10:55:56 +02:00
Sybren A. Stüvel
c42b8fec29 Bumped version to 3.1-alpha 2022-09-27 12:31:14 +02:00
Sybren A. Stüvel
11785ca51c Bumped version to 3.0 2022-09-12 15:49:12 +02:00
Sybren A. Stüvel
de500ba1df Bumped version to 3.0-beta3 2022-08-31 17:50:46 +02:00
Sybren A. Stüvel
570a82d822 Make: correctly quote the 'git commit' command 2022-08-31 17:50:46 +02:00
Sybren A. Stüvel
e394e75f64 update-version: also update latest version on project website
`make update-version` now also updates
`web/project-website/data/flamenco.yaml` so that the new version is
listed as the latest one on flamenco.blender.org.

Note that such a change will only be visible online after publishing the
site with `make project-website`. Be sure to only do this after the
build has been uploaded there, to avoid dead links.
2022-08-31 15:14:46 +02:00
Sybren A. Stüvel
a70bfb87d0 Make: prevent repeating version strings
In the case where the current git HEAD matches the latest release tag,
the version reported by Flamenco was something like
`3.0-beta2-3.0-beta2`, where the first is `$VERSION` and the other is
`$GITHASH`.

This is now prevented, and `$GITHASH` will always be something that's
not a repeat of `$VERSION`.
2022-08-31 14:27:53 +02:00
Sybren A. Stüvel
e4a7708cb6 Make: include sha256sum when publishing packages 2022-08-31 12:34:25 +02:00
Sybren A. Stüvel
f16c62abc0 Make: fix publishing of packages
Fix some path inconsistencies between Windows package and the others.
2022-08-31 12:34:09 +02:00
Sybren A. Stüvel
de8da6eac5 Bumped version to 3.0-beta2 2022-08-31 12:10:02 +02:00
Sybren A. Stüvel
edf8309118 Make: remove 'v3.0-beta1-' prefix from "git hash"
`git describe --dirty --always` will produce a hash in the form
`{most recent tag}-{commits since that tag}-{hash}` with a `-dirty` suffix
when there are uncommitted changes. Since the app version and the most
recent tag already overlap, the app version is removed from the git hash
to avoid overly long hashes. They are now of the form `{commits since last
tag}-{hash}`.
2022-08-04 17:04:55 +02:00
Sybren A. Stüvel
edb181d2eb Make: Change path inside the Linux and macOS tarballs
Change path inside the Linux and macOS tarballs, so that they contain an
embedded `flamenco-3.x.y-xxxx/` directory with all the files (instead of
putting all the files in the root of the tarball).
2022-08-04 16:59:30 +02:00
Sybren A. Stüvel
0d2f898a65 Include CHANGELOG.md in release packages 2022-08-04 16:47:17 +02:00
Sybren A. Stüvel
68b919156e Bumped version to 3.0-beta1 2022-08-03 12:43:31 +02:00
Sybren A. Stüvel
b94a9a154d Bumped version to 3.0-dev2 2022-08-02 17:10:28 +02:00
Sybren A. Stüvel
8c43688fed Makefile: add publish-release-packages target
`make publish-release-packages` uploads the release packages for the
current version of Flamenco. Note that it does NOT build those, so run
`make release-packages` beforehand.
2022-08-02 13:06:08 +02:00
Sybren A. Stüvel
7b60acd801 Makefile: use variables to point to the webserver
This makes it easier to add more rules that also point to the same server
and directory on that server.

No functional changes.
2022-08-02 12:57:43 +02:00
Sybren A. Stüvel
cb1e991305 Bumped version to 3.0-dev1 2022-08-01 14:21:19 +02:00
Sybren A. Stüvel
eb0adc6407 make update-version: include more files in the version bump commit 2022-08-01 14:21:04 +02:00
Sybren A. Stüvel
d4dfa2d071 Add release cycle to versioning of Flamenco
Include `RELEASE_CYCLE` in the Makefile. This is mentioned at startup of
Manager and Worker, and reflects in the software version they report.

If `RELEASE_CYCLE == "release"`, Manager and Worker report their version
as `ApplicationVersion`. If it's any other string, the Git hash will get
appended.
2022-07-28 15:10:27 +02:00
Sybren A. Stüvel
858089a1c3 Makefile: add release-package target
Add Makefile target for building release packages. There are individual
targets `release-package-{linux,darwin,windows}` for specific OSses. The
`release-package` targets just runs all of them.

The `release-package-darwin` builds only for AMD64/x64 CPUs, since there
are no static builds fo FFmpeg for that platform:
https://evermeet.cx/ffmpeg/apple-silicon-arm

Manifest Task: T99411
2022-07-25 16:53:25 +02:00
Sybren A. Stüvel
c1a728dc2f Version updates via Makefile
Flamenco now no longer uses the Git tags + hash for the application
version, but an explicit `VERSION` variable in the `Makefile`.

After changing the `VERSION` variable in the `Makefile`, run
`make update-version`.

Not every part of Flamenco looks at this variable, though. Most
importantly: the Blender add-on needs special handling, because that
doesn't just take a version string but a tuple of integers. Running
`make update-version` updates the add-on's `bl_info` dict with the new
version. If the version has any `-blabla` suffix (like `3.0-beta0`) it
will also set the `warning` field to explain that it's not a stable
release.
2022-07-25 16:08:07 +02:00
Sybren A. Stüvel
a0b4fc18e6 Makefile: quiet the generator for JS and Python code
The OpenAPI generator is very noisy, so it now logs to a file instead
of to stdout. The file is git-ignored. This was easier than redirecting
to `/dev/null`, as that's not available on Windows.
2022-07-25 16:08:07 +02:00
Sybren A. Stüvel
c7987a8500 Makefile: remove PKG_LIST variable
The `$PKG_LIST` variable was only used for running `go test`, and can be
replaced with `./...`.
2022-07-25 16:08:07 +02:00
Sybren A. Stüvel
bcbe35a7c7 Run Go tests in parallel
Earlier versions of the code didn't have proper separation of SQLite
databases for the unit tests. Tests nowadays use separate in-memory
databases, so they can run in parallel just fine.
2022-07-25 16:08:07 +02:00
Francesco Siddi
05e82ea5e4 Website: Update deployment script
The flamenco.io website moves to flamenco.blender.org!
This commit updates the Makefile as follows:

- Rename 'site' to 'project-website', so the new command to deploy is
  'make project-website'
- Move the website directory from 'flamenco-io-site' to
  'project-website'
- Update the rsync command do reflect the new deployment destination
2022-07-25 14:42:30 +02:00
Sybren A. Stüvel
59cb21e3b6 Makefile: add tools targets to download FFmpeg
Four Makefile targets have been added:
- `tools`, which evokes the other three
- `tools-linux`, `tools-darwin`, `tools-windows`, download FFmpeg and put
  the `ffmpeg` executables into `./tools/ffmpeg-{OS}-{ARCH}`.

Downloaded tarball/ZIP files are stored in `tools/download`, and won't be
re-downloaded if they already exist.
2022-07-22 16:37:14 +02:00
Sybren A. Stüvel
fee0717179 Makefile: on Windows, run unix2dos on generated files
The generators always produce UNIX line-ends. This creates false file
modifications with Git on Windows. Convert them to DOS line-ends to avoid
this.

This was already done for the Go code; this commit just copies the approach
to the Python and JavaScript generators.
2022-07-16 11:12:41 +02:00
Sybren A. Stüvel
be77403114 Makefile: add flamenco-manager-without-webapp target
This builds Flamenco Manager, without rebuilding the webapp, and without
the race condition checker.
2022-07-15 15:08:00 +02:00
Sybren A. Stüvel
20be78ea0f Stresser: add .PHONY to Makefile to make it always build 2022-07-15 15:08:00 +02:00
Sybren A. Stüvel
35fe0146d3 Add stress tester for task updates
Build with `make stresser`. Run with:

  ./stresser -worker UUID -secret ABCXYZ

The worker ID and secret can be obtained from
`flamenco-worker-credentials.yaml`. If left empty, the stresser will
register as a new worker, and log the credentials to be used on the next
invocation.
2022-07-15 15:08:00 +02:00
Sybren A. Stüvel
666d639efa Install Hugo as well, for building the flamenco.io website
`make with-deps` now installs Hugo as well, for building the Flamenco.io
static website.
2022-07-07 12:15:02 +02:00
Sybren A. Stüvel
9939e43b63 Add make site target to build & publish the website
This of course needs SSH access to the flamenco.io website.

Run `hugo --serve` from the `web/flamenco-io-site` directory to simply
run an in-memory copy of the site, and browse it locally at
http://localhost:1313/
2022-07-05 16:17:25 +02:00