Skip to content
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

Problem: links-search-files is set up incorrectly #40

Merged
merged 6 commits into from
Feb 27, 2018

Conversation

clacke
Copy link
Member

@clacke clacke commented Feb 27, 2018

Solution: Set up links-search-files correctly

This releases a whole can of worms, because several dormant mechanisms suddenly come into play.
These commits are a step toward solving #3, and they also partially solve #34, while giving rise to #38 and #39.

Solution: Set to the file name, not the name of the directory name.

New problem: This makes document generation work fully, which breaks for e.g. r6rs-doc.
The own links file was not pointed to.

Solution: Adjust own links file in the template.
Packages that depend on racket-index want to write to $HOME when
building their documentation.

racket-index wants to update its documentation database in the user
scope, if it can't find the database in installation scope.

Solution: For now, patch racket-index to always write to installation
scope.
When we corrected the problem with our own links-file, the workaround of creating directories in .../collects became unnecessary.

Solution: Remove the workaround.
While troubleshooting other attributes, I discovered that the default doc-search-dirs ends up
being $package/share/racket/collects/doc.

Solution: Make doc-search-dirs explicit in config.rktd.
There are some circular dependencies in there. They can be made to
work.

The top package is the one that was detected as a circular dependency
by the bottom package and was cut out of the circle. The top package
transitively depends on the rest of the circle, the others are cut off
at the bottom package.

Here's how we can make this work:

1. Don't run setup on any bottom package.

There are some true circular dependencies in there, that won't work
unless the dependency has had a proper setup and registered its
collections. They can be made to work by doing some extra work in the
top (not necessarily, but we were lucky enough that it was the top --
the circle was only two packages) package:

2a. Remove the bottom package from the config.rktd dependencies.
2b. Install both the top and bottom packages in the top installation
    scope.
2c. Run setup on both.

Solution: To get a starting point to work from, first make some ugly
special cases to solve these specific packages. Work on a generic
solution from here.

htdp-lib and deinprogramm-signature have a true circular dependency
that can be solved by (2) (verified with htdp-lib as top).

racket-doc and drracket have a circular dependency that works by just
doing (1) -- force both to not do any setup for now. The racket-doc
package has a whole drove of circular dependencies with other -doc
packages.

For discussion of next steps, see issue fractalide#38.
@sjmackenzie sjmackenzie merged commit 800f71d into fractalide:master Feb 27, 2018
@clacke clacke deleted the links-files branch February 28, 2018 03:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants