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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions