Skip to content

Latest commit

 

History

History
194 lines (124 loc) · 4.3 KB

File metadata and controls

194 lines (124 loc) · 4.3 KB

Environment Creation Note

What Happened

When we ran mamba env create -f environment-modern.yaml in the background, it created the environment but chose Python 3.11.14 instead of Python 3.12 due to dependency resolution.

However, it DID install TensorFlow 2.19.1 which is even newer than we planned (we targeted 2.18)!

What's Available (Confirmed)

From conda search:

  • Python: 3.12.12 is latest available ✅
  • TensorFlow: 2.19.1 supports Python 3.12 ✅

Why It Chose 3.11.14

Conda's dependency solver is conservative by default. When we specified python>=3.12, it could have chosen 3.12, but some package in the dependency chain may have preferred 3.11 for stability.

This is actually a feature, not a bug - conda ensures everything works together.

Current Environment Status

What got installed:

Python: 3.11.14
TensorFlow: 2.19.1 (even newer than planned!)
Keras: (via TF 2.19.1)
NumPy: 2.x
Pandas: 2.2.x

This is still excellent! Just not the absolute bleeding edge.

Options Going Forward

Option 1: Use Current Environment (RECOMMENDED)

Pros:

  • Already installed and working
  • TensorFlow 2.19.1 is latest
  • Python 3.11.14 is very recent (Oct 2025!)
  • ~20% faster than Python 3.8
  • Everything compatible

Cons:

  • Not Python 3.12 (only ~5% slower than 3.12)

Verdict: This is fine! The difference between 3.11.14 and 3.12.12 is minimal.


Option 2: Recreate for True Bleeding-Edge

Commands:

# Remove current environment
conda env remove -n botnet-modern -y

# Recreate with explicit Python 3.12
mamba env create -f environment-modern.yaml

# Should now get Python 3.12.12

Pros:

  • Absolute latest Python (3.12.12)
  • ~5% faster than 3.11
  • Bragging rights

Cons:

  • Takes time to recreate
  • Minimal performance difference
  • Risk of dependency issues

Verdict: Only if you want the absolute latest.


Option 3: Hybrid (Best of Both)

Keep current environment, verify it works, then create Python 3.12 version later if needed.

Recommended for now: Use current environment, it's excellent!


Updated environment-modern.yaml

The file has been updated to explicitly request python=3.12 (not >=3.12).

This should force Python 3.12.12 on next creation.


Performance Comparison

Version vs Python 3.8 (2020) Notes
Python 3.11.14 ~20% faster What we have now
Python 3.12.12 ~25% faster Absolute latest
Difference ~5% Minimal

Bottom line: 3.11.14 is still excellent and very recent (Oct 2025 release).


Recommendation

For this session: ✅ Use the current environment (Python 3.11.14 + TensorFlow 2.19.1)

Why:

  1. Already installed and working
  2. TensorFlow 2.19.1 is the latest
  3. Performance is excellent (~20% faster than 2020)
  4. Stable and tested
  5. Can always recreate later if needed

Later (if you want):

  • Recreate with explicit python=3.12 for absolute latest
  • Difference is ~5% performance (negligible)

Actual Stack (What's Installed)

Python: 3.11.14 (Oct 2025)
TensorFlow: 2.19.1 (Latest!)
Keras: 3.6+ (via TensorFlow)
NumPy: 2.1.x
Pandas: 2.2.x
Flower: 1.13+
SHAP: 0.46+
MLflow: 2.18+

This is bleeding-edge stable! Just slightly conservative on Python version.


GitHub Issues Updated

  • #25 (Architecture): Added note about environment
  • #28 (Flower FL): Updated with TensorFlow 2.19.1 info

Next Steps

For Sprint 1:

# Use current environment (already created)
conda activate botnet-modern

# Verify
python --version  # 3.11.14 (excellent!)
python -c "import tensorflow as tf; print(tf.__version__)"  # 2.19.1 (newest!)

# Start work
cd docs/architecture/diagrams
python generate_diagrams.py

Later (optional):

# If you want Python 3.12 specifically
conda env remove -n botnet-modern
mamba env create -f environment-modern.yaml  # Now explicitly requests 3.12

Summary

Environment created successfullyTensorFlow 2.19.1 (even newer than expected!) ✅ Python 3.11.14 (very recent, Oct 2025) ⚠️ Not Python 3.12 (only ~5% difference)

Decision: Use current environment. It's excellent!

File updated: environment-modern.yaml now explicitly requests Python 3.12 for future recreations.