-
Notifications
You must be signed in to change notification settings - Fork 292
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: split this repository in five different (maybe more) repositories #2542
Comments
Isn't that approach a bit backwards? Shouldn't you/we first reduce coupling, and then possibly move things into a separate repositories, should it be still necessary afterwards? If we just split without reducing coupling, we're in for a world of pain without any benefits. |
I agree that there should first be an effort to reduce coupling. But such an effort only makes sense if we decide on splitting into multiple repos as a final goal. What would otherwise be the incentive for reducing coupling? |
@lizmat you can achieve easier testing, and run tests for decoupled components, even if you don't split into repos. (FTR I don't really care about the splitting either way, as long as it doesn't happen before the decoupling). |
@moritz the problem is that most of the stuff outside the documentation is not tested. In order to reduce coupling (or rat-nesting) we would need to devise a good amount of tests; but in order to to that, we need to eliminate coupling since it's not clear what's there because it needs to be there or what's simply a side effect. It's really a catch-22 situation, so I would really start by splitting, which will force decoupling. |
FWIW, one can get a fresh repo clone and cut it in pieces locally. Any number of file moving or changes can be done without breaking anything in current process. When one will achieve a separate set of components(directories), instructions for each one and other things like that ready, it will be easy to just git init & commit & push given directoried into created repositories. |
I am actively working on this whole set of problems.
|
Splitting the repository contents into a bunch of subdirectories that are still in the repository itself is an option. |
A related discussion just came up on #2662 - Specifically addressing the thought of splitting out some items from the documentation itself - if the goal is to have targeted distributions of docs via p6doc, or a copy of the website, that is something that can be done by generating user-specific artifacts at regular interviews (say, quarterly) for the users. IMO, this isn't something we should solve at the git repo level. That said, having it installable (say via a CPAN module via zef) would be great, but we don't need separate repos to accomplish that. Additionally, one of the comments on #2662 was regarding the size of downloads for the user; note that removing a file from HEAD doesn't mean it's not in the repo anymore; it's still there and being transferred, so any solution that simply removes the file from one repo and puts a copy in the other isn't helping on that front, if they're using git. (And if they're not using git, that's another pro for same repo, different artifacts, IMO) Regarding pulling out modules - it very much depends on purpose of those modules; Pod::Cache, for example, is very basic and only for build/testing, and exists as a module only to avoid code duplication. (The issue that it's untested is a separate one and can be addressed in place.) Pulling it out into a separate repo complicates development for little benefit. |
The thing is that we should create different repositories for different
targets. Right now this repo includes everything and the kitchen sink:
tools for doccers, the documentation itself, tools for generating an HTML
file from the documentation, the p6doc... That makes difficult to refactor,
makes testing take a loooong time, makes difficult to attract new
contributors... Splitting would have all kinds of benefits for developers,
with little or no negative impact on user experience.
|
Strongly disagree that breaking the repository into smaller repositories is the correct approach. |
Its functionality has been superseded by the new Documentable. It's had a nice run, but previously I deleted a couple of libraries that depended on it, so it was no longer functional. Refs #2996. But also: * Closes #2883 since disambiguation files are no longer generaed. * Closes #2801 since that's been fixed in documentable. * Closes #2592 since it works correctly in documentable. * Closes #2575 since indexing is now specified by a grammar in documentable. * Refs #2542: this is an ongoing work. * Closes #2539: initial tests were mede in a mini-docs site, then a staging site, then in production. * Closes #2529: mini-docs were used in the process of the new documentable, https://github.com/antoniogamiz/mini-doc/ * Closes #2499: Disambiguation is deprecated #2974 and is currently eliminated from production. * Closes #2498: It takes now around 15 minutes (in staging site) to generate documentation the first time, less than a minute to do it; 8 minutes in CircleCI. * Closes #2392: Now pages include metadata, and it's been resigned and disambituated. * Closes #2270: fixed in documentable. * Closes #1973, documentable now does not generate temporary files. * Closes #1952: caches can now be shared, since there exists one. However, it's not shared yet between pod2onebigpage, for instance. * Closes #1937, since this has been already spun off and released to the ecosystem * Closes #1854: fixed either here or in Documentable * Closes #1823: It's totally refactored and working independently. * Refs #516: the new Documentable allows, by specification, several types in the same page.
@lizmat this is the "big split" issue. |
Several of these steps were already done, please feel free to ignore my old opinion here for the remaining items. |
@JJ , can you summarize what's left to do before we can close out this ticket? |
Will try to next week.
El sáb, 16 abr 2022 a las 18:40, Will Coleda ***@***.***>)
escribió:
… @JJ <https://github.com/JJ> , can you summarize what's left to do before
we can close out this ticket?
—
Reply to this email directly, view it on GitHub
<#2542 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAAD5FHMKIJLVKMNNHVRILVFLUO5ANCNFSM4GONS3WQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
JJ
|
p6doc has been migrated out; the site generation will be included with @Altai-man's new site, Documentable, etc. I think the main thrust of this ticket has been accomplished. Once we complete the spin off of the web site, we'll revisit and open tickets for remaining/new issues as we find them. Thanks, everyone. |
The problem
The main problem is testing time #2498. But that's not the only one. There are so many things in this repo, with more added every month, that it comes a time when it's become unmanageable, with author tests only run from time to time due to time restrictions, for instance, and the requisites of some tools conflicting with the requisites from others. The different parts are also too tightly coupled (described somewhere as a "rats nest") that it's difficult to think about testing (see #2529 #2539) lots of parts (including the main site-generation app) that are not being tested right now.
The five parts here are:
docs/
directory. Some auxiliary files are inwriting-docs
and of course t/ and xt/ directories.p6doc IO::Path
on windows #2534. This uses a set of files, but it's not clear which ones; Build.pm6 in the root dir is one of them.lib/
directory.Suggestions
I already proposed #2295 to general indifference, but I think we should go further tnan that, leaving the docs in this directory, and filter commits to create all new repositories that keep the history, which could be called
App::doc
,doc-site
, several repos, one for eachlib
Module which is functionally independent anddoc-kerfile
(pun intended).The text was updated successfully, but these errors were encountered: