DemesneGH commented on issue #143:
URL: 
https://github.com/apache/incubator-teaclave-trustzone-sdk/issues/143#issuecomment-2407361801

   @m4sterchain Yes this proposal mainly aims to simplify future development 
and maintenance. Since most of the code is shared between `std` and `no-std`, 
merging them into `main` will eliminate the work to sync pull requests and 
changes.  
   
   
   > 1. What will be the impact on the development of TAs that depend on 
`no-std` and `master`?
   
   The build process remains mostly the same (run `$ make`), but there are 
minor differences:
   
   - **For `no-std` developers**: No additional steps are required. Development 
keeps same as the original `no-std` branch.
     
   - **For `std` developers**: Developers will need to run `$ export STD=y` to 
enable the `std` feature before running `$ source environment`.
   
   
   > 2. What are the long-term development plans for maintaining the `main`, 
`master`, and `no-std` branches?
   
   **Current Status:**
   
   - `no-std`: A clean branch dedicated to `no-std` development.
     
   - `master`: The legacy branch used for `std` development, and the primary 
development branch until 2024.
     
   - `main`: New branch forked from `no-std`, this branch adds `std` building 
support.
   
   
   **After setting `main` as the default branch (proposed in this VOTE):**
   
   - The `no-std` branch will be deprecated.
     
   - The `master` branch will be deprecated.
     
   - The `main` branch will become the only maintenance branch, supporting both 
`std` and `no-std`.
   
   
   **Long-Term Development Plan for the `main` Branch:**
   
   - Add `std`-specific examples. Since the purpose of `std` is to provide 
functionalities that `no-std` cannot, we can offer examples such as Serde and 
TLS.
     
   - Upstream the OP-TEE target as a Rust Tier 3 target. 
     
   - Develop demo projects for specific scenarios, such as Web3.
   
   ---
   
   For the reference and clarification, these are the summary of all files in 
SDK (`main` branch) root path and their relation with development mode:
   
   | files / directories             | description                              
                                                                                
                                 |  shared / std only / no-std only             
               |
   | ----------------------------- | 
---------------------------------------------------------------------------------------------------------------------------------------------------------
 | ------------------------------- |
   | .github/workflows, ci, tests   | Test both `std` and `no-std` for 32-bit 
and 64-bit TAs. The build is determined by `ARCH_HOST`, `ARCH_TA`, and `STD` 
environment variables.                           | Shared                       
   |
   | optee-teec                     | Core library for CA (Client Application). 
                                                                                
                                | Shared                          |
   | optee-utee                     | Core library for TA (Trusted 
Application). Most of the code is shared, with minor target-specific 
differences determined by `target_os` (`optee` for `std`, `linux` for 
`no-std`). | Shared                          |
   | examples                       | Code remains the same; `ta/Makefile` 
selects the appropriate build tool: `cargo` for `std`, `Xargo` for `no-std`.    
                                      | Shared                          |
   | setup.sh                       | Installs Rust, `cargo`, and `gcc`.        
                                                                                
                               | Shared                          |
   | build_optee_libraries.sh       | Builds the necessary OP-TEE libraries for 
CA and TA, if not available.                                                    
                                 | Shared                          |
   | environment                    | Sets toolchain and library paths.         
                                                                                
                               | Shared                          |
   | aarch64-unknown-optee.json     | Specification for AARCH64 OP-TEE target.  
                                                                                
                               | `std` only                      |
   | arm-unknown-optee.json         | Specification for ARM32 OP-TEE target.    
                                                                                
                               | `std` only                      |
   | rust-toolchain.toml            | Specifies the Rust nightly version for 
customized `std`.                                                               
                                   | `std` only                      |
   | all `Xargo.toml` files         | Xargo configuration files pointing to the 
customized `std` path.                                                          
                               | `std` only                      |
   | setup_std_dependencies.sh      | Downloads the ported `std` for OP-TEE.    
                                                                                
                               | `std` only                      |
   | LICENSE files, docs, etc.      | Documentation and licenses.               
                                                                                
                               | Shared                          |
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@teaclave.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@teaclave.apache.org
For additional commands, e-mail: dev-h...@teaclave.apache.org

Reply via email to