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 need to sync  
pull requests and changes.  

**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 stays the same as in 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`.

**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`: A new branch forked from `no-std`, adding `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, which are already provided in  
  the `master` branch but not yet merged into `main`.  
- Upstream the OP-TEE target as a Rust Tier 3 target.  
- Develop demo projects for specific scenarios, such as Web3. 


On 2024/10/11 09:09:22 Zhaofeng Chen wrote:
> Over the past few years, we’ve heard varying perspectives from the
> community regarding the needs for OPTEE Trusted Application (TA)
> development. Here’s a brief summary:
> 
>    - *Dependence on the master branch:* This allows the use of Rust crates
>    requiring std, which is beneficial for more feature-rich development.
>    However, it may face delays in upstream Rust std support.
>    - *Dependence on the no-std branch:* This is suited for TAs with limited
>    functionality, ensuring minimal dependencies and a lightweight codebase.
> 
> I assume the proposed changes aim to address the needs of both groups while
> minimizing maintenance efforts. In addition, could you please elaborate on
> the following points if this change is merged?
> 
>    1. What will be the impact on the development of TAs that depend on
>    no-std and master?
>    2. What are the long-term development plans for maintaining the main,
>    master, and no-std branches?
> 
> Thanks.
> 
> On Fri, Oct 11, 2024 at 12:05 PM Yuan Zhuang <yu...@apache.org> wrote:
> 
> > Hi Community,
> >
> > I’d like to initiate a vote to propose changing the default branch
> > for the Teaclave TrustZone SDK
> > <https://github.com/apache/incubator-teaclave-trustzone-sdk> from
> > "no-std" to "main".
> >
> > Teaclave TrustZone SDK is built on the OP-TEE
> > <https://www.op-tee.org/> project and provides ergonomic APIs for
> > Trusted Application (TA) developers. Currently, we support two
> > development modes for Rust TAs: "no-std" and "std".
> >
> > We plan to streamline the code to support both modes in a unified
> > environment. The first step will be to treat "no-std" as the base,
> > then add the std feature on top of it.
> >
> > In May this year, we made "no-std" the default branch, as announced
> > in this email.
> > <https://lists.apache.org/thread/f3l82o89hb0w43n27nw77oqcpo829qjd>.
> >
> > The "main" branch now builds on "no-std" but also adds optional std
> > support. It includes updates to the build system, CI, and toolchain,
> > with Rust compiler version upgraded to nightly-2024-05-15. More
> > details can be found in this PR
> > <https://github.com/apache/incubator-teaclave-trustzone-sdk/pull/141>.
> >
> > Since the "main" branch retains the full functionality of the original
> > Teaclave TrustZone SDK and supports both no-std (by default) and std
> > (as an optional feature), I propose making "main" the default branch
> > going forward. This change will streamline further development and
> > maintenance.
> >
> > The vote will be open for at least 7 days. Everyone is welcome to
> > share your thoughts and cast your vote. Please vote by replying to
> > this thread explicitly.
> >
> > [ ] +1 approve
> > [ ] +0 no opinion
> > [ ] -1 disapprove with the reason
> >
> > Best regards,
> >
> > Yuan Zhuang,
> > Apache Teaclave (incubating) PPMC
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@teaclave.apache.org
> > For additional commands, e-mail: dev-h...@teaclave.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