diff --git a/README.md b/README.md index 660bc61f..886d761a 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,108 @@ -# Speckle 3.0 Connectors! -[![codecov](https://codecov.io/gh/specklesystems/speckle-sharp-connectors/graph/badge.svg?token=eMhI4M8umi)](https://codecov.io/gh/specklesystems/speckle-sharp-connectors) +

+
+ Speckle | Sharp | Connectors +

-## Formatting +

Twitter Follow Community forum users website docs

-Use [CSharpier](https://github.com/belav/csharpier) to format. There are a few options: -- Install CSharpier as a local tool: `dotnet tool install csharpier` - - This allows CLI use of CSharpier: `dotnet csharpier .` after `dotnet tool restore` -- Install the CSharpier Visual Studio 2022 extension: https://marketplace.visualstudio.com/items?itemName=csharpier.CSharpier -- Install CSharpier as a global tool: `dotnet tool install csharpier -g` - - This allows CLI use of CSharpier: `dotnet csharpier .` after `dotnet tool restore` +> Speckle is the first AEC data hub that connects with your favorite AEC tools. Speckle exists to overcome the challenges of working in a fragmented industry where communication, creative workflows, and the exchange of data are often hindered by siloed software and processes. It is here to make the industry better. -## Local development with SDK changes +

+ .NET Desktop UI, Connectors, and Converters +

-Use the `Local.sln` to include the Core and Objects projects from the SDK repo. This setup assumes the two Git repos are side by side. +

Codecov

-Using the `Local.sln` will modify all your package locks. Don't check these in! Revert or use the regular solution to revert once your changes are made. +# Repo structure -This uses a new Configuration for the solutions and projects which means that `Local` is now a build directory alongside `Debug` and `Release` +This repo is the home of our next-generation Speckle .NET projects: -## Other Build commands +- **Desktop UI** + - [`DUI3`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/DUI3): our next generation Desktop User Interface for all connectors. +- **Speckle Connectors** + - [`Autocad Connector`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Connectors/Autocad): for Autodesk AutoCAD and Civil3D 2022+ + - [`Rhino Connector`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Connectors/Rhino): for McNeel Rhino 7+ + - [`Revit Connector`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Connectors/Revit): for Autodesk Revit 2022+ + - [`ArcGIS Connector`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3): for Esri ArcGIS + - [`Tekla Connector`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Connectors/Tekla): for Trimble Tekla 2024 +- **Speckle Converters** + - [`Autocad Converter`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Converters/Autocad): for Autodesk AutoCAD 2022+ + - [`Civil3d Converter`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Converters/Civil3d): for Autodesk Civil3D 2022+ + - [`Rhino Converter`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Converters/Rhino): for McNeel Rhino 7+ + - [`Revit Converter`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Converters/Revit): for Autodesk Revit 2023+ + - [`ArcGIS Converter`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Converters/ArcGIS/Speckle.Converters.ArcGIS3): for Esri ArcGIS + - [`Tekla Converter`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Converters/Tekla/Speckle.Converter.Tekla2024): for Trimble Tekla 2024 +- **SDK** + - [`SDK`](https://github.com/specklesystems/speckle-sharp-connectors/tree/main/Sdk): Autofac module, connector utilities, and dependency injection. -### Clean Locks -Run this to delete package.lock.json files when restores go run. +### Other repos + +Make sure to also check and ⭐️ these other Speckle next generation repositories: + +- [`speckle-sharp-sdk`](https://github.com/specklesystems/speckle-sharp-sdk): our csharp SDK for next gen connectors and development +- [`speckle-sketchup`](https://github.com/specklesystems/speckle-sketchup): Sketchup connector +- [`speckle-powerbi`](https://github.com/specklesystems/speckle-powerbi): PowerBi connector +- and more [connectors & tooling](https://github.com/specklesystems/)! + +# Developing and Debugging + +Clone this repo. **Each section has its own readme**, so follow each readme for specific build and debug instructions. -![image](/Images/clean-locks.png) +Issues or questions? We encourage everyone interested to debug / hack / contribute / give feedback to this project. + +> **A note on Accounts:** +> The connectors themselves don't have features to manage your Speckle accounts; this functionality is delegated to the Speckle Manager desktop app. You can install it [from here](https://speckle-releases.ams3.digitaloceanspaces.com/manager/SpeckleManager%20Setup.exe). + +## Local Builds + +For good development experience and environment setup, run the commands below as needed. + +### Formatting +We're using [CSharpier](https://github.com/belav/csharpier) to format our code. You can install Csharpier in a few ways: +- Install CSharpier as a local tool and reformat from CLI + ``` + dotnet tool install csharpier + dotnet csharpier + ``` +- Install CSharpier as a global tool and reformat from CLI + ``` + dotnet tool install csharpier -g + dotnet csharpier + ``` +- Install the CSharpier extension for Visual Studio or Rider.
+ For best DX, we recommend turning on CSharpier's `reformat on save` setting if you've installed it in your IDE. + +### Clean Locks +We're using npm package locks to store exact and versioned dependency trees. Occasionally you will need to clean your local package-lock files, eg when switching between `Speckle.Connectors.sln` and `local.sln`. +Run this command in CLI to delete all package.lock.json files before a restore: +``` +.\build.ps1 clean-locks +``` ### Deep Clean +To make sure your local environment is ready for a clean build, run this command to delete all `bin` and `obj` directories and restore all projects: +``` +.\build.ps1 deep-clean +``` + +## Local development with SDK changes +If you'd like to make changes to the [`speckle-sharp-sdk`](https://github.com/specklesystems/speckle-sharp-sdk) side-by-side with changes to this repo's projects, use `**Local.sln**`.
+This solution includes the Core and Objects projects from the speckle-sharp-sdk repo, and uses a new Configuration to create a build directory alongside `Debug` and `Release`. + +> [!WARNING] +> Using `Local.sln` will modify all your package locks. **Don't check these in!** Revert with the `clean-locks` command or use the regular solution to revert once your changes are made. + +# Security and Licensing + +### Security + +For any security vulnerabilities or concerns, please contact us directly at security[at]speckle.systems. + +### License + +Unless otherwise described, the code in this repository is licensed under the Apache-2.0 License. Please note that some modules, extensions or code herein might be otherwise licensed. This is indicated either in the root of the containing folder under a different license file, or in the respective file's header. If you have any questions, don't hesitate to get in touch with us via [email](mailto:hello@speckle.systems). + + -Run this to clean out bin and obj directories. Then a restore is run to get things ready for a build. -![image](/Images/deep-clean.png)