Haxelib: library manager for Haxe
Haxelib is a library management tool shipped with the Haxe Toolkit.
It allows searching, installing, upgrading and removing libraries from the haxelib repository as well as submitting libraries to it.
For more documentation, please refer to http://lib.haxe.org/documentation/
Running the haxelib server for development
The server has to be compiled with Haxe 3.2.1+. It can be run in Apache using mod_neko / mod_tora.
Currently using Docker is the simpliest way to build and run the server. It doesn't require setting up Apache or MySQL since everything is included in the container.
To start, run:
docker-compose -f test/docker-compose.yml up
The command above will copy the server source code and website resources into a container, compile it, and then start Apache to serve it. To view the website, visit
http://$(docker-machine ip):2000/ (Windows and Mac) or
To stop the server, run:
docker-compose -f test/docker-compose.yml down
If we modify any of the server source code or website resources, we need to stop the server and then rebuild the image by running the command as follows:
docker-compose -f test/docker-compose.yml build
To run haxelib client with this local server, prepend the arguments,
-R $SERVER_URL, to each of the haxelib commands, e.g.:
neko bin/haxelib.n -R http://$(docker-machine ip):2000/ search foo
To run integration tests with the local development server:
# prepare the test files haxe prepare_tests.hxml # set `HAXELIB_SERVER` and `HAXELIB_SERVER_PORT` # note that `HAXELIB_SERVER` is also used for the tests to connect to the MySQL server for resetting database export HAXELIB_SERVER=$(docker-machine ip) export HAXELIB_SERVER_PORT=2000 # run the tests haxe integration_tests.hxml
Note that the integration tests will reset the server database before and after each test.
About this repo
- client.hxml: Build the current haxelib client.
- client_tests.hxml: Build and run the client tests.
- client_legacy.hxml: Build the haxelib client that works with Haxe 2.x.
- server.hxml: Build the new website, and the Haxe remoting API.
- server_tests.hxml: Build and run the new website tests.
- server_each.hxml: Libraries and configs used by server.hxml and server_tests.hxml.
- server_legacy.hxml: Build the legacy website.
- integration_tests.hxml: Build and run tests that test haxelib client and server together.
- package.hxml: Package the client as package.zip for submitting to the lib.haxe.org as haxelib.
- prepare_tests.hxml: Package the test libs.
- ci.hxml: Used by our CIs, TravisCI and AppVeyor.
- /src/: Source code for the haxelib tool and the website, including legacy versions.
- /bin/: The compile target for building the haxelib client, legacy client, and others.
- /www/: The compile target (and supporting files) for the haxelib website (including legacy server)
- /test/: Source code and files for testings.
- schema.json: JSON schema of haxelib.json.
- deploy.json: Deploy configuration used by
haxelib run ufront deployfor pushing the haxelib website to lib.haxe.org.
- deploy_key.enc: Encrypted ssh private key for logging in to lib.haxe.org. Used by TravisCI.
- Dockerfile: Docker build file for building an image that runs the haxelib server.