lwgray / think

MIT License
0 stars 1 forks source link

Major Updates: Rebrand to Think and Syntax Modernization #38

Open lwgray opened 1 day ago

lwgray commented 1 day ago

Summary

This PR includes two major changes:

  1. Rebranding from ThinkPy to Think

File Changes

1. Directory Rename

- thinkpy/
+ think/

2. Class Renames

- class ThinkPyParser
+ class ThinkParser

- class ThinkPyInterpreter
+ class ThinkInterpreter

- class ThinkPyError
+ class ThinkError

- class ThinkPyMagics
+ class ThinkMagics

3. Function Renames

- def parse_thinkpy
+ def parse_think

- def thinkpy (magic command)
+ def think (magic command)

4. Package Configuration (pyproject.toml)

[project]
- name = "thinkpy"
+ name = "think"
- description = "ThinkPy - A language for learning computational thinking"
+ description = "Think - A language for learning computational thinking"

[project.urls]
- Homepage = "https://github.com/lwgray/thinkpy"
+ Homepage = "https://github.com/lwgray/think"

5. Documentation Updates

- # ThinkPy
+ # Think

- ThinkPy is an educational programming language
+ Think is an educational programming language

Migration Guide

For Users

  1. Update imports:
    
    # Old
    from thinkpy import ThinkPyInterpreter

New

from think import ThinkInterpreter


2. Update Jupyter magic:
```python
# Old
%%thinkpy

# New
%%think
  1. Update syntax in existing code:
    • Replace curly braces with colons
    • Replace else if with elif
    • Update loop syntax to use for instead of repeat
    • Add end keyword after loops
    • Update indentation to match new style

For Contributors

  1. Update local repository:

    git remote set-url origin https://github.com/lwgray/think.git
  2. Update documentation references:

    • Change domain references to think-lang.org
    • Update examples to use new syntax
    • Review all documentation for old branding

Versioning Impact

This is a breaking change that warrants a major version increment:

- version = "0.1.9"
+ version = "1.0.0"

Rationale

  1. Branding:
    • Cleaner, more professional name
    • Broader appeal beyond Python community
    • Better represents focus on thinking/learning
    • Reduces potential trademark concerns

Testing Checklist

Documentation Tasks