[PATCH] package.deprecated: Create initial template

classic Classic list List threaded Threaded
32 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[PATCH] package.deprecated: Create initial template

Michał Górny-5
Signed-off-by: Michał Górny <[hidden email]>
---
 profiles/package.deprecated | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 profiles/package.deprecated

diff --git a/profiles/package.deprecated b/profiles/package.deprecated
new file mode 100644
index 000000000000..b4803a4ce68f
--- /dev/null
+++ b/profiles/package.deprecated
@@ -0,0 +1,17 @@
+####################################################################
+#
+# This file specifies packages that are considered deprecated (but not
+# masked yet).  It will trigger pkgcheck warnings whenever other
+# packages depend on them.
+#
+# When you add an entry to the top of this file, add your name, the date
+# in the UTC timezone, and an explanation of why something is getting
+# deprecated.
+#
+## Example:
+##
+## # Dev E. Loper <[hidden email]> (2019-07-01)
+## # This is no longer supported upstream, please switch to dev-foo/bar.
+## dev-foo/foo
+
+#--- END OF EXAMPLES ---
--
2.24.0


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Alexis Ballier-2
On Thu, 2019-12-05 at 17:09 +0100, Michał Górny wrote:
> +####################################################################
> +#
> +# This file specifies packages that are considered deprecated (but
> not
> +# masked yet).  It will trigger pkgcheck warnings whenever other
> +# packages depend on them.
>


repoman would be more useful for this


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Andreas K. Huettel
In reply to this post by Michał Górny-5
Am Donnerstag, 5. Dezember 2019, 17:09:57 CET schrieb Michał Górny:
[...]
> +# This file specifies packages that are considered deprecated (but not
> +# masked yet).  It will trigger pkgcheck warnings whenever other
> +# packages depend on them.

Just saying, this is an awesome functionality, and will be highly useful.

So, yes++

--
Andreas K. Hüttel
[hidden email]
Gentoo Linux developer
(council, toolchain, base-system, perl, libreoffice)



Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Matt Turner-5
In reply to this post by Michał Górny-5
On Thu, Dec 5, 2019 at 11:10 AM Michał Górny <[hidden email]> wrote:

>
> Signed-off-by: Michał Górny <[hidden email]>
> ---
>  profiles/package.deprecated | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>  create mode 100644 profiles/package.deprecated
>
> diff --git a/profiles/package.deprecated b/profiles/package.deprecated
> new file mode 100644
> index 000000000000..b4803a4ce68f
> --- /dev/null
> +++ b/profiles/package.deprecated
> @@ -0,0 +1,17 @@
> +####################################################################
> +#
> +# This file specifies packages that are considered deprecated (but not
> +# masked yet).  It will trigger pkgcheck warnings whenever other
> +# packages depend on them.
> +#
> +# When you add an entry to the top of this file, add your name, the date
> +# in the UTC timezone, and an explanation of why something is getting
> +# deprecated.
> +#
> +## Example:
> +##
> +## # Dev E. Loper <[hidden email]> (2019-07-01)
> +## # This is no longer supported upstream, please switch to dev-foo/bar.
> +## dev-foo/foo
> +
> +#--- END OF EXAMPLES ---
> --
> 2.24.0

Yes, please!

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

William Hubbs
In reply to this post by Alexis Ballier-2
On Thu, Dec 05, 2019 at 05:36:58PM +0100, Alexis Ballier wrote:

> On Thu, 2019-12-05 at 17:09 +0100, Michał Górny wrote:
> > +####################################################################
> > +#
> > +# This file specifies packages that are considered deprecated (but
> > not
> > +# masked yet).  It will trigger pkgcheck warnings whenever other
> > +# packages depend on them.
> >
>
>
> repoman would be more useful for this
I wouldn't stop pkgcheck from supporting this, but repoman should as
well.

Thanks,

William


signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Alexis Ballier-2
On Thu, 2019-12-05 at 10:53 -0600, William Hubbs wrote:

> On Thu, Dec 05, 2019 at 05:36:58PM +0100, Alexis Ballier wrote:
> > On Thu, 2019-12-05 at 17:09 +0100, Michał Górny wrote:
> > > +################################################################
> > > ####
> > > +#
> > > +# This file specifies packages that are considered deprecated
> > > (but
> > > not
> > > +# masked yet).  It will trigger pkgcheck warnings whenever other
> > > +# packages depend on them.
> > >
> >
> > repoman would be more useful for this
>
> I wouldn't stop pkgcheck from supporting this, but repoman should as
> well.
>
>
>

of course, that's what i meant ;)


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Michał Górny-5
In reply to this post by Alexis Ballier-2
On Thu, 2019-12-05 at 17:36 +0100, Alexis Ballier wrote:

> On Thu, 2019-12-05 at 17:09 +0100, Michał Górny wrote:
> > +####################################################################
> > +#
> > +# This file specifies packages that are considered deprecated (but
> > not
> > +# masked yet).  It will trigger pkgcheck warnings whenever other
> > +# packages depend on them.
> >
>
> repoman would be more useful for this
>
Then feel free to take repoman over, and start maintaining it.  I've
lost interest in contributing to the project after the last pointless
refactoring made adding anything even more effort, and it doesn't seem
that anyone else has.

Given that pkgcheck is a. faster by design, b. running checks
in parallel, c. has sane API making contributing a pleasure, I don't
really see a point in putting any more effort to support a dead repoman.

--
Best regards,
Michał Górny


signature.asc (631 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Mikle Kolyada-2
In reply to this post by Michał Górny-5
+1

5 декабря 2019 г. 19:09:57 GMT+03:00, "Michał Górny" <[hidden email]> пишет:
Signed-off-by: Michał Górny <[hidden email]>
profiles/package.deprecated | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 profiles/package.deprecated

diff --git a/profiles/package.deprecated b/profiles/package.deprecated
new file mode 100644
index 000000000000..b4803a4ce68f
--- /dev/null
+++ b/profiles/package.deprecated
@@ -0,0 +1,17 @@
+####################################################################
+#
+# This file specifies packages that are considered deprecated (but not
+# masked yet). It will trigger pkgcheck warnings whenever other
+# packages depend on them.
+#
+# When you add an entry to the top of this file, add your name, the date
+# in the UTC timezone, and an explanation of why something is getting
+# deprecated.
+#
+## Example:
+##
+## # Dev E. Loper <[hidden email]> (2019-07-01)
+## # This is no longer supported upstream, please switch to dev-foo/bar.
+## dev-foo/foo
+
+#--- END OF EXAMPLES ---

--
Простите за краткость, создано в K-9 Mail.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Alexis Ballier-2
In reply to this post by Michał Górny-5
On Thu, 2019-12-05 at 18:39 +0100, Michał Górny wrote:

> On Thu, 2019-12-05 at 17:36 +0100, Alexis Ballier wrote:
> > On Thu, 2019-12-05 at 17:09 +0100, Michał Górny wrote:
> > > +################################################################
> > > ####
> > > +#
> > > +# This file specifies packages that are considered deprecated
> > > (but
> > > not
> > > +# masked yet).  It will trigger pkgcheck warnings whenever other
> > > +# packages depend on them.
> > >
> >
> > repoman would be more useful for this
> >
>
> Then feel free to take repoman over, and start maintaining it.  I've
> lost interest in contributing to the project after the last pointless
> refactoring made adding anything even more effort, and it doesn't
> seem
> that anyone else has.
>
> Given that pkgcheck is a. faster by design, b. running checks
> in parallel, c. has sane API making contributing a pleasure, I don't
> really see a point in putting any more effort to support a dead
> repoman.
>

it's not about who's maintaining what here...
just s/pkgcheck/QA tools/ and be done with it


unless i missed something, repoman is still the standard for pre-commit
checks and raising everyone's attention on potential
improvements/issues; pkgcheck is mostly used by your CI checks for
producing huge reports, which is nice but addresses a different problem

i could see this file being useful for auto-generating lists on qa-
reports like for eapis too


as for your current views on repoman vs pkgcheck, i have nothing
against stopping using repoman and switching to pkgcheck, but AFAIK
this has yet to happen at a policy level


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Michał Górny-5
On Thu, 2019-12-05 at 18:59 +0100, Alexis Ballier wrote:

> On Thu, 2019-12-05 at 18:39 +0100, Michał Górny wrote:
> > On Thu, 2019-12-05 at 17:36 +0100, Alexis Ballier wrote:
> > > On Thu, 2019-12-05 at 17:09 +0100, Michał Górny wrote:
> > > > +################################################################
> > > > ####
> > > > +#
> > > > +# This file specifies packages that are considered deprecated
> > > > (but
> > > > not
> > > > +# masked yet).  It will trigger pkgcheck warnings whenever other
> > > > +# packages depend on them.
> > > >
> > >
> > > repoman would be more useful for this
> > >
> >
> > Then feel free to take repoman over, and start maintaining it.  I've
> > lost interest in contributing to the project after the last pointless
> > refactoring made adding anything even more effort, and it doesn't
> > seem
> > that anyone else has.
> >
> > Given that pkgcheck is a. faster by design, b. running checks
> > in parallel, c. has sane API making contributing a pleasure, I don't
> > really see a point in putting any more effort to support a dead
> > repoman.
> >
>
> it's not about who's maintaining what here...
> just s/pkgcheck/QA tools/ and be done with it
Oh, I've listed pkgcheck there because it's the only tool implementing
the file at the moment.  I'm happy to replace it with larger list or
something more generic once there are other tools.  However, I believe
that saying 'pkgcheck' right now has the advantage that devs know which
tool to use to see the result.

> unless i missed something, repoman is still the standard for pre-commit
> checks and raising everyone's attention on potential
> improvements/issues;

Nope.  Per quite recent Council meeting pkgcheck is fully acceptable
alternative, and to my knowledge a number of devs have switched already.
Because they value their time and good package quality.

>  pkgcheck is mostly used by your CI checks for
> producing huge reports, which is nice but addresses a different problem

There is nothing stopping you from running pkgcheck locally.  In fact,
it should work out of the box these days.  If you have any problems,
please report them and I'm sure they will be addressed promptly.

> i could see this file being useful for auto-generating lists on qa-
> reports like for eapis too

I don't think there's really a point in duplicating this.

--
Best regards,
Michał Górny


signature.asc (631 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Alec Warner-2
In reply to this post by Michał Górny-5


On Thu, Dec 5, 2019 at 8:10 AM Michał Górny <[hidden email]> wrote:
Signed-off-by: Michał Górny <[hidden email]>
---
 profiles/package.deprecated | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 profiles/package.deprecated


This looks great Michał, thanks for putting it together.

-A
 
diff --git a/profiles/package.deprecated b/profiles/package.deprecated
new file mode 100644
index 000000000000..b4803a4ce68f
--- /dev/null
+++ b/profiles/package.deprecated
@@ -0,0 +1,17 @@
+####################################################################
+#
+# This file specifies packages that are considered deprecated (but not
+# masked yet).  It will trigger pkgcheck warnings whenever other
+# packages depend on them.
+#
+# When you add an entry to the top of this file, add your name, the date
+# in the UTC timezone, and an explanation of why something is getting
+# deprecated.
+#
+## Example:
+##
+## # Dev E. Loper <[hidden email]> (2019-07-01)
+## # This is no longer supported upstream, please switch to dev-foo/bar.
+## dev-foo/foo
+
+#--- END OF EXAMPLES ---
--
2.24.0


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Gerion Entrup
In reply to this post by Michał Górny-5
Am Donnerstag, 5. Dezember 2019, 19:04:50 CET schrieb Michał Górny:
> On Thu, 2019-12-05 at 18:59 +0100, Alexis Ballier wrote:
> > unless i missed something, repoman is still the standard for pre-commit
> > checks and raising everyone's attention on potential
> > improvements/issues;
>
> Nope.  Per quite recent Council meeting pkgcheck is fully acceptable
> alternative, and to my knowledge a number of devs have switched already.
> Because they value their time and good package quality.

As a side note:
In this case, can someone with knowledge how to use pkgcheck please update
https://wiki.gentoo.org/wiki/GitHub_Pull_Requests#Step_4:_User_updates_the_local_repository

I have always used it as first address when making (occasional) pull requests.

Thanks,
Gerion


signature.asc (673 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Alexis Ballier-2
In reply to this post by Michał Górny-5
On Thu, 2019-12-05 at 19:04 +0100, Michał Górny wrote:

> On Thu, 2019-12-05 at 18:59 +0100, Alexis Ballier wrote:
> > On Thu, 2019-12-05 at 18:39 +0100, Michał Górny wrote:
> > > On Thu, 2019-12-05 at 17:36 +0100, Alexis Ballier wrote:
> > > > On Thu, 2019-12-05 at 17:09 +0100, Michał Górny wrote:
> > > > > +############################################################
> > > > > ####
> > > > > ####
> > > > > +#
> > > > > +# This file specifies packages that are considered
> > > > > deprecated
> > > > > (but
> > > > > not
> > > > > +# masked yet).  It will trigger pkgcheck warnings whenever
> > > > > other
> > > > > +# packages depend on them.
> > > > >
> > > >
> > > > repoman would be more useful for this
> > > >
> > >
> > > Then feel free to take repoman over, and start maintaining
> > > it.  I've
> > > lost interest in contributing to the project after the last
> > > pointless
> > > refactoring made adding anything even more effort, and it doesn't
> > > seem
> > > that anyone else has.
> > >
> > > Given that pkgcheck is a. faster by design, b. running checks
> > > in parallel, c. has sane API making contributing a pleasure, I
> > > don't
> > > really see a point in putting any more effort to support a dead
> > > repoman.
> > >
> >
> > it's not about who's maintaining what here...
> > just s/pkgcheck/QA tools/ and be done with it
>
> Oh, I've listed pkgcheck there because it's the only tool
> implementing
> the file at the moment.  I'm happy to replace it with larger list or
> something more generic once there are other tools.  However, I
> believe
> that saying 'pkgcheck' right now has the advantage that devs know
> which
> tool to use to see the result.

IMHO maintaining such a list is better suited for devmanual or wiki;
just like skel.ebuild could be improved by removing portage references
and refer to PMS


> > pkgcheck is mostly used by your CI checks for
> > producing huge reports, which is nice but addresses a different
> > problem
>
> There is nothing stopping you from running pkgcheck locally.  In
> fact,
> it should work out of the box these days.  If you have any problems,
> please report them and I'm sure they will be addressed promptly.

Sure I did that to get reports like what CI does for me now but that's
always been a different usecase; I wasn't aware pkgcheck had the
equivalent of repoman commit


> > i could see this file being useful for auto-generating lists on qa-
> > reports like for eapis too
>
> I don't think there's really a point in duplicating this.

For now certainly not. Once someone wants to wipe a deprecated package
this could come in handy instead of searching a huge html page, but
sure this could be fixed the other way by having this in the per-check
reports like what is on the left side of the current CI reports


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Aaron Bauman-2
In reply to this post by Michał Górny-5
On Thu, Dec 05, 2019 at 05:09:57PM +0100, Michał Górny wrote:

> Signed-off-by: Michał Górny <[hidden email]>
> ---
>  profiles/package.deprecated | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>  create mode 100644 profiles/package.deprecated
>
> diff --git a/profiles/package.deprecated b/profiles/package.deprecated
> new file mode 100644
> index 000000000000..b4803a4ce68f
> --- /dev/null
> +++ b/profiles/package.deprecated
> @@ -0,0 +1,17 @@
> +####################################################################
> +#
> +# This file specifies packages that are considered deprecated (but not
> +# masked yet).  It will trigger pkgcheck warnings whenever other
> +# packages depend on them.
> +#
> +# When you add an entry to the top of this file, add your name, the date
> +# in the UTC timezone, and an explanation of why something is getting
> +# deprecated.
> +#
> +## Example:
> +##
> +## # Dev E. Loper <[hidden email]> (2019-07-01)
> +## # This is no longer supported upstream, please switch to dev-foo/bar.
> +## dev-foo/foo
> +
> +#--- END OF EXAMPLES ---
> --
> 2.24.0
>
>
Thank you for putting this together!

--
Cheers,
Aaron

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Chí-Thanh Christopher Nguyễn
In reply to this post by Michał Górny-5
Michał Górny schrieb:
> +####################################################################
> +#
> +# This file specifies packages that are considered deprecated

I think that is not an apt description in my understanding of your original
post on the matter. The package.deprecated file is supposed to contain not
just (qualified) package names, but some sort of package dependency
specifications (PMS 8.2.6).

Perhaps the examples should also reflect this.


Best regards,
Chí-Thanh Christopher Nguyễn

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Michał Górny-5
On Fri, 2019-12-06 at 01:36 +0100, Chí-Thanh Christopher Nguyễn wrote:

> Michał Górny schrieb:
> > +####################################################################
> > +#
> > +# This file specifies packages that are considered deprecated
>
> I think that is not an apt description in my understanding of your original
> post on the matter. The package.deprecated file is supposed to contain not
> just (qualified) package names, but some sort of package dependency
> specifications (PMS 8.2.6).
>
> Perhaps the examples should also reflect this.
>
I haven't tested anything but bare package names.  Feel free to test
and let me know how much of the dep syntax works.

--
Best regards,
Michał Górny


signature.asc (631 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Tim Harder-5
On 2019-12-06 Fri 02:15, Michał Górny wrote:

> > I think that is not an apt description in my understanding of your original
> > post on the matter. The package.deprecated file is supposed to contain not
> > just (qualified) package names, but some sort of package dependency
> > specifications (PMS 8.2.6).
> >
> > Perhaps the examples should also reflect this.
> >
>
> I haven't tested anything but bare package names.  Feel free to test
> and let me know how much of the dep syntax works.

Speaking for pkgcheck, it supports the standard atom dep spec, i.e.
anything that works in package.mask should also work in
package.deprecated.

However, note that a matching pkg found both in the base package.mask
and package.deprecated won't be flagged as deprecated as it's currently
assumed those are mutually exclusive entries (and such entries might be
flagged at a later time).

Tim

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Tim Harder-5
In reply to this post by Alexis Ballier-2
On 2019-12-05 Thu 17:00, Alexis Ballier wrote:
> > > pkgcheck is mostly used by your CI checks for
> > > producing huge reports, which is nice but addresses a different
> > > problem
> > There is nothing stopping you from running pkgcheck locally.  In
> > fact,
> > it should work out of the box these days.  If you have any problems,
> > please report them and I'm sure they will be addressed promptly.

> Sure I did that to get reports like what CI does for me now but that's
> always been a different usecase; I wasn't aware pkgcheck had the
> equivalent of repoman commit

While I dislike contributing more to this off-topic tangent, since I've
fielded this question/request in IRC a few times in the past I figure I
might as well address it again here for the IRC-averse.

Personally I use pkgcheck as a QA tool and *git* (or another vcs tool)
as a commit tool, just like how I used to use repoman and cvs a long
time ago. I generally dislike when cli tools amalgamate disparate
features that they weren't designed for so no one has been able to
convince me why a tool designed to verify ebuilds and their related
repos should support commit capabilities internally.

Furthermore, pkgcheck was designed to scale towards scanning multiple
pkgs, custom restrictions, or entire repos while I assume the majority
of repoman usage is run against singular pkgs. In many cases, a
multi-pkg scan doesn't map to a single commit so that functionality
would be pretty useless in those situations.

To aid those who believe this commit functionality necessary, I've
mentioned I would support improving API access and/or configurable exit
status settings allowing for easier pkgcheck scripting or other types of
external usage.

Tim

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Alexis Ballier-2
On Fri, 2019-12-06 at 03:23 -0500, Tim Harder wrote:

> On 2019-12-05 Thu 17:00, Alexis Ballier wrote:
> > > > pkgcheck is mostly used by your CI checks for
> > > > producing huge reports, which is nice but addresses a different
> > > > problem
> > > There is nothing stopping you from running pkgcheck locally.  In
> > > fact,
> > > it should work out of the box these days.  If you have any
> > > problems,
> > > please report them and I'm sure they will be addressed promptly.
> > Sure I did that to get reports like what CI does for me now but
> > that's
> > always been a different usecase; I wasn't aware pkgcheck had the
> > equivalent of repoman commit
>
> While I dislike contributing more to this off-topic tangent, since
> I've
> fielded this question/request in IRC a few times in the past I figure
> I
> might as well address it again here for the IRC-averse.
>
> Personally I use pkgcheck as a QA tool and *git* (or another vcs
> tool)
> as a commit tool, just like how I used to use repoman and cvs a long
> time ago. I generally dislike when cli tools amalgamate disparate
> features that they weren't designed for so no one has been able to
> convince me why a tool designed to verify ebuilds and their related
> repos should support commit capabilities internally.

it's not just like repoman and cvs since repoman commit did push ;)
it will never be perfect but i really like repoman commit to refuse to
even commit if there's something obviously wrong

as you write below, it's just a matter of checking exit status and
using git, which can be done by scripting, but the script is standard
(*) and mandated to be part of the workflow

it also allows to check or templatize commit messages to follow policy

(*) and force the use of some handy git options like only commit paths
starting from cwd even if other files had been git added, which i never
remember what is the git cli option for this

Alexis.


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] package.deprecated: Create initial template

Tim Harder-5
On 2019-12-06 Fri 04:03, Alexis Ballier wrote:
> it's not just like repoman and cvs since repoman commit did push ;)
> it will never be perfect but i really like repoman commit to refuse to
> even commit if there's something obviously wrong

I'm more of the opinion (and am working towards that practicality in
terms of runtime speed) that a subset of QA checks should be run as a
git hook which would cause push failures on certain classes of bad
commits.

> as you write below, it's just a matter of checking exit status and
> using git, which can be done by scripting, but the script is standard
> (*) and mandated to be part of the workflow

> it also allows to check or templatize commit messages to follow policy

Technically pkgcheck supports more git-related checks than repoman last
I checked, i.e. result keywords including BadCommitSummary,
DirectStableKeywords, DroppedUnstableKeywords, DroppedStableKeywords,
DirectNoMaintainer, and MissingSignOff; with possible future additions
such as warning when modifying deps in an ebuild without revbumping.

Futhermore, one can scan against all commits in parallel via `pkgcheck
scan --commits` which will enable potential commit results that are
otherwise skipped.

Anyway, my main point is that if someone really wants commit
functionality it's semi-trivial to script something similar to what
repoman does (assuming exit status/api support exists) and if it's
decent enough quality (including tests) I'd probably consider adding it
to the pkgcheck repo.

Tim

12