Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5390e2d
build: optimize dependencies management
Ki-Seki Jul 17, 2025
39e59d1
Merge branch 'dev' into feat/dependency-resolve
Ki-Seki Jul 17, 2025
3b851eb
build: drop deprecated sections
Ki-Seki Jul 17, 2025
6922d6b
fix: correct typo and commands
Ki-Seki Jul 17, 2025
24ebea6
refactor: optimize pyproject.toml
Ki-Seki Jul 17, 2025
c8a6d62
ci: add Python release testing workflow
Ki-Seki Jul 17, 2025
bf0c064
build: optimize version constraints and optional groups
Ki-Seki Jul 17, 2025
997b405
fix: update patch paths for SentenceChunker and QdrantClient in tests
Ki-Seki Jul 17, 2025
9ee7c52
ci: enhance dependency and building test
Ki-Seki Jul 17, 2025
5338d93
docs: update installation instructions
Ki-Seki Jul 17, 2025
2389aeb
fix: move ruff dependency to test group
Ki-Seki Jul 17, 2025
06065a9
fix: specify encoding
Ki-Seki Jul 17, 2025
0f8fa3a
fix: refine wheel and sdist installation steps for OS-specific handling
Ki-Seki Jul 17, 2025
76b56e5
fix: update Windows installation commands to use PowerShell syntax
Ki-Seki Jul 17, 2025
4b0ea81
chore: add comments for clarity in Python tests workflow
Ki-Seki Jul 17, 2025
cac1931
fix: report slowest tests
Ki-Seki Jul 17, 2025
0b1bcd1
Merge branch 'dev' into feat/dependency-resolve
Ki-Seki Jul 18, 2025
3804a36
ci: support macos-13 as much as possible
Ki-Seki Jul 18, 2025
fd77d0f
fix: macos-13 testing
Ki-Seki Jul 18, 2025
a7d034d
chore: add comments
Ki-Seki Jul 18, 2025
bd729ae
chore: update comments in pyproject.toml
Ki-Seki Jul 18, 2025
b5da6ea
docs: support all platforms
Ki-Seki Jul 18, 2025
1bc6277
fix: poetry update
Ki-Seki Jul 18, 2025
91c7695
fix: move scikit-learn and qdrant-client
Ki-Seki Jul 18, 2025
b8c4a76
docs: clarify optional dependencies
Ki-Seki Jul 18, 2025
ffdb0f5
Merge branch 'dev' into feat/dependency-resolve
CaralHsi Jul 19, 2025
54d5e4a
Merge branch 'dev' into feat/dependency-resolve
CaralHsi Jul 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 47 additions & 5 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
os:
- "ubuntu-latest"
- "windows-latest"
- "macos-13"
- "macos-14"
- "macos-15"
# Ref: https://docs.github.com/en/actions/how-tos/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job
Expand All @@ -46,13 +47,54 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
cache: 'poetry'
- name: Install dependencies

# Dependency and building tests
- name: Install main dependencies
run: |
poetry install --no-root --no-interaction
- name: Check no top-level optional dependencies
run: |
poetry run python scripts/check_dependencies.py
- name: Build sdist and wheel
run: poetry build
- name: Test wheel installation on Windows
if: startsWith(matrix.os, 'windows')
run: |
Get-ChildItem dist/*.whl | ForEach-Object { pip install $_.FullName }
pip uninstall -y memoryos
- name: Test wheel installation on Linux / Mac
if: ${{ !startsWith(matrix.os, 'windows') }}
run: |
pip install dist/*.whl
pip uninstall -y memoryos
- name: Test sdist installation on Windows
if: startsWith(matrix.os, 'windows')
run: |
poetry install --no-interaction --with dev --with test
- name: Test with ruff
Get-ChildItem dist/*.tar.gz | ForEach-Object { pip install $_.FullName }
pip uninstall -y memoryos
- name: Test sdist installation on Linux / Mac
if: ${{ !startsWith(matrix.os, 'windows') }}
run: |
pip install dist/*.tar.gz
pip uninstall -y memoryos

# Ruff checks
- name: Install test group dependencies
run: |
poetry install --no-interaction --with test
- name: Ruff checks
run: |
poetry run ruff check
poetry run ruff format --check
- name: Test with pytest

# PyTest checks
- name: Install all extra dependencies
# macos-13 doesn't support torch==2.7.1
# So, pytest won't work
if: ${{ !startsWith(matrix.os, 'macos-13') }}
run: |
poetry install --no-interaction --extras all
- name: PyTest unit tests
if: ${{ !startsWith(matrix.os, 'macos-13') }}
run: |
poetry run pytest tests -vv
poetry run pytest tests -vv --durations=10
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.PHONY: test

install:
poetry install --with dev --with test
poetry install --extras all --with dev --with test
poetry run pre-commit install --install-hooks

clean:
Expand Down
32 changes: 19 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
<a href="https://pypi.org/project/MemoryOS">
<img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
</a>
<a href="https://pypi.org/project/MemoryOS">
<img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
</a>
<a href="https://memos-docs.openmem.net/home/overview/">
<img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
</a>
Expand Down Expand Up @@ -138,34 +141,37 @@ For more detailed examples, please check out the [`examples`](./examples) direct

## 📦 Installation

> [!WARNING]
> MemOS is compatible with Linux, Windows, and macOS.
>
> However, if you're using macOS, please note that there may be dependency issues that are difficult to resolve.
>
> For example, compatibility with macOS 13 Ventura is currently challenging.

### Install via pip

```bash
pip install MemoryOS
```

### Development Install
### Optional Dependencies

MemOS provides several optional dependency groups for different features. You can install them based on your needs.

| Feature | Package Name |
| --------------------- | ------------------------- |
| Tree Memory | `MemoryOS[tree-mem]` |
| Memory Reader | `MemoryOS[mem-reader]` |
| Memory Scheduler | `MemoryOS[mem-scheduler]` |

To contribute to MemOS, clone the repository and install it in editable mode:
Example installation commands:

```bash
git clone https://github.com/MemTensor/MemOS.git
cd MemOS
make install
pip install MemoryOS[tree-mem]
pip install MemoryOS[tree-mem,mem-reader]
pip install MemoryOS[mem-scheduler]
pip install MemoryOS[tree-mem,mem-reader,mem-scheduler]
```

### Optional Dependencies
### External Dependencies

#### Ollama Support

To use MemOS with [Ollama](https://ollama.com/), first install the Ollama CLI:

```bash
curl -fsSL https://ollama.com/install.sh | sh
```
Expand Down
2 changes: 1 addition & 1 deletion evaluation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This repository provides tools and scripts for evaluating the LoCoMo dataset usi

2. Install the required dependencies:
```bash
poetry install --with eval
poetry install --extras all --with eval
```

## Configuration
Expand Down
Loading