Changelog
Follow Django Packages updates and improvements.
🔎 PostgreSQL full-text search for djangopackages
We recently introduced PostgreSQL full-text search to power the global search on djangopackages.org. This update improves how packages and grids are discovered across the site. You can see the full implementation in the pull request: #1542
What changed in search
- More relevant results: Search now ranks results by both text relevance and package health. Matches in titles and slugs are prioritized.
- Partial and fuzzy matching: If you only remember part of a package name, or make a small typo, there’s still a good chance the right result will show up.
- Better search suggestions: Typing into the global search should now feel more helpful when narrowing down packages or grids.
- Find packages you contributed to: Typing your GitHub username will now show packages you’ve contributed to, making it easier to find your work.
A little about how we rolled it out
To introduce the change safely, we added a new search table and a feature flag that allows switching between the previous search and the new implementation. This gave us flexibility to test this feature in production and ensure it was working as expected before fully switching over. After monitoring the new search for a few weeks and confirming it was performing well, we removed the old search code and made the new full-text search the default.
A quick thank you
Thanks to pauloxnet and jefftriplett for taking the time to review the changes and share helpful feedback. Their input helped shape the final version before it was merged.
Try it and tell us
Give the global search a try and see how it feels. If something looks off or results could be improved, please open an issue on GitHub, feedback helps us keep improving the experience.
🧑🎨 A Fresh, Mobile-Friendly Look with Tailwind CSS
We have merged Pull Request #1471, rolling out a complete frontend refresh for Django Packages. This update transitions the site to a new unified design system built with Tailwind CSS.
Comparison Grids on Mobile
One of our main focus was ensuring the site’s most important feature—the comparison grids—works well on all devices. Previously difficult to view on smaller screens, the grids now adapt fluidly to mobile interfaces, allowing you to research and compare packages easily from your phone.
Package Details & Management
We have redesigned the Package Detail page to present documentation links, activity, and repo stats more clearly.
For maintainers and contributors, we’ve improved the form for Adding Packages. By using HTMX, making the process of submitting projects smoother.
Unified Design
The update brings a consistent look and feel to the entire platform. From the Home page to the Help sections, every view now shares a unified design language that aligns with the new styling.
Cleanup
We removed the specific "Python 3 Package List" (since Python 2 has been depricated for a while) and retired the legacy "Grid Landscape" view to reduce clutter.
The new theme is live. We invite you to explore the updated layout and share your feedback!
🎉 Django Packages now runs on Django 5.1
Django Packages now runs on Django 5.1. The upgrade process was painless, and we waited a few weeks until we felt our ecosystem of packages, which we rely on, was also upgraded and ready for Django 5.1.
This afternoon, we merged in issue #1246 and deployed it to production. We have seen clean logs for the last few hours.
The Django 5.0 to Django 5.1 upgrade cycle was pretty painless for us.
Djangonaut Space: Week Two Updates
It's week two of our Djangonaut Space session, and two of our teammates have already had their pull requests accepted and deployed.
We had three pull requests by Farhan Ali Raza merged, covering everything from doc updates #1172, a documentation link to our add/update package form #1173, and updating our PyPI updater to find documentation links #1180.
We merged Victoria Cruces's first contribution, adding our Changelog blog to our footer so everyone can find it now, #1185. If you are reading this from our Mastodon/Fosstodon account, then you are already aware of our Changelog.
Great work, Team Neptune!
Bugfixes and `/api/v3/users/` endpoint changes
While doing routine maintenance to keep Django Packages updated #1156, we fixed a bug in the Python3 view page #1157.
We also noticed a legacy /api/v3/users/ endpoint that aggregates users with their GitHub and GitLab user accounts, generating some 500 errors in our Sentry logs.
This afternoon, we took a proactive stance by implementing authentication for our user REST endpoints #1158. We plan to discuss these REST endpoints in more detail with our project maintainers before we take the steps to fully remove them.
It's worth noting that there was no private data leakage, no passwords, and no emails leaked in these endpoints.
If you built a tool that depends on these REST endpoints, feel free to open a GitHub Issue, and we will consider your use case before we remove them.
Revamping Sitemap Generation on Django Packages
We're excited to announce a significant update to how sitemaps are generated on Django Packages, thanks to a major overhaul by Maksudul Haque. This enhancement, detailed in pull request #1147, transforms the way our sitemap.xml files are created, making our website more navigable for both users and search engines.
With this update, our sitemaps now encompass a broader range of content. In addition to the dynamic listings of packages and comparison grids that our community relies on, we've integrated more static pages and our regularly updated blog. This expansion ensures that all facets of Django Packages are more accessible and indexed efficiently, enhancing the visibility of the resources our community values most.
Enhancing User Profiles with New Social Link Options
Thanks to Ryan Cheley for significantly enhancing the social media connectivity on Django Packages' user profiles! With Ryan's contributions, detailed in GitHub issue #1115, profiles can now feature links to various platforms. Alongside the existing options, users can now include their GitLab and Bitbucket profiles and up to four links to other social media pages like Mastodon, LinkedIn, personal blogs, YouTube, and more.