Project Proposal: GIMP Extension Website
Based on discussions held on matrix with @Jehan, my proposal for GSoC 2024 involves developing a GIMP Extension Website, a platform for showcasing GIMP extensions, facilitating extension creators to upload their .gex files
Present Scenario and what the project is all about:
Currently, there's no platform available where the extension creators can upload their extensions. The users needs to search for the extensions within the GIMP itself. The GIMP Extension Website will bridge this gap and will facilitate extension creators to upload their .gex files (which is basically a zip file with metadata in it) for processing and static HTML generation. The GIMP Extension Website will be more of a web showcasing for extensions rather than just a website.
Project Requirements:
The GIMP Extension Website will serve various distinct use cases, as outlined below:
User point-of-view:
Enable users to browse a comprehensive list of GIMP extensions and view detailed extension pages without requiring user accounts, promoting accessibility and ease of use. Additionally, facilitate user interactions by allowing comments on extensions, which may necessitate user accounts. Furthermore, implement a feature for users to flag potentially harmful extensions, ensuring user safety and community-driven moderation. Overall, the project aims to provide a user-friendly platform for discovering, evaluating, and interacting with GIMP extensions, fostering community engagement and ensuring user security.
Creator point-of-view:
Extension creators will require user accounts to create new extension pages and publish updates. The system will ensure that uploaded .gex files adhere to format requirements, including version number increments and accurate content. Additionally, it will flag potentially harmful data for review before publication, particularly plug-ins and scripts. Binary plug-ins will be restricted, except for trusted creators, with future plans to compile them from source. Furthermore, there's consideration for automating release generation from source repositories to streamline extension maintenance. This approach aims to empower extension creators, ensure quality control, and enhance the overall management of GIMP extensions.
Reviewer point-of-view
Trusted community reviewers are essential for managing extensions effectively. They'll review and approve extensions, ensuring adherence to set standards and making decisions on flagged extensions. Clear review rules will be established to maintain consistency and quality control.
Curator point-of-view
Introducing a "curator" role could enhance the platform by empowering selected community members to recommend specific extensions to a wider audience. These curators would have the authority to highlight extensions based on their merit or popularity, potentially through manual selection or automatic curation based on metrics like download counts.
Security and code review of third-party code
Implement strict limitations on plug-in types, initially allowing only non-compiled plug-ins for inspection, enforcing a thorough community review process before availability, providing clear warnings for unrevised plug-ins, enabling user feedback mechanisms for code inspection, and considering exceptions for well-established and trusted individuals or teams with proven security workflows.
Link
Proposed UI:Technologies
- Hugo for frontend
- The backend technology is yet to be decided (pixls.us or GNOME Discourse)
- Figma for designing
AppData -> Markdown -> Hugo This is how the front end would be created.
Approach:
- Develop robust scripts for parsing .gex files to extract essential information like descriptions, screenshots, and metadata.
- Implement verification mechanisms within the scripts to assess the quality and nature of each extension, distinguishing between static data (e.g., brushes, icons) and scripts/plug-ins.
- Utilize extracted data to generate static HTML pages showcasing GIMP extensions, ensuring efficient content serving without dynamic scripting.
- Integrate authentication and user management functionalities, leveraging pixls.us as the backend to handle user accounts and compliance with regulations like GDPR.
- Enable extension creators to upload .gex files through the platform, triggering the processing and validation of submissions, with GNOME Foundation servers managing file processing.
- Establish a system for community-driven moderation, allowing trusted reviewers to flag or delete extensions, thereby maintaining quality control and user trust within the platform.
Final Note:
Requesting feedback from mentors and other developers/users as well. This is going to be a good challenge and the platform aims to benefit a wide audience of users.