As Marco Ceppi has pointed me towards launchpadlib
, I wrote a little script that will do this for you. download it here
Run the script by calling python name_of_the_script.py
in a Terminal after you've downloaded and saved it. It will ask you for a programming language, case insensitive, and a search query (where wildcards, *
, are allowed). If you leave either of them blank, it will search across all, rather than none.
You'll need to install python-launchpadlib
before you can use it.
Here's some example output:
stefano@3000-G530:~$ python test.py
Enter a programming language or leave blank to find projects in all languages:
>>> Python
Enter a search query or leave blank for all:
>>> Calculator
calcool - A document based calculator tool...
evias - Web site used to apply Eve DB dump to Eve API results and get th...
txevolver - txEvolver is a Twisted-based set of libraries for performing ...
[...]
Is it a Launchpad project?
(If you already know that it is a Launchpad project, you can skip this.)
Not all projects found on Launchpad are actually hosted and developed there - some are mirrors of code hosted elsewhere (GitHub/Gitorious/etc), others come from Debian. These original sources are known as "upstream" projects, and it is usually best to submit patches at the source and let the changes arrive "downstream" in Ubuntu (usually in the next release).
It should be clearly indicated on the project page whether it is hosted elsewhere or on Launchpad. If not, just ask the project maintainers how they wish to receive changes. Some upstream projects prefer simple patch files, others prefer submissions/pushes via their respective hosts.
As a special note, official Ubuntu packages (software stored in the official Ubuntu repositories that you can install from the Software Center) have a few different ways to submit patches, as many of those packages come directly from Debian, and should ideally be fixed there rather than only in Ubuntu. (This is a whole other question.)
How to submit a patch
The general way to submit a patch is that you make your branch, commit to it locally and push it back to Launchpad:
bzr push lp:~user/project/branch-name
You can then propose your branch to merge into the parent you branched from, either via the web site, or using the bzr lp-propose
command.
If you've filed a bug, and your branch does fix it, be sure to do the following when committing, where 000000
is replaced with your bug number, assuming it is a bug reported on Launchpad, and not elsewhere instead.
bzr commit --fixes=lp:000000
A note on "default" workflow
This is pretty much the typical modern workflow, that you may compare to GitHub. Launchpad has been around a bit longer though, so this workflow evolved after the fact, rather than being built into the system from the beginning, so some older projects may rely on other methods of accepting patches. Most all newer projects rely on this workflow though, where on GitHub the "pull requests" have always been there, and people just default to using it because there was never a means to do something different on GitHub.
Best Answer
This list contains the reasons why it did not use back then and why it should not move now
Launchpad used Bazaar which was developed long back. GitHub did not exist that time (as Robin said) Launchpad was launched in 2004 and GitHub in 2008
GitHub is not open source. GitLab or Gitorious would be a better choice in this case. I know Launchpad was not FOSS initially, but it was released later
Initially GitHub did not have many features which Launchpad had, like teams. GitHub does not have a build system integrated with it, like PPA
Many projects in Launchpad heavily make use of the "Merge request" functionality which has very basic support in GitHub. It is called "Pull request" but Launchpad has better features and more detailed than GitHub
GitHub's Bug Tracker is next to useless (this may have changed by 2021). My pet project for a bug tracker might be more useful
Launchpad is owned by Canonical and they pay the developers. They have the complete control over their product. GitHub also is owned by GitHub/Microsoft.
GitHub uses Git for tracking releases using branches and tags. In Launchpad, which uses Bazaar also has this feature, but Launchpad explicitly enforces this outside the source control system. This would be a bit more easier for people who have to handle versions but don't want to dig inside the source code.
Just a small note: Github vs. Launchpad and git vs. bzr is sort of religious topic. I want to stay away from this endless discussion. I use which fits the use-case.