Commit Graph

12 Commits

Author SHA1 Message Date
Ben Ramsey c005f69d6e chore: update package files 2021-08-06 14:05:57 -05:00
Ben Ramsey 9409ea98ba Revert "Commit lockfile for Composer"
This reverts commit e3771b067a.
2020-10-28 21:45:07 -05:00
Ben Ramsey e3771b067a Commit lockfile for Composer 2020-10-28 21:22:35 -05:00
Ben Ramsey f965293da9 Specify cache locations for build tools 2020-02-08 13:13:47 -06:00
Ben Ramsey 0d7b8c2b7a Update coding style to include PSR-12, among other options
This also includes heavy use of slevomat/coding-standard to apply
various checks to the code, based on maintainer (me) preference.
2020-01-18 12:13:55 -06:00
Ben Ramsey 39c610ea31 Clean up project documentation and repo metadata 2019-11-30 11:07:39 -08:00
Ben Ramsey 7575e4f2b5 Add initial documentation structure for Read the Docs 2018-01-16 20:08:52 -06:00
Ben Ramsey 6d712900f4 Modify Travis CI builds to run tests on multiple CPU architectures
The ramsey/uuid library has requirements to run on 32-bit and 64-bit
systems, as well as little-endian and big-endian systems. Travis CI only
provides hardware for testing 64-bit, little-endian CPU architectures,
but they recently announced support for Docker[^1].

After some research, I found it is possible to use [QEMU][] with
[chroot][] jails on Travis CI to emulate other CPU architectures and run
tests through these chroot jails[^2]. Unfortunately, it takes an awful
long time to set up a chroot jail, build PHP within it, and run the
tests. It wasn't reasonable to expect to do this on every single push to
the ramsey/uuid repository. This is where Docker comes in.

I was able to create chroot jails for each architecture and version of
PHP combination I need to test and then turn these into Docker images,
which Travis is able to download and run fairly quickly. The instances
on which Travis CI is running their Docker services do not currently
support phpenv or php-build, so I needed to masquerade as a Python
project and specify all PHP versions and CPU architectures in
environment variables in my `.travis.yml` configuration. I run
`composer install` and report to Coveralls outside of the Docker images,
but all tests are run within the Docker images.

The Docker image I created for PHP 7.0.0RC4 on MIPS architecture
produces segfaults when attempting to build PHP with Phar. PHP builds
okay without Phar, but then it produces segfaults when running any PHP
script on the image, so I'm leaving out 7.0.0RC4 on MIPS for now.

The Docker images for use with ramsey/uuid tests are available here:
<https://hub.docker.com/r/benramsey/ramsey-uuid/>.

[^1]: "Using Docker on Travis
CI," <http://blog.travis-ci.com/2015-08-19-using-docker-on-travis-ci/>
[^2]: "Running Travis CI tests on ARM architecture,"
<https://www.tomaz.me/2013/12/02/running-travis-ci-tests-on-arm.html>

[qemu]: http://wiki.qemu.org/Main_Page
[chroot]: https://en.wikipedia.org/wiki/Chroot
2015-10-07 22:59:11 -05:00
Greg Brown 45c34cd709 require 5.4 and add JsonSerializable 2014-07-22 23:20:43 -07:00
Ben Ramsey 4f84d6e573 Alphabetize strings in .gitignore 2013-12-21 14:20:26 -06:00
Ben Ramsey 6d06304f3c Removing the auto-generated docs/ folder from the project 2013-07-30 14:59:02 -05:00
Ben Ramsey dc93facbac Initial commit; supports UUID version 1 generation. 2012-07-05 18:29:35 -05:00