The pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party directory has – so far – had two versions. The metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team is working on the third version, to be shipped by June 26, 2016.

Part I – Overview

Objectives

The primary goals of the new version are to make it easier to change the plugin directory and to open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. all of its code. Additionally, the site should feel faster and be easier to use. A big part of improving the site will be a better search interface. The Plugins APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. must to continue to be backwards compatible through out these changes.

User Roles and Responsibilities

  • WordPress users
    Browse the directory to find a plugin that fit their needs. Improved search and a faster front-end will cater to that. A refreshed site design/layout will make the site more intuitive for them and will help them navigate the directory more easily.
  • International WordPress users
    These users are almost the same as WordPress users (listed above), with the addition of a localized site, including plugin descriptions and developer documentation. Search results will prioritize translated plugins, making them easier to find.
  • Plugin Authors
    Authors are looking for documentation around writing and submitting plugins, submitting new plugins to the directory, and managing their existing plugins. Powering the directory with WordPress (instead of the current bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org.), allows us to use wp-admin for an administration interface, letting them manage their plugins, add committers, change tags/categories, etc.
  • Plugin Reviewers
    Make sure that submitted plugins meet all requirements and approve/reject them accordingly. Here again we can use WordPress’ built-in wp-admin to give them an improved interface. Improved roles also allow us to open up the review process to other contributors. We can also make use of post statuses with capability controlled permissions for a review workflow. An improved plugin submission process will be able to run automated checks on submitted plugins, requiring less of reviewers.
  • Site Administrators
    Manage the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ network, maintain the system, and add new functionality. Here, a new, open source directory allows community contributions, speeds up development time for new features, and makes on-boarding new admins easier.

Interactions with Other Systems

The directory is part of the WordPress.org network. It serves as data storage for the Plugins API and shares a similar structure with the Theme Directory. It interacts with the Plugin SVNSVN Apache Subversion (often abbreviated SVN, after its command name svn) is a software versioning and revision control system. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS). WordPress core and the wordpress.org released code are all centrally managed through SVN. https://subversion.apache.org/. repo and is loosely connected to the Support Forums (no direct integration, but refers to it in many places). Additionally, it interfaces with with GlotPress for plugin translations and language packs.

Replacement of Legacy Systems

Replaces the bbPress instance it’s currently running on. The Plugins API will be powered by WordPress instead of bbPress.

Production Rollout Considerations

There will be multiple data migrations throughout the project’s life time for testing purposes. Post commit hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. allow for listening to SVN changes during the project and keeping the bbpress and WordPress instances in sync. Prior to launching, there will be a final database purge and re-sync.

Part II – Functional Requirements

Statement of Functionality

The plugin directory hosts community-made and community-vetted, free WordPress plugins, to be downloaded and used with standalone versions of WordPress.

Scope

Milestone 0 (MVPMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia)
CPT, readme parsing, and base theme (from current version) #1584
Milestone 1
Submit Plugin Page #1569
Reviewer Admin Dashboard and Role #1570
Milestone 2
Plugin Author Admin Dashboard #1571
Forum Integration #1572
Future Milestone
Redesign
Tags #1573
Search #1574
Ratings #1575
REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. Endpoints #1576
Favorites #1577
Zip Files #1578
Plugins API #1579
2-year Expiry #1580
Profiles Integration #1581
Forum Theme #1582
oEmbed Endpoint #1583
Stats Page #1596
Developer Page #1597
Report Plugin Page #1598
Donate Link #1599
Compatibility WidgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. #1600
Kill switch #1602
Internal notes #1603

Usability

Discovery and design first, documentation of existing state and flows, measurement of improvements against that as possible, defined and consistent testing and feedback strategy for state and flow improvements.