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

Incremental Builds #213

Open
carbontwelve opened this issue Jun 12, 2017 · 4 comments
Open

Incremental Builds #213

carbontwelve opened this issue Jun 12, 2017 · 4 comments
Labels

Comments

@carbontwelve
Copy link
Member

No description provided.

@carbontwelve
Copy link
Member Author

This is related to #167; incremental builds would require that Tapestry follow a more tight definition of Compiler and actually go about parsing into a graph all content and then identifying which graph nodes are affected during a rebuild.

This is quite a complex subject and will involve a lot of refactoring.

@carbontwelve carbontwelve added this to the 1.1.0 milestone Jun 12, 2017
@carbontwelve
Copy link
Member Author

The content structure of Tapestry is:

  • File belongsTo ContentType
  • ContentType hasMany Taxonomy
  • File hasMany Taxonomy
  • File hasOne Template
  • File hasMany Use
  • Template hasOne Template (can be many levels deep)

During the Parsing phase of compilation for each File discovered all of the above must be identified in order to build the content graph. One node of which may be:

{
    type: 'file',
    path: '/index.phtml',
    template: '/_templates/default.phtml',
    contentType: 'default',
    'taxonomy: null
}

The above node is linked to the Template _/templates/default.phtml and the Content Type default. If either of those change then this node will be marked as needs changes too.

This is rather basic and easily achievable by simply parsing all files for Front Matter and building the graph from that - however - Plates allows the usage of partials therefore a single phtml file could include multiple other phtml partial files. The complexity here is identifying the includes.

@carbontwelve
Copy link
Member Author

This may be useful to look at http://gittup.org/tup/build_system_rules_and_algorithms.pdf

@carbontwelve
Copy link
Member Author

Also maybe useful to look at https://github.com/thejameskyle/graph-sequencer

@carbontwelve carbontwelve removed this from the 1.1.0 milestone Jan 4, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant