Skip to content

Commit

Permalink
Merge pull request #2 from rabea-al/main
Browse files Browse the repository at this point in the history
Vecto component library maintenance
  • Loading branch information
MFA-X-AI authored Oct 31, 2024
2 parents 4d8cb6e + 8c895e7 commit 5449f6c
Show file tree
Hide file tree
Showing 8 changed files with 2,591 additions and 1,377 deletions.
44 changes: 44 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: Bug Report
about: Share your findings to help us squash those bugs
title: ''
labels: ''
assignees: ''

---

**What kind of bug is it?**
- [ ] Xircuits Component Library Code
- [ ] Workflow Example
- [ ] Documentation
- [ ] Not Sure

**Xircuits Version**
Run `pip show xircuits` to get the version, or mention you've used a specific .whl from a branch.

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Tested on?**

- [ ] Windows
- [ ] Linux Ubuntu
- [ ] Centos
- [ ] Mac
- [ ] Others (State here -> xxx )

**Additional context**
Add any other context about the problem here.
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Feature Request
about: Suggest an idea for this component library
title: ''
labels: ''
assignees: ''

---

**Xircuits Version**
Run `pip show xircuits` to get the version, or mention you've used a specific .whl from a branch.

**What kind of feature is it?**
- [ ] Xircuits Component Library Code
- [ ] Workflow Example
- [ ] Documentation
- [ ] Not Sure

**Is your feature request related to a problem? Please describe.**

A clear and concise description of what the problem is. Ex. When I use X feature / when I do Y it does Z.

**Describe the solution you'd like**

A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
46 changes: 46 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Welcome to Xircuits! Thank you for making a pull request. Please ensure that your pull request follows the template.

# Description

Please include a summary which includes relevant motivation and context. You may also describe the code changes. List any dependencies that are required for this change.

## References

If applicable, note issue numbers this pull request addresses. You can also note any other pull requests that address this issue and how this pull request is different.

## Pull Request Type

- [ ] Xircuits Component Library Code
- [ ] Workflow Example
- [ ] Documentation
- [ ] Others (Please Specify)

## Type of Change

- [ ] New feature (non-breaking change which adds functionality)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update

# Tests

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

**1. Test A**

1. First step
2. Second step
3. ...


## Tested on?

- [ ] Windows
- [ ] Linux Ubuntu
- [ ] Centos
- [ ] Mac
- [ ] Others (State here -> xxx )

# Notes

Add if any.
125 changes: 125 additions & 0 deletions .github/workflows/run-workflow-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: Run Xircuits Workflows Test

on:
push:
branches: [ main ]
pull_request:
branches: "*"
workflow_dispatch:

jobs:
build-and-run:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
env:
TEST_XIRCUITS: |
examples/SimpleAnalogy.xircuits
examples/SimpleIngestLookup.xircuits
examples/SimpleLookup.xircuits
steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Create virtual environment
run: |
python -m venv venv
echo "${{ github.workspace }}/venv/bin" >> $GITHUB_PATH
- name: Install xircuits in virtual environment
run: pip install xircuits

- name: Set Environment Variables
run: |
LIBRARY_NAME=$(echo "${GITHUB_REPOSITORY##*/}" | sed 's/-/_/g')
echo "LIBRARY_NAME=$LIBRARY_NAME" >> $GITHUB_ENV
COMPONENT_LIBRARY_PATH="xai_components/${LIBRARY_NAME}"
echo "COMPONENT_LIBRARY_PATH=$COMPONENT_LIBRARY_PATH" >> $GITHUB_ENV
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "BRANCH_NAME=${{ github.head_ref }}" >> $GITHUB_ENV
else
echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
fi
- name: List Xircuits
run: xircuits list

- name: Clone Repository
run: |
rm -rf ${{ env.COMPONENT_LIBRARY_PATH }}
if [ "${{ github.event_name }}" == "pull_request" ]; then
REPO_URL="${{ github.event.pull_request.head.repo.clone_url }}"
else
REPO_URL="https://github.com/${{ github.repository }}"
fi
git clone -b ${{ env.BRANCH_NAME }} $REPO_URL ${{ env.COMPONENT_LIBRARY_PATH }}
- name: Install Component Library
run: |
if [ -f "${{ env.COMPONENT_LIBRARY_PATH }}/requirements.txt" ]; then
echo "requirements.txt found, installing dependencies..."
pip install -r ${{ env.COMPONENT_LIBRARY_PATH }}/requirements.txt
else
echo "requirements.txt not found."
fi
- name: Test .xircuits Workflows
run: |
export PYTHONPATH="${GITHUB_WORKSPACE}:${PYTHONPATH}"
LOG_FILE="${GITHUB_WORKSPACE}/workflow_logs.txt"
TEST_FILES=$(echo "$TEST_XIRCUITS" | tr '\n' ' ')
echo "Repository: $LIBRARY_NAME" > $LOG_FILE
echo "Branch: $BRANCH_NAME" >> $LOG_FILE
#Get the server token for GitHub secret if any
TOKEN="${{secrets.TOKEN}}"
SPACE_ID="${{secrets.SPACE_ID}}"
echo -e "Testing Files:\n$TEST_FILES" >> $LOG_FILE
IFS=' ' read -r -a FILE_ARRAY <<< "$TEST_FILES"
FAIL=0
if [ ${#FILE_ARRAY[@]} -eq 0 ]; then
echo "No .xircuits files specified for testing." | tee -a $LOG_FILE
else
for file in "${FILE_ARRAY[@]}"; do
FULL_PATH="${COMPONENT_LIBRARY_PATH}/${file}"
if [ -f "$FULL_PATH" ]; then
WORKFLOW_LOG_FILE="${FULL_PATH%.*}_workflow_log.txt"
echo -e "\n\nProcessing $FULL_PATH..." | tee -a $LOG_FILE
xircuits compile $FULL_PATH "${FULL_PATH%.*}.py" 2>&1 | tee -a $LOG_FILE
python "${FULL_PATH%.*}.py" --token "$TOKEN" --space_id "$SPACE_ID" 2>&1 | tee -a $WORKFLOW_LOG_FILE
LAST_LINE=$(tail -n 1 "$WORKFLOW_LOG_FILE")
if [[ "$LAST_LINE" != "Finished Executing" ]]; then
echo "Error: Workflow $FULL_PATH did not finish as expected" | tee -a $LOG_FILE
FAIL=1
else
echo "$FULL_PATH processed successfully" | tee -a $LOG_FILE
fi
cat "$WORKFLOW_LOG_FILE" | tee -a $LOG_FILE
else
echo "Specified file $FULL_PATH does not exist" | tee -a $LOG_FILE
FAIL=1
fi
done
fi
if [ $FAIL -ne 0 ]; then
echo "One or more workflows failed or did not finish as expected." | tee -a $LOG_FILE
exit 1
else
echo "Workflow processing completed" | tee -a $LOG_FILE
fi
- name: Upload log file
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ env.LIBRARY_NAME }}-validation-workflow-${{ matrix.python-version }}
path: ${{ github.workspace }}/workflow_logs.txt
Loading

0 comments on commit 5449f6c

Please sign in to comment.