Skip to content

Discussion: Should Python packages maintain llpkgstore.json file? #69

@PengPengPeng717

Description

@PengPengPeng717

Discussion: Should Python packages maintain llpkgstore.json file?

Background

In the current llpkgstore architecture, both C++ and Python packages use the same postprocessing workflow, including updating the llpkgstore.json file. However, considering the specific characteristics and use cases of Python packages, we need to re-evaluate whether Python packages actually need to maintain this file.

Current Role of llpkgstore.json

Based on code analysis, llpkgstore.json serves two main purposes:

1. Static Website Data Source

  • Used for querying and displaying version information on websites
  • Serves as a data source for static websites, providing package version mapping information
  • Current Status: Python packages are not currently considering building such a website

2. llgo get Service Support

  • Supports two forms of package retrieval:
    • llgo get clib@go_version
    • llgo get go_module@go_version
  • Current Status: Neither of these forms needs to be aware of the existence of the llpkgstore.json file

❓ Core Question

Do Python packages really need to maintain the llpkgstore.json file?

💭 Arguments for Keeping llpkgstore.json

  1. Architectural Consistency

    • Maintain the same version management workflow for both C++ and Python packages
    • Unified postprocessing command implementation
    • Easier to maintain and understand
  2. Future Extensibility

    • If we need to build a similar website for Python packages in the future
    • If the llgo get service needs to support llpkgstore.json queries
    • Reserve interfaces for future feature extensions
  3. Debugging and Monitoring

    • Provide historical records of version mappings
    • Facilitate troubleshooting and version tracking

💭 Arguments for Removing llpkgstore.json

  1. Simplified Workflow

    • Python packages don't need complex version mapping management
    • Reduce unnecessary file operations and storage
    • Simplify the postprocessing workflow
  2. Performance Optimization

    • Reduce file I/O operations
    • Lower storage space usage
    • Improve processing speed
  3. Separation of Concerns

    • Python packages focus on Go binding generation
    • Version management is handled by Git tags and GitHub Releases
    • Avoid duplicate version information storage

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions