PowerShell / Microsoft.PowerShell.Archive

Archive PowerShell module contains cmdlets for working with ZIP archives
https://technet.microsoft.com/en-us/library/dn818910.aspx
MIT License
94 stars 37 forks source link

Add Tar support to PowerShell with the new .NET 7.0 APIs #116

Closed carlossanlop closed 2 years ago

carlossanlop commented 2 years ago

Summary of the new feature / enhancement

I am working on adding new Tar APIs in .NET 7.0: https://docs.microsoft.com/en-us/dotnet/api/system.formats.tar?view=net-7.0

It would be great if we could offer Cmdlets in PowerShell for these APIs, both for archiving (*.tar) and for archiving + compressing (*.tar.gz).

How can I help to make this happen?

@SteveL-MSFT @iSazonov

Proposed technical implementation details (optional)

Here is a detailed explanation of how the APIs can be used as of .NET 7.0 Preview 4: https://github.com/dotnet/core/issues/7378#issuecomment-1111474529

Note: There will be some minor API changes in the next Previews, but most of the functionality is like in the linked comment.

Known bugs

I created this uber issue to track pending feedback to address: https://github.com/dotnet/runtime/issues/68230

iSazonov commented 2 years ago

I am working on adding new Tar APIs in .NET 7.0

Is the API already in current public 7.0 Preview?


  1. PowerShell MSFT team policy is to develop new cmdlets in separate community modules shared on PowerShellGet site. So first you need to discuss with them whether they want to have the cmdlets under PowerShell team umbrella.
  2. We already have Microsoft.PowerShell.Archive module. Perhaps it could be best module to place new cmdlets but it is for Windows PowerShell and it is not binary.
  3. Also current policy is to create RFC for new cmdlets in PowerShell-RFC repository.
iSazonov commented 2 years ago

I see we already on 7.0 Preview4 and there already is System.Formats.Tar.

SteveL-MSFT commented 2 years ago

@carlossanlop we've planning on rewriting the Archive module and likely leveraging the new .NET 7 APIs and adding tar support