Differences between revisions 45 and 91 (spanning 46 versions)
Revision 45 as of 2009-09-15 18:48:03
Size: 2082
Editor: abuehl
Comment: +link to TimeBasedReleasePlan
Revision 91 as of 2017-03-09 21:51:34
Size: 2982
Editor: JunWu
Comment: Include archived bugs when searching for "Easy bugs"
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== General == #pragma section-numbers 2
<<Include(A:dev)>>
Line 3: Line 4:
 * [[UpcomingReleaseNotes]]
 * Tips for [[ContributingChanges]] and creating [[SuccessfulPatch|SuccessfulPatches]]
 * [[ManagingBugs]] - how to work with the [[http://selenic.com/mercurial/bugs/|BTS]]
 * [[CompatibilityRules]] - how we keep our existing users from crying
 * [[OptionNaming]] - the conventions used to name command-line options
 * [[BasicCodingStyle]] - how to keep [[mpm]] from being grumpy with your code
 * [[WritingTests]] - how to add tests to the test suite
 * [[TranslatingMercurial]] - how to translate Mercurial into your own language
 * [[DevelopmentGuidelines]] - other things we try to follow when writing code
 * [[DeveloperRepos]] - where to find various public repositories of Mercurial work
 * [[NewFeatureDiscussions]] - A page of links to discussions about new features.
 * [[NewIdeas]] - Suggestions for features/extensions that would make someone happy
 * A list of [[Presentations]] and other related events.
 * [[MacOSXTools]] - Installing the tool chain on Mac OS X.
 * [[SummerOfCode]]
 * [[ProductName]] for the rules on using the name "Mercurial"
 * [[TimeBasedReleasePlan]]
= Developer Info =
Line 21: Line 6:
=== Modules in C ===
 * [[http://selenic.com/pipermail/mercurial-devel/2008-September/007985.html|September 2008 posting by Matt]] about how to do initializers and error handling in C modules.
Information on working on the Mercurial code base.
Line 24: Line 8:
== Mercurial Internals == <<TableOfContents>>
Line 26: Line 10:
 * [[DeveloperBasics]] - some basic code examples
 * [[MercurialApi]] - The public API for Mercurial
 * [[Design]] - Mercurial's data structures and how it uses them.
 * [[WhatGoesWhere]] - the project architecture
 * [[FileFormats]] - list of Mercurial's disk file formats
 * [[WireProtocol]] - the push/pull changegroup protocol
 * [[DebuggingFeatures]] - how to poke around in Mercurial's internals
 * [[Theming]] - how to create new styles for Mercurial's web interface
 * [[WritingExtensions]] - how to write Mercurial extensions
== Start hacking ==
 * [[https://www.mercurial-scm.org/repo/hg|Main repository]] &mdash; browse or clone the source (see [[DeveloperRepos]] for other repositories)
 * [[WritingExtensions|Writing Mercurial extensions]]
 * [[Theming]] Mercurial's web interface
 * [[DeveloperBasics|Some basic code examples]]
 * [[MercurialApi|Mercurial internal API]]
 * [[TranslatingMercurial|Translating Mercurial]] &mdash; how to translate Mercurial into your own language
Line 36: Line 18:
== Old Stuff == == Contributing code ==
 * [[ContributingChanges|Contributing changes]]
 * [[https://bz.mercurial-scm.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=NEED_EXAMPLE&bug_status=IN_PROGRESS&bug_status=TESTING&bug_status=RESOLVED&keywords=easy%2C &keywords_type=allwords&list_id=9573&order=changeddate DESC%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&query_format=advanced&resolution=---&resolution=ARCHIVED | Some easy bugs]] &mdash; tasks flagged as easy, a good entry point for new contributors
 * [[UIGuideline|UI guidelines]] &mdash; how to make consistent UI choices
 * [[CodingStyle|Coding style]]
 * [[WritingTests|Writing tests]]
 * [[HelpStyleGuide|Help style guide]] &mdash; how to write nice help
 * [[CompatibilityRules|Compatibility rules]] &mdash; how we keep our existing users from crying
 * [[ReviewProcess|Review process]] &mdash; how you can help get patches in
Line 38: Line 28:
 * First Mercurial [[UserSurvey]].
 * The old ToDo list and [[MissingFeatures]]
 * The pre-1.0 [[RoadMap]]
== Internals ==
 * [[Design]] - Mercurial's data structures and how it uses them
 * [[FileFormats|File formats]] - list of Mercurial's disk file formats
 * [[WhatGoesWhere|What goes where]] - the project architecture
 * [[WireProtocol|Wire protocol]] - the push/pull changegroup protocol
 * [[DebuggingFeatures|Debugging features]] - how to poke around in Mercurial's internals

== Working with the community ==
 * [[MailingLists|Mailing lists]]
 * [[ManagingBugs|Managing bugs]] &mdash; how to work with the [[BugTracker|bug tracker]]
 * [[TimeBasedReleasePlan|Time-based release plan]]
 * [[DeveloperRepos|Developer repositories]] &mdash; where to find various public repositories of Mercurial work
 * [[DevelopmentProcess|Development process]] &mdash; an overview of our development and release workflow
 * [[IRC]] &mdash; where most of the developers hang out
 * [[CategoryMeetings|Meetings]] &mdash; When we get the community together (about every 6 months)
 * [[ProjectInfrastructure|Project infrastructure]] &mdash; A list of project infrastructure and who administers it

== Feature proposals ==
 * [[CategoryNewFeatures|List of new feature proposals]]

== Developer tips ==
 * [[MacOSXTools]] &mdash; Installing the tool chain on Mac OS X.
 * Using [[MercurialUnderWine|Wine]] to test Windows support under Linux
 * Easy way of starting Mercurial hacking on Windows with [[HackableMercurial]]
Line 42: Line 54:
CategoryContributing CategoryDeveloper

Note:

This page is primarily intended for developers of Mercurial.

Developer Info

Information on working on the Mercurial code base.

1. Start hacking

2. Contributing code

3. Internals

4. Working with the community

5. Feature proposals

6. Developer tips

  • MacOSXTools — Installing the tool chain on Mac OS X.

  • Using Wine to test Windows support under Linux

  • Easy way of starting Mercurial hacking on Windows with HackableMercurial


CategoryDeveloper

DeveloperInfo (last edited 2017-03-09 21:51:34 by JunWu)