The Python Software Foundation has funding available for designing, developing and deploying organization accounts in PyPI.
PyPI is the official repository of Python packages. PyPI allows users to search for packages, publish and distribute packages.The aim of this project is to allow PyPI users to set up an organization account, invite other users to join, organize those users into teams, and manage ownership and permissions across multiple projects. We hope to provide organization accounts as a paid service to companies and complimentary access to community projects. The organization account feature will provide the structure based on which new features can be offered to paying customers. You can read this post that summarizes the user surveys.
We hope to hire two contractors who will code, test, review, document and deploy the organization account features. The two contractors include one backend developer and one frontend developer.
Please read this RFP to know how to submit your proposal or to get in touch with us.
| Date | Milestone |
|---|---|
| February 16 | Request for Proposal period opens |
| March 4 | Request for Proposal period closes |
| March 11 | Submitted proposals receive preliminary decision |
| March 18 | Shortlisted proposals receive final decision |
| March 25 | Contracts finalized |
| April 1 | Start of contract work |
A Request for Proposal (RFP) is a process intended to allow us (the Python Software Foundation) to collect proposals from potential contractors and select contractor(s) best suited to fulfill the specified work. After the RFP period closes we will evaluate the received proposals based on the evaluation criteria, seek clarification from proposers as necessary, and select one or more contractors to complete the work specified in the scope section.
Note: This Request For Proposal document may be updated to reflect things that we learn during the process. The canonical version and history is available here.
Fill this form and attach the proposal as a PDF file. Form submissions without the proposal file will not be considered.
Proposals must be submitted before the end of the day March 4, 2022 AoE
A submission must, at a minimum, include the following elements:
- Description of the team or person that will perform the work.
- What Role(s) are you proposing for? Please propose for Frontend Developer, Backend Developer, or both.
- General overview and names of individuals.
- Experience with relevant technologies. This could be a copy of your CV/résumé.
- Who would the PSF be contracting with? Are you an individual freelancer or a firm/corporation? If you're subcontracting, then to whom?
- Examples of similarly-complex projects completed previously. Referencing contributions to free/open source projects is encouraged.
- Links to Github repo or projects
- For the frontend developer role, please highlight any UX/UI design experience
- Agreement to project management and reporting requirements.
- Agreement to the PSF Code of Conduct
- Agreement to our project timeline for the Role(s) proposer is applying for (proposers may suggest adjustments based on your availability).
Please submit a single PDF file.
- Contains all elements specified in the elements of the proposal.
- Proposal is detailed enough to properly assess further criteria.
- Formatting and submission requirements:
- Does the proposal demonstrate relevant experience necessary to complete the work?
- Is there demonstrable experience with enough of the relevant technologies for each Role to support timelines?
- Do the examples of similarly complex projects and any references to past free/open source software contributions indicate competence?
- Do the proposers agree to the project management and reporting requirements?
- Do the proposers agree to the PSF Code of Conduct?
- Do the proposers agree to the project timeline for the role? Are deviations from our timeline explained and supported?
Shortlisted proposals will be invited for an interview.
This RFP is seeking a backend developer and a frontend developer to code, test, document and deploy the organization account feature in PyPI.
Budget for each role: Up to US $98,000 for approx. 560 hours depending on contractor rate
We expect both roles to start by early April. Both roles can be done remotely. Each working week consists of 35 hours. Each milestone is applicable to the backend and frontend developer roles.
Timeline: 10 weeks
Specific tasks
- Onboarding
- Enable a user to create an organization account
- Define permission level for owner, admin and member
- Allow management of users in a organization based on permission level
- Allow management of projects in a organization based on permission level
Timeline: 3 weeks
Specific tasks
- Define billing manager role
- Define billing mechanism by which payment will be collected and managed
Timeline: 3 weeks
Specific tasks
- Define PSF admin role
- Create dashboard to manage accounts and view analytics
This project is intended to be completed over a 16 week period beginning April 2022. Proposals with a shorter or longer timeline are acceptable if it is explained, and supported by estimated budget and costs.
The codebase behind PyPI is called Warehouse and is licensed under the Apache License 2.0. All work submitted or dependencies added must be compliant with this license.
The backend codebase is in Python with a CSS, HTML, and JavaScript frontend (using the Stimulus framework).
Familiarity and expertise with all technologies is not required. Strong Python skills and experience are a must, though.
For the best primer, see the developer documentation for Warehouse.
You can also see the complete codebase on GitHub.
- Python 3.9
- Pyramid
- PostgreSQL - SQLAlchemy - psycopg2
- Redis
Note: Our frontend is primarily static; these tools power the toolchain that creates our final assets.
This project will run in 2 week sprints with testing at the end of each sprint. The project manager will create a sprint board to ensure project progress visibility. Each milestone will consist of task tickets which can be viewed on the sprint board. Contractors will be expected to attend weekly meetings lasting 30-45 minutes to assess project progress, provide additional updates via Slack, participate on the sprint board and submit code for testing. Testing will be done by the contractors and end users.
If you have any questions, please email the Packaging project manager- Shamika Mohanan <sm@pyfound.org> .