87 lines
3.7 KiB
Markdown
87 lines
3.7 KiB
Markdown
[](https://travis-ci.org/HaxeFoundation/haxelib)
|
|
[](https://ci.appveyor.com/project/HaxeFoundation/haxelib)
|
|
|
|
# Haxelib: library manager for Haxe
|
|
|
|
Haxelib is a library management tool shipped with the [Haxe Toolkit](http://haxe.org/).
|
|
|
|
It allows searching, installing, upgrading and removing libraries from the [haxelib repository](http://lib.haxe.org/) as well as submitting libraries to it.
|
|
|
|
For more documentation, please refer to http://lib.haxe.org/documentation/
|
|
|
|
## Development info
|
|
|
|
### 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](https://www.docker.com/) 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 `http://localhost:2000/` (Linux).
|
|
|
|
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
|
|
|
|
Build files:
|
|
|
|
* 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](http://lib.haxe.org/p/haxelib/).
|
|
* prepare_tests.hxml: Package the test libs.
|
|
* ci.hxml: Used by our CIs, TravisCI and AppVeyor.
|
|
|
|
Folders:
|
|
|
|
* /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.
|
|
|
|
Other files:
|
|
|
|
* schema.json: JSON schema of haxelib.json.
|
|
* deploy.json: Deploy configuration used by `haxelib run ufront deploy` for 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.
|