D6728: config: add experimental argument to the config registrar

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon Aug 19 10:10:15 EDT 2019


This change breaks contrib/perf.py on older version (that extension is 
special and we expect it to be compatible with older version). Can you 
follow up with a fix ?

(note: when doing this kind of change it is often useful to have 
different patch for adding the feature and using it. It help to deal 
with this kind of case).

On 8/15/19 4:22 PM, navaneeth.suresh (Navaneeth Suresh) wrote:
> navaneeth.suresh created this revision.
> Herald added a subscriber: mercurial-devel.
> Herald added a reviewer: hg-reviewers.
> 
> REVISION SUMMARY
>    Until now, there are almost 28 config items which are considered as
>    `experimental` but, not present in the `experimental` section of
>    the registrar. This patch adds an `experimental` argument to the
>    config registrar to mark such config items.
> 
> REPOSITORY
>    rHG Mercurial
> 
> REVISION DETAIL
>    https://phab.mercurial-scm.org/D6728
> 
> AFFECTED FILES
>    contrib/perf.py
>    hgext/fsmonitor/__init__.py
>    hgext/remotefilelog/__init__.py
>    hgext/sqlitestore.py
>    mercurial/configitems.py
> 
> CHANGE DETAILS
> 
> diff --git a/mercurial/configitems.py b/mercurial/configitems.py
> --- a/mercurial/configitems.py
> +++ b/mercurial/configitems.py
> @@ -39,13 +39,14 @@
>       """
>   
>       def __init__(self, section, name, default=None, alias=(),
> -                 generic=False, priority=0):
> +                 generic=False, priority=0, experimental=False):
>           self.section = section
>           self.name = name
>           self.default = default
>           self.alias = list(alias)
>           self.generic = generic
>           self.priority = priority
> +        self.experimental = experimental
>           self._re = None
>           if generic:
>               self._re = re.compile(self.name)
> @@ -166,6 +167,7 @@
>   )
>   coreconfigitem('censor', 'policy',
>       default='abort',
> +    experimental=True,
>   )
>   coreconfigitem('chgserver', 'idletimeout',
>       default=3600,
> @@ -184,9 +186,11 @@
>   )
>   coreconfigitem('cmdserver', 'max-repo-cache',
>       default=0,
> +    experimental=True,
>   )
>   coreconfigitem('cmdserver', 'message-encodings',
>       default=list,
> +    experimental=True,
>   )
>   coreconfigitem('cmdserver', 'track-log',
>       default=lambda: ['chgserver', 'cmdserver', 'repocache'],
> @@ -207,6 +211,7 @@
>   )
>   coreconfigitem('commands', 'grep.all-files',
>       default=False,
> +    experimental=True,
>   )
>   coreconfigitem('commands', 'resolve.confirm',
>       default=False,
> @@ -226,6 +231,7 @@
>   )
>   coreconfigitem('commands', 'status.skipstates',
>       default=[],
> +    experimental=True,
>   )
>   coreconfigitem('commands', 'status.terse',
>       default='',
> @@ -314,6 +320,7 @@
>   )
>   coreconfigitem('convert', 'ignoreancestorcheck',
>       default=False,
> +    experimental=True,
>   )
>   coreconfigitem('convert', 'localtimezone',
>       default=False,
> @@ -684,18 +691,22 @@
>   )
>   coreconfigitem('format', 'chunkcachesize',
>       default=None,
> +    experimental=True,
>   )
>   coreconfigitem('format', 'dotencode',
>       default=True,
>   )
>   coreconfigitem('format', 'generaldelta',
>       default=False,
> +    experimental=True,
>   )
>   coreconfigitem('format', 'manifestcachesize',
>       default=None,
> +    experimental=True,
>   )
>   coreconfigitem('format', 'maxchainlen',
>       default=dynamicdefault,
> +    experimental=True,
>   )
>   coreconfigitem('format', 'obsstore-version',
>       default=None,
> @@ -718,6 +729,7 @@
>   )
>   coreconfigitem('format', 'internal-phase',
>       default=False,
> +    experimental=True,
>   )
>   coreconfigitem('fsmonitor', 'warn_when_unused',
>       default=True,
> @@ -823,6 +835,7 @@
>   )
>   coreconfigitem('merge', 'preferancestor',
>           default=lambda: ['*'],
> +        experimental=True,
>   )
>   coreconfigitem('merge', 'strict-capability-check',
>       default=False,
> @@ -1007,6 +1020,7 @@
>   )
>   coreconfigitem('storage', 'new-repo-backend',
>       default='revlogv1',
> +    experimental=True,
>   )
>   coreconfigitem('storage', 'revlog.optimize-delta-parent-choice',
>       default=True,
> @@ -1117,6 +1131,7 @@
>   )
>   coreconfigitem('sparse', 'missingwarning',
>       default=True,
> +    experimental=True,
>   )
>   coreconfigitem('subrepos', 'allowed',
>       default=dynamicdefault,  # to make backporting simpler
> @@ -1463,6 +1478,7 @@
>   )
>   coreconfigitem('web', 'view',
>       default='served',
> +    experimental=True,
>   )
>   coreconfigitem('worker', 'backgroundclose',
>       default=dynamicdefault,
> diff --git a/hgext/sqlitestore.py b/hgext/sqlitestore.py
> --- a/hgext/sqlitestore.py
> +++ b/hgext/sqlitestore.py
> @@ -90,7 +90,8 @@
>   
>   # experimental config: storage.sqlite.compression
>   configitem('storage', 'sqlite.compression',
> -           default='zstd' if zstd else 'zlib')
> +           default='zstd' if zstd else 'zlib',
> +           experimental=True)
>   
>   # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
>   # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
> diff --git a/hgext/remotefilelog/__init__.py b/hgext/remotefilelog/__init__.py
> --- a/hgext/remotefilelog/__init__.py
> +++ b/hgext/remotefilelog/__init__.py
> @@ -219,7 +219,7 @@
>   
>   configitem('remotefilelog', 'gcrepack', default=False)
>   configitem('remotefilelog', 'repackonhggc', default=False)
> -configitem('repack', 'chainorphansbysize', default=True)
> +configitem('repack', 'chainorphansbysize', default=True, experimental=True)
>   
>   configitem('packs', 'maxpacksize', default=0)
>   configitem('packs', 'maxchainlen', default=1000)
> diff --git a/hgext/fsmonitor/__init__.py b/hgext/fsmonitor/__init__.py
> --- a/hgext/fsmonitor/__init__.py
> +++ b/hgext/fsmonitor/__init__.py
> @@ -167,6 +167,7 @@
>   )
>   configitem('fsmonitor', 'verbose',
>       default=True,
> +    experimental=True,
>   )
>   configitem('experimental', 'fsmonitor.transaction_notify',
>       default=False,
> diff --git a/contrib/perf.py b/contrib/perf.py
> --- a/contrib/perf.py
> +++ b/contrib/perf.py
> @@ -241,15 +241,19 @@
>       configitem = mercurial.registrar.configitem(configtable)
>       configitem(b'perf', b'presleep',
>           default=mercurial.configitems.dynamicdefault,
> +        experimental=True,
>       )
>       configitem(b'perf', b'stub',
>           default=mercurial.configitems.dynamicdefault,
> +        experimental=True,
>       )
>       configitem(b'perf', b'parentscount',
>           default=mercurial.configitems.dynamicdefault,
> +        experimental=True,
>       )
>       configitem(b'perf', b'all-timing',
>           default=mercurial.configitems.dynamicdefault,
> +        experimental=True,
>       )
>       configitem(b'perf', b'pre-run',
>           default=mercurial.configitems.dynamicdefault,
> @@ -259,6 +263,7 @@
>       )
>       configitem(b'perf', b'run-limits',
>           default=mercurial.configitems.dynamicdefault,
> +        experimental=True,
>       )
>   except (ImportError, AttributeError):
>       pass
> 
> 
> 
> To: navaneeth.suresh, #hg-reviewers
> Cc: mercurial-devel
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
> 

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list