-
Notifications
You must be signed in to change notification settings - Fork 195
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
Incremental publishing #4050
base: develop
Are you sure you want to change the base?
Incremental publishing #4050
Conversation
Signed-off-by: Jarno Elovirta <jarno@elovirta.com>
Add directed graph using adjacent matrix
Signed-off-by: Jarno Elovirta <jarno@elovirta.com>
Add directed graph for URIs
@jelovirt - will this use some kind of SHA of the input files to determine only what needs to be reprocessed? (I have been considering doing something like this in our builds to detect what deliverables must be rebuilt when writers modify the DITA content.) |
I was having SHA inklings about this as well. |
Incremental list that tracks the implementation, this is not intended to be a detailed waterfall spec how the feature will work.
|
Also if at least one map is found to be modified, all incremental caches for all resources are off. |
For step (6) are you considering some kind of ditafileset which only enumerates not changed files from the temp folder? |
And if a topic is modified, maybe its shortdesc and title have changed, and it's referenced also in a DITA Map, so does this mean the DITA Map needs to be re-processed as well? Along with all other topics linking to the file... |
Signed-off-by: Jarno Elovirta <jarno@elovirta.com>
Add file dependency tree to job state
I wonder if this approach could be scaled up to implement deliverable-level caching, as described in the last approach here: dita-users.groups.io > some thoughts on how a DITA/Git CI/CD pipeline could work For example, maybe the DITA could store deliverable checksums (perhaps by deliverable ID), then it would simply be a matter of doing
to efficiently update all deliverables, which would be extremely cool. Regarding the timestamp check - note that it might be useful to disable this in Git-based flows. Git does not store or restore timestamps. If I temporarily change branches or make then discard changes, timestamps can differ even when contents do not. |
Description
Incremental publishing.
Cache preprocessing results.
Motivation and Context
How Has This Been Tested?
Type of Changes
Documentation and Compatibility
(Provide links to existing documentation topics that will require updates)
Checklist