diff --git a/.github/workflows/mlflow-js.yaml b/.github/workflows/mlflow-js.yaml new file mode 100644 index 00000000..1209f844 --- /dev/null +++ b/.github/workflows/mlflow-js.yaml @@ -0,0 +1,44 @@ +name: mlflow +on: + pull_request: + branches: + - main + +jobs: + build-and-test: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: '22.7' + + - name: Install dependencies + working-directory: ./mlflow + run: npm ci + + - name: Eslint + working-directory: ./mlflow + run: npm run lint + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Run MLflow server + run: | + docker run -d -p 5002:5002 --name mlflow-container ghcr.io/mlflow/mlflow:latest mlflow server --host 0.0.0.0 --port 5002 + sleep 30 + + - name: Run tests + working-directory: ./mlflow + run: npm run test + + - name: Stop MLflow server + run: docker stop mlflow-container + + - name: Build + working-directory: ./mlflow + run: npm run build diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..1da606db --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,69 @@ +# Contribution Guidelines + +We are always open to accepting any potential contributions. Here is how you can contribute: + +1. Fork the repository +2. Clone your forked repository + +```bash +git clone https://github.com/your-username/repository-name.git +``` + +3. Create your feature branch + +```bash +git checkout -b feature/AmazingFeature +``` + +4. Install dependencies for both mlflow and mlflow-site directories + +```bash +cd /mlflow && npm install +cd ../mlflow-site && npm install +``` + +5. Start the MLflow Tracking Server + +```bash +cd ../mlflow && npm run docker +``` + +This will launch the MLflow UI on your local machine at `http://localhost:5001`. + +6. Make your changes + +7. Run ESLint to check code style + +```bash +npm run lint +``` + +8. Run tests to ensure your changes don't break existing functionality + + (Make sure you have mlflow UI server running on port 5002. We set 5002 as our default port for testing.) + +```bash +cd /mlflow && npm run dockerTest # Run this in a separate terminal +npm run test +``` + +This will launch the MLflow UI on your local machine at `http://localhost:5002`, and run the Jest tests. + +9. Add and commit your changes + +If the tests all pass: + +```bash +git add . +git commit -m 'Add AmazingFeature' +``` + +10. Push to the branch + +```bash +git push origin feature/AmazingFeature +``` + +11. Open a Pull Request + +**Note:** Please ensure your code adheres to our style guidelines and includes appropriate documentation for any new features. diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..14ecd53f --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Open Source Labs Beta + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 8b137891..c252450a 100644 --- a/README.md +++ b/README.md @@ -1 +1,178 @@ +