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

Bring up continuous build + dist #40

Open
jpd236 opened this issue Oct 24, 2016 · 3 comments
Open

Bring up continuous build + dist #40

jpd236 opened this issue Oct 24, 2016 · 3 comments

Comments

@jpd236
Copy link
Contributor

jpd236 commented Oct 24, 2016

I've got Travis and AppVeyor builds up and running on my fork. Here's the config:

jpd236@a3e22b4

(I can send a PR once the fix-compile branch is merged, as this is dependent on it)

Here's the build logs for Travis (Mac): https://travis-ci.org/jpd236/xword/builds/170340977
And for AppVeyor (Windows): https://ci.appveyor.com/project/jpd236/xword/build/34
And an example GitHub release: https://github.com/jpd236/xword/releases/tag/0.6.2-ci-alpha1

For both Mac and Windows, this config will build wxWidgets 3.1.0 (caching the build for future use) with the wxAUI patch from the xword repo and build both the Debug and Release configurations of the app. The dist step is kept simple for now since the existing dist scripts are Windows/sourceforge specific; we just zip the output files and upload the resulting artifact to GitHub Releases for any tagged build.

Here's what I think remains for this to be fully complete:

  • Bring up the builds in mrichards42/xword. Once the configs/scripts are merged in, you'd need to enable Travis/AppVeyor on the project, generate GitHub API keys with public_repo access for each of them, encrypt them, and update the config files with the new api_key under the deploy: section. My suggestion would be to create a new machine user account and an API key for each service, but you could also generate API keys from your GitHub account directly; either way.
  • Bring up a Linux build on Travis. I took a quick look at this but didn't find a simple way to make this work. Some issues I found: there's no Linux build of premake4 in the xword repo; Linux gcc seems to behave differently and doesn't compile XWord out of the box due to import/namespace issues; Travis only has 64-bit Linux images but the build seems to be 32-bit.
  • Build out the rest of the dist/ process. The zip files can be unpacked and used but aren't a complete distribution.

If I can be of more help here, do let me know. Otherwise, I think these configs are about as much as I can contribute at this point.

@jpd236
Copy link
Contributor Author

jpd236 commented Oct 25, 2016

One other thing to look into as part of the dist process: Unlike svn, git doesn't support tracking of file modification times. This breaks the py2lua generation for the wxFB.lua scripts, because that process checks the mtime of the .py file and compares it to the time listed in the wxFB.lua file; however, a new git clone will always lead to the .py file's mtime being newer than what's written in wxFB.lua. We'd need another approach in git to make this work.

jpd236 added a commit to jpd236/xword that referenced this issue Oct 25, 2016
This is a start towards resolving Issue mrichards42#40. These configs build the
debug and release builds of XWord on Mac and Windows. If a new release
is created on GitHub, a release build will be zipped up and posted as
part of the release.

The --enable-unicode reference in README.md is removed, as this is the
default as of wxWidgets 2.9.
jpd236 added a commit to jpd236/xword that referenced this issue Oct 25, 2016
This is a start towards resolving Issue mrichards42#40. These configs build the
debug and release builds of XWord on Mac and Windows. If a new release
is created on GitHub, a release build will be zipped up and posted as
part of the release.

The --enable-unicode reference in README.md is removed, as this is the
default as of wxWidgets 2.9.
jpd236 added a commit to jpd236/xword that referenced this issue Oct 29, 2016
This is a start towards resolving Issue mrichards42#40. These configs build the
debug and release builds of XWord on Mac and Windows. If a new release
is created on GitHub, a release build will be zipped up and posted as
part of the release.

The --enable-unicode reference in README.md is removed, as this is the
default as of wxWidgets 2.9.
jpd236 added a commit to jpd236/xword that referenced this issue Oct 29, 2016
This is a start towards resolving Issue mrichards42#40. These configs build the
debug and release builds of XWord on Mac and Windows. If a new release
is created on GitHub, a release build will be zipped up and posted as
part of the release.

The --enable-unicode reference in README.md is removed, as this is the
default as of wxWidgets 2.9.
jpd236 added a commit to jpd236/xword that referenced this issue Oct 29, 2016
This is a start towards resolving Issue mrichards42#40. These configs build the
debug and release builds of XWord on Mac and Windows. If a new release
is created on GitHub, a release build will be zipped up and posted as
part of the release.

The --enable-unicode reference in README.md is removed, as this is the
default as of wxWidgets 2.9.
jpd236 added a commit to jpd236/xword that referenced this issue Nov 8, 2016
This is a start towards resolving Issue mrichards42#40. These configs build the
debug and release builds of XWord on Mac and Windows. If a new release
is created on GitHub, a release build will be zipped up and posted as
part of the release.

The --enable-unicode reference in README.md is removed, as this is the
default as of wxWidgets 2.9.
jpd236 added a commit to jpd236/xword that referenced this issue Nov 28, 2016
This is a start towards resolving Issue mrichards42#40. These configs build the
debug and release builds of XWord on Mac and Windows. If a new release
is created on GitHub, a release build will be zipped up and posted as
part of the release.

The --enable-unicode reference in README.md is removed, as this is the
default as of wxWidgets 2.9.
@mrichards42
Copy link
Owner

It's definitely annoying that after a fresh checkout the wxFB.lua files are regenerated, but it isn't a show-stopper, since the distribution won't include py2lua, just the (updated) wxFB.lua files themselves.

Probably better to just do an md5 of the python wxFB file or something simple like that.

jpd236 added a commit to jpd236/xword that referenced this issue Dec 26, 2016
Non-Lua builds are functional, except that the images are expected in
share/Debug/images but aren't copied there by the build scripts.

Lua builds fail to link XWord due to many missing wxWidgets symbols.

Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Update pugixml to latest upstream to fix Linux compilation
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Remove dependencies on Win/Mac-only functions

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-SetFocusOnIdle only works on Win/Mac; what should we do on Linux?
-Why are Lua libraries failing to link against wxWidgets?
jpd236 added a commit to jpd236/xword that referenced this issue Aug 26, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Curl fails to build
-images/scripts directories are not found
-libc-task fails to load successfully on Lua startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 26, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Curl fails to build
-images/scripts directories are not found
-libc-task fails to load successfully on Lua startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 30, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Curl fails to build
-images/scripts directories are not found
-libc-task fails to load successfully on Lua startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 30, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Curl fails to build
-images/scripts directories are not found
-libc-task fails to load successfully on Lua startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 30, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 30, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 30, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 30, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 30, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 30, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Sep 1, 2019
Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Sep 1, 2019
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Sep 1, 2019
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilts of premake4 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Nov 17, 2019
- Fix doc/ python scripts to work on Python 3
- Remove launch step from doc/make_help.bat
- Use relative paths in dist/XWord.nsi
- Update file list in dist/XWord.nsi
- Add .gitignore for doc + dist outputs
- Add AppVeyor config to run doc + dist steps
jpd236 added a commit to jpd236/xword that referenced this issue Nov 17, 2019
- Fix doc/ python scripts to work on Python 3
- Remove launch step from doc/make_help.bat
- Use relative paths in dist/XWord.nsi
- Update file list in dist/XWord.nsi
- Add .gitignore for doc + dist outputs
- Add AppVeyor config to run doc + dist steps
jpd236 added a commit to jpd236/xword that referenced this issue Nov 17, 2019
- Fix doc/ python scripts to work on Python 3
- Remove launch step from doc/make_help.bat
- Use relative paths in dist/XWord.nsi
- Update file list in dist/XWord.nsi
- Add .gitignore for doc + dist outputs
- Add AppVeyor config to run doc + dist steps
jpd236 added a commit to jpd236/xword that referenced this issue Nov 17, 2019
- Fix doc/ python scripts to work on Python 3
- Remove launch step from doc/make_help.bat
- Use relative paths in dist/XWord.nsi
- Update file list in dist/XWord.nsi
- Add .gitignore for doc + dist outputs
- Add AppVeyor config to run doc + dist steps
jpd236 added a commit to jpd236/xword that referenced this issue Nov 17, 2019
- Fix doc/ python scripts to work on Python 3
- Remove launch step from doc/make_help.bat
- Use relative paths in dist/XWord.nsi
- Update file list in dist/XWord.nsi
- Add .gitignore for doc + dist outputs
- Add AppVeyor config to run doc + dist steps
jpd236 added a commit to jpd236/xword that referenced this issue Nov 17, 2019
- Fix doc/ python scripts to work on Python 3
- Remove launch step from doc/make_help.bat
- Use relative paths in dist/XWord.nsi
- Update file list in dist/XWord.nsi
- Add .gitignore for doc + dist outputs
- Add AppVeyor config to run doc + dist steps
jpd236 added a commit to jpd236/xword that referenced this issue Feb 11, 2020
Normal builds without special setup will read the version from VERSION,
which would generally be expected to be a SNAPSHOT version. Release
builds (those generated by CI with tags on GitHub) get the tag name as
the version. This version is propagated to the Windows installer, the
app, and the Mac plist file.

dist/gen_packages.lua still has a hard-coded reference; this will be
handled separately.

This commit also fixes a bug in xword.pkgmgr.is_newer, which seems to
have been passing an escaped "." character to pl.stringx.split when a
non-escaped character was expected. We also extend is_newer to support
-SNAPSHOT builds by considering them to be older than the non-SNAPSHOT
build of the same version, but newer than any previous version.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Feb 11, 2020
Normal builds without special setup will read the version from VERSION,
which would generally be expected to be a SNAPSHOT version. Release
builds (those generated by CI with tags on GitHub) get the tag name as
the version. This version is propagated to the Windows installer, the
app, and the Mac plist file.

dist/gen_packages.lua still has a hard-coded reference; this will be
handled separately.

This commit also fixes a bug in xword.pkgmgr.is_newer, which seems to
have been passing an escaped "." character to pl.stringx.split when a
non-escaped character was expected. We also extend is_newer to support
-SNAPSHOT builds by considering them to be older than the non-SNAPSHOT
build of the same version, but newer than any previous version.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Feb 18, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Feb 18, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Feb 18, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Feb 18, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Feb 18, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Feb 18, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Feb 29, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Mar 8, 2020
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilts of premake5 and LuaJIT 2.0.4
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Mar 8, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Mar 8, 2020
- Generate packages_windows.lua and packages_mac.lua as part of release
builds and include them in the release artifacts. For now, since we are
only distributing plugins inside the distribution, we can use a simple
template and a sed-based find/replace to generate these files.
dist/gen_packages.lua works for this purpose as well, but requires Lua
to be installed in the CI environment, which is non-trivial. We can
always revisit if we decide to distribute plugin packages separately.

- Point the auto-updater to a known location on GitHub pages to search
for new packages.

With this along with mrichards42#102 and mrichards42#103 (along with mrichards42#106 for Windows), the
full distribution workflow is functional on Windows/Mac. Pushing a new
build consists of the following steps:

1) Create a GitHub release. Set the tag to a valid release number, e.g.
"0.7.0".
2) Wait for CI builds to complete successfully on AppVeyor (Windows) and
Travis CI (Mac).
3) Validate that the builds are functioning as expected.
4) Download packages_windows.lua and packages_mac.lua from the builds to
docs/, commit, and push (to master). This will cause the new build to go
"live" and start showing up for auto updates.

See mrichards42#40
jpd236 added a commit to jpd236/xword that referenced this issue Mar 8, 2020
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Mar 8, 2020
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
@jpd236
Copy link
Contributor Author

jpd236 commented Mar 12, 2020

This is essentially done; all the changes have been checked in for a functional continuous build and dist for Windows and Mac. (I have a WIP for Linux, but it has a fair number of bugs to be hammered out to even have basic functionality, so I'd consider that separate).

You'd still need to get Travis CI up and running in the master repository to enable Mac builds, though. I think this should be fairly straightforward since the .travis.yml file is checked in already, but would be happy to help.

The other option now would be to try to consolidate to a single CI infrastructure, which has become a theoretical option since this was effort was all started. AppVeyor does have Mac/Linux images, and Travis has Windows images. But the AppVeyor Mac images have a newer version of Xcode that would require a new premake5 version to fix (see premake4.lua's note), and the Travis Windows images are considered experimental and lacking much of the niceties that the AppVeyor image has, including VS 2013.

jpd236 added a commit to jpd236/xword that referenced this issue Mar 12, 2020
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Jun 7, 2020
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Jul 28, 2020
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Aug 23, 2020
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Jan 14, 2022
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Jan 14, 2022
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Jun 3, 2022
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Sep 28, 2022
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Dec 26, 2022
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Dec 15, 2023
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Dec 24, 2023
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
jpd236 added a commit to jpd236/xword that referenced this issue Feb 24, 2024
This change brings up functional local and continuous Linux builds.
XWord runs and generally functions (after some manual tweaks to
the output directory structure as noted below), though more work
will be needed to smooth rough edges and fix Linux-specific bugs.

Changes of interest:

-Added Linux prebuilt of premake5
-Fix incorrect case on many imports
-Fix missing imports for various C functions
-Fix link order for lua builds
-Add Travis CI build for Linux

Still pending investigation:

-libpuz.so is linked incorrectly (it depends on
../../bin/Debug/libyajl.so, but should just depend on libyajl.so).
Worked around by linking libyajl.so from XWord in addition.
-Output directories need manual tweaking:
 * Link images/ to share/XWord/images
 * Link scripts/ to lib/XWord/scripts
 * Move bin/Debug/scripts/libs/libX.so to lib/XWord/X.so
 * bin/Debug/libluapuz.so also expected at lib/XWord/luapuz.so

Additional bugs:

-Alignment of lua errors in status bar is wrong
-Package manager encounters assertion errors
-Clue bar increases in size every startup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants