OpenChain-Project / Reference-Material

This repository contains the reference material related to the OpenChain Project
Other
71 stars 56 forks source link

[New Material] Conversion of General-Compliance-Support-Material / Flowcharts to MarkDown #46

Closed jacobdjwilson closed 1 year ago

jacobdjwilson commented 1 year ago

Suggested new material

{Outline new material}

I would like to submit my work in conversion of the compliance support flowcharts into Markdown (mermaid) format. Hopefully this can be used to provide a more streamline web experience of the material rather than disjointed file based experience. I believe the next steps will be to provide written context linking and summarizing material.

Additional comments

Distribution-Type

flowchart TD
    A[What Type of Distribution?]
    A --> B[In a Device?] --> E(Flowchart 2)
    A --> C[Firmware Update?] --> F(Flowchart 3)
    A --> D[Over the Air?] --> G(Flowchart 4)
    click E "#product" "Flowchart 2"
    click F "#firmware" "Flowchart 3"
    click G "#linking" "Flowchart 4"

Firmware

flowchart TD
    A[Firmware co-located with source code?]
    A --> |yes| B[Is the Code Complete?] 
    A --> |no| C[Written Offer Supplied?]
    C --> |Yes| D[License Text Supplied?]
    C --> |No| F[Provide Written Offer]
    D --> |No| E[Provide License Text]
    B --> |No| H[Fix] --> B
    B --> I[Done!]
    D --> |Yes| B
    B --> E
    F --> D

Linking

flowchart TD
    A[Linking Type?]
    A --> |DYNAMIC| B[LGPL Source code available?] 
    A --> |STATIC| C[Object files of non-LGPL files, scripts to relink and source of LGPL code available?]
    B --> |No| D[Provide LGPL source code]
    C --> |No| E[Provide object files of non-LGPL files, scripts to relink and source of LGPL code]
    B --> |Yes| F[Done!]
    C --> |Yes| F

Product

flowchart TD
    A[Code Delivered with Product?]
    A --> |YES| B[Is the Code Complete?] 
    A --> |NO| C[Written Offer Supplied?]
    B --> |NO| D[Fix] --> B
    C --> |YES| E[License Text Supplied?]
    C --> |NO| F[Provide Written Offer] --> E
    E --> |NO| G[Provide License Text] --> B
    B --> H[Done!]

Using Code

flowchart TD
    A[Will Free Software end up in the final product?]
    A --> |NO| B[Will code generated by the Free Software end up in the final product?]
    A --> |YES| C[Will the product be distributed outside of the organisation?]
    B --> |YES| C
    C --> |YES| D[Is the Free Software on the 'Approved Software' list?]
    C --> |NO| E[Label for 'Internal use only']
    D --> |YES| F[This Free Software may be used for this product]
    B --> |NO| F
    D --> |NO| G[Is the Free Software on the 'Rejected Software' list?]
    G --> |YES| H[This Free Software may not be used for this product]
    G --> |NO| I[Please contact the legal department to obtain approval]

Written Offer

flowchart TD
    A[Written Offer Provided?]
    A --> |YES| B[License Text Supplied?]
    A --> |NO| C[Provide Written Offer] --> B
    B --> |YES| D[Is the Code Complete?]
    B --> |NO| E[Provide License Text] --> D
    D --> |NO| F[Fix] --> D
    D --> |YES| G[Done!]
shanecoughlan commented 1 year ago

I am adjusting these to fit into the newly expanded labeling on the subject here:

Flowchart #0 - How Do I Distribute

flowchart TD
    A[Will Free Software end up in the final product?]
    A --> |NO| B[Will code generated by the Free Software end up in the final product?]
    A --> |YES| C[Will the product be distributed outside of the organisation?]
    B --> |YES| C
    C --> |YES| D[Is the Free Software on the 'Approved Software' list?]
    C --> |NO| E[Label for 'Internal use only']
    D --> |YES| F[This Free Software may be used for this product]
    B --> |NO| F
    D --> |NO| G[Is the Free Software on the 'Rejected Software' list?]
    G --> |YES| H[This Free Software may not be used for this product]
    G --> |NO| I[Please contact the legal department to obtain approval]

Flowchart #1 - Distribution Type

flowchart TD
    A[What Type of Distribution?]
    A --> B[In a Device?] --> E(Flowchart 2)
    A --> C[Firmware Update?] --> F(Flowchart 3)
    A --> D[Over the Air?] --> G(Flowchart 4)
    click E "#product" "Flowchart 2"
    click F "#firmware" "Flowchart 3"
    click G "#linking" "Flowchart 4"

Flowchart #2 - Offline Distribution

flowchart TD
    A[Code Delivered with Product?]
    A --> |YES| B[Is the Code Complete?] 
    A --> |NO| C[Written Offer Supplied?]
    B --> |NO| D[Fix] --> B
    C --> |YES| E[License Text Supplied?]
    C --> |NO| F[Provide Written Offer] --> E
    E --> |NO| G[Provide License Text] --> B
    B --> H[Done!]

Flowchart #3 - Firmware Updates

flowchart TD
    A[Firmware co-located with source code?]
    A --> |yes| B[Is the Code Complete?] 
    A --> |no| C[Written Offer Supplied?]
    C --> |Yes| D[License Text Supplied?]
    C --> |No| F[Provide Written Offer]
    D --> |No| E[Provide License Text]
    B --> |No| H[Fix] --> B
    B --> I[Done!]
    D --> |Yes| B
    B --> E
    F --> D

Flowchart #4 - Over The Air

flowchart TD
    A[Written Offer Provided?]
    A --> |YES| B[License Text Supplied?]
    A --> |NO| C[Provide Written Offer] --> B
    B --> |YES| D[Is the Code Complete?]
    B --> |NO| E[Provide License Text] --> D
    D --> |NO| F[Fix] --> D
    D --> |YES| G[Done!]

Flowchart #5 - LGPL Code

flowchart TD
    A[Linking Type?]
    A --> |DYNAMIC| B[LGPL Source code available?] 
    A --> |STATIC| C[Object files of non-LGPL files, scripts to relink and source of LGPL code available?]
    B --> |No| D[Provide LGPL source code]
    C --> |No| E[Provide object files of non-LGPL files, scripts to relink and source of LGPL code]
    B --> |Yes| F[Done!]
    C --> |Yes| F
shanecoughlan commented 1 year ago

Merged here: https://github.com/OpenChain-Project/Reference-Material/tree/master/General-Compliance-Support-Material/Flowcharts/GPLv2-Compliance-Flowchats/2.0/en

Awesome contribution @jacobdjwilson ! Thank you!