Upstream

Differences between revisions 1 and 40 (spanning 39 versions)
Revision 1 as of 2009-03-03 18:51:49
Size: 31
Editor: astatine
Comment:
Revision 40 as of 2010-02-18 12:24:46
Size: 6645
Editor: 28
Comment: Added some more info on translations and the Launchpad integration library
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Ubuntu Upstream Relations = <<Include(Upstream/Header)>>

In Ubuntu it's important to us to have a good relationship with our Upstream projects and an efficient workflow we both benefit from.

The Upstream namespace on the wiki is all about:
 * Best practices for collaboration between Ubuntu and Upstream
 * giving Upstreams better visibility into what's happening in Ubuntu
 * Recommendations for engaging and working with an Upstream project
 * Information for upstreams to help get their packages represented at the highest quality level in Ubuntu.

== How Ubuntu Works ==
 * [[UbuntuDevelopment|Overview]] of '''Ubuntu Development'''
   * Our relationship with [[Debian|Debian]].
   * How our [[http://www.ubuntu.com/community/processes/governance|governance]] works.
  * Our [[ReleaseSchedule|release schedule]], including freezes and milestones. Ubuntu is based on [[TimeBasedReleases]], so we pick these dates ahead of time.
  * Our [[StableReleaseUpdates|Stable Release Policy]] - this is information handy if you have a fix that you would like to see shipped in a current stable release.
  * Our [[SecurityTeam/Policies|security policies]] - Security Team [[SecurityTeam/Contacts|contact information]]
 * How we deal with '''Bug Reports'''
  * [[Bugs/Upstream|Bugs and upstream]]
  * [[https://launchpad.net/ubuntu/+upstreamreport|Ubuntu Upstream Report]] - Low hanging fruit for bugs you might have fixed that we might need help with.
 * How we use '''Translations'''
  * [[Translations/Upstream|Upstream and translations]]
  * [[Translations/TranslationLifecycle|Ubuntu translations lifecycle]]
  * [[https://translations.launchpad.net/ubuntu|Ubuntu translations in Launchpad]]

=== How to Get In Ubuntu ===

If your existing software is not available in Ubuntu then here are some steps to get your package in there. This is the recommended method for getting your packages into the distribution. Once you're in Ubuntu and Debian, then maintenance of the package becomes just a matter of updating it.

 * [[PackagingGuide|Packaging Guide]] - Your software needs to be packaged up in .deb format. [[UbuntuDevelopment/NewPackages|This page]] has information for new packages that is important.
 * [[MOTU/GettingStarted|Getting Started]] - After you have packages you should get ahold of a MOTU to peer review your work. Remember that this is done on a volunteer basis, so please have realistic expectations on how quickly your package will be reviewed. It helps tremendously if someone from your existing upstream community can help out with packaging, do bug workflow, and do general [[/Adopt|upstream contact]] work. If you are serious about maintaining your software in Ubuntu, then we recommend you just become and Ubuntu Developer by following [[../UbuntuDevelopment|Ubuntu development]].
 * If your software is included in the main Ubuntu repository, there are some additional packaging considerations regarding [[UbuntuDevelopment/Internationalisation/Packaging|translations]].
 * Most software lives in the universe component of Ubuntu, which, if possible, is synced from Debian on a regular basis. Getting your software packaged in Debian has many benefits.
   * Debian has a large developer community, and also more [[http://wiki.debian.org/Teams|development teams]]. It is likely that you will be able to integrate an existing team, that will help you get your software packaged.
   * Your software will be in both distros at once, available to more users. You avoid duplicating efforts.
   * Your software will benefit from all the Quality Assurance efforts done in Debian, as well as from those in Ubuntu.
   * Please note that if your software packaging has licensing issues or glaring flaws that skipping the Debian requirements will likely mean that it won't meet Ubuntu requirements.
 
=== How to Get Packages Out Fast (aka. quick and dirty) ===

Launchpad provides a service called Personal Package Archives(PPA). Launchpad will build packages for i386, AMD64, and armel and can build for multiple Ubuntu releases for you automatically, so it's a great way to get your stuff "out there" quickly. The drawback is that it doesn't come with Ubuntu by default so people who want to use your packages will need to run a command to add the repository. You can also have multiple PPAs, so if you want to do something like have a stable one for your stable releases and a more crackful (or daily!) PPA builds for developers/testers then that's also available.

 * [[https://help.launchpad.net/Packaging/PPA|Documentation for PPAs]] - How to set them up.

Remember that PPAs are great for getting things out there, but getting your packages into Ubuntu in the long term will end up being less work and easier for users to find; however they are a great playground for risky branches or features you might want tested.

=== If you miss a release ===

You can request to have your package [[https://help.ubuntu.com/community/UbuntuBackports|backported]] to an older release if you've already got a package in the developmental release. This usually happens after the release and your package has gotten into Debian and it gets synced automatically.

== Integration with Ubuntu ==

Generally speaking if you're a GNOME or KDE application then you should follow the conventions for those projects. However we have some useful things that you might want to consider integrating into your application:

 * Use [[Apport/|apport]] to get crash information on your software by writing your own [[/Apport/DeveloperHowTo|apport hooks]].
 * [[https://launchpad.net/launchpad-integration|Launchpad integration]] is a library that adds an entry to the help menu so people can file bugs, translate and find out more information about a package. [[UbuntuDevelopment/Internationalisation/Coding#LPI|Here]] you'll find the technical details on how to use it.
 * [[MessagingMenu|Messaging Menu]] - The messaging menu provides quick access to messages that have queued up while the user was away.
 * [[DesktopExperienceTeam/ApplicationIndicators|Application Indicators]] - our plan to clean up the notification area.
 * [[NotifyOSD|Notify-OSD]] - slick-looking notification bubbles.

= Knowledge Base =
 * '''[[Upstream/Adopt|Adopt an Upstream]] - if you are highly interested in some Upstream project and want work with them to improve it in Ubuntu''' - this is a good starting point if you want to start going through bugs.
 * [[Upstream/AdoptingTemplate|Template]] to adopt a project.
 * [[UpstreamGuide|How you as an Upstream project can make your Ubuntu packager's life easier]]

----
CategoryUpstream

In Ubuntu it's important to us to have a good relationship with our Upstream projects and an efficient workflow we both benefit from.

The Upstream namespace on the wiki is all about:

  • Best practices for collaboration between Ubuntu and Upstream
  • giving Upstreams better visibility into what's happening in Ubuntu
  • Recommendations for engaging and working with an Upstream project
  • Information for upstreams to help get their packages represented at the highest quality level in Ubuntu.

How Ubuntu Works

How to Get In Ubuntu

If your existing software is not available in Ubuntu then here are some steps to get your package in there. This is the recommended method for getting your packages into the distribution. Once you're in Ubuntu and Debian, then maintenance of the package becomes just a matter of updating it.

  • Packaging Guide - Your software needs to be packaged up in .deb format. This page has information for new packages that is important.

  • Getting Started - After you have packages you should get ahold of a MOTU to peer review your work. Remember that this is done on a volunteer basis, so please have realistic expectations on how quickly your package will be reviewed. It helps tremendously if someone from your existing upstream community can help out with packaging, do bug workflow, and do general upstream contact work. If you are serious about maintaining your software in Ubuntu, then we recommend you just become and Ubuntu Developer by following Ubuntu development.

  • If your software is included in the main Ubuntu repository, there are some additional packaging considerations regarding translations.

  • Most software lives in the universe component of Ubuntu, which, if possible, is synced from Debian on a regular basis. Getting your software packaged in Debian has many benefits.
    • Debian has a large developer community, and also more development teams. It is likely that you will be able to integrate an existing team, that will help you get your software packaged.

    • Your software will be in both distros at once, available to more users. You avoid duplicating efforts.
    • Your software will benefit from all the Quality Assurance efforts done in Debian, as well as from those in Ubuntu.
    • Please note that if your software packaging has licensing issues or glaring flaws that skipping the Debian requirements will likely mean that it won't meet Ubuntu requirements.

How to Get Packages Out Fast (aka. quick and dirty)

Launchpad provides a service called Personal Package Archives(PPA). Launchpad will build packages for i386, AMD64, and armel and can build for multiple Ubuntu releases for you automatically, so it's a great way to get your stuff "out there" quickly. The drawback is that it doesn't come with Ubuntu by default so people who want to use your packages will need to run a command to add the repository. You can also have multiple PPAs, so if you want to do something like have a stable one for your stable releases and a more crackful (or daily!) PPA builds for developers/testers then that's also available.

Remember that PPAs are great for getting things out there, but getting your packages into Ubuntu in the long term will end up being less work and easier for users to find; however they are a great playground for risky branches or features you might want tested.

If you miss a release

You can request to have your package backported to an older release if you've already got a package in the developmental release. This usually happens after the release and your package has gotten into Debian and it gets synced automatically.

Integration with Ubuntu

Generally speaking if you're a GNOME or KDE application then you should follow the conventions for those projects. However we have some useful things that you might want to consider integrating into your application:

  • Use apport to get crash information on your software by writing your own apport hooks.

  • Launchpad integration is a library that adds an entry to the help menu so people can file bugs, translate and find out more information about a package. Here you'll find the technical details on how to use it.

  • Messaging Menu - The messaging menu provides quick access to messages that have queued up while the user was away.

  • Application Indicators - our plan to clean up the notification area.

  • Notify-OSD - slick-looking notification bubbles.

Knowledge Base


CategoryUpstream

Upstream (last edited 2017-11-27 15:47:17 by bryanquigley)