Giter Club home page Giter Club logo

azure-sdk-tools's Introduction

Azure SDK Tools

This repository contains useful tools that the Azure SDK team utilizes across their infrastructure.

Index

Package or Intent Path Description Status
Check Enforcer [1] Readme Manage GitHub check-runs in a mono-repo. Enabled via GitHub actions
doc-warden Readme A tool used to enforce readme standards across Azure SDK Repos. Build Status
http-fault-injector Readme HTTP proxy server for testing HTTP clients during "faults" like "connection closed in middle of body". Build Status
Maven Plugin for Snippets Readme A Maven plugin that that updates code snippets referenced from javadoc comments. Not Yet Enabled
pixel insertion tool Readme A tool used to insert the requests for images served by pixel server. Not Yet Enabled
pixel-server Readme A tiny ASP.NET Core site used to serve a pixel and record impressions. Not Yet Enabled

[1] Check Enforcer is located in azure-sdk-actions repo.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Azure DevOps builds

azure-sdk-tools's People

Contributors

alexandersher avatar alexghiondea avatar alzimmermsft avatar arpanlaha avatar azure-sdk avatar benbp avatar catalinaperalta avatar changlong-liu avatar chidozieononiwu avatar ckairen avatar danieljurek avatar dependabot[bot] avatar dw511214992 avatar hallipr avatar heaths avatar jimsuplizio avatar jonathangiles avatar joshlove-msft avatar jsquire avatar konrad-jamrozik avatar l0lawrence avatar mikeharder avatar mitchdenny avatar pakrym avatar praveenkuttappan avatar scbedd avatar sima-zhu avatar tadelesh avatar tjprescott avatar weshaggard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azure-sdk-tools's Issues

[eslint-plugin-azure-sdk] Anamolous behavior w.r.t the placement of `Copyright headers`

Context

Added .eslintrc.json config and imported the eslint-plugin-azure-sdk to cosmos sdk in azure-sdk-for-js repo.
One of the things the plugin does is -
adding license headers like below to all the relevant files when we run lint:fix.

"lint:fix": "eslint package.json tsconfig.json src test samples --ext .ts --fix"

image

Issue

Below is a screenshot of the changes in one specific file from the PR Azure/azure-sdk-for-js#5151 that represents abnormal behaviour.
image
I would expect the Copyright headers to be at the first two lines.
The placement of these headers when a file starts with the JSDoc comments(/** * * */) is a little off.

It would be great if this border-case can be fixed to make the plugin add the headers at the beginning of the file.

Reference

https://github.com/Azure/azure-sdk-for-js/pull/5151/files

cc - @ramya-rao-a @southpolesteve @KarishmaGhiya

Figure out the best way to structure our build pipelines

This repo will be building stuff targeting different languages but we want to be able to have one build that will have all the necessary artifacts together so we need to think about how we want to structure the build pipeline to enable building multiple languages.

Integrate Java support into APIView tool

I have finished the Java support for APIView. This now needs integration into the tool. I believe the integration simply consists of allowing (and documenting) source jar files to be uploaded, and running a Java application (which I will supply offline) with the appropriate commands.

Integrating this into APIView would save me from having to manually create the json files and upload them, which I would appreciate :-)

Pipeline Generator should accept variables

Enhance Pipeline Generator so that it can take a a set of variables which are added to the pipeline. For example:

pipeline-generator [other args] --variable foo1=value1 --variable foo2=value2

Support for marking a discussion thread as complete

Similar to GitHub, it would be great to be able to make a thread as complete (so that we know it has been actioned and don't need to worry about it any longer). When in the complete state, it would also be good to be able to revert it back to the standard 'incomplete' state.

Do not show brackets for methods and constructos

Currently constructors and methods display usless { } at teh end of the line, e.g.:

public class IdentityClientOptions : ClientOptions {                                  
        public IdentityClientOptions() {}
}

It would be less busy to display it just like C#'s extern decls:

public class IdentityClientOptions : ClientOptions {                                  
        public IdentityClientOptions();
}

Web-hosted API Reviewing Tool

We want a tool to review API content and structure in a parallel, easily accessible way. A web app being developed to achieve this is currently hosted here.

Major features to be added:

  • Cross-language comparison
  • File diffs

Service Bus Client: Review and Clean Local Assets

There are some assorted assets that were left in the project structure after adoption which may or may not be relevant and/or should be refactored and integrated better into the central repository. For example, the local .gitignore, should be reviewed, patterns generalized, and refactored for inclusion in the root .gitignore file.

This work is scoped to loose assets withing the Service Bus client library and is not intended to cover general code clean-up and refactoring.

Create PR Alerts for Owned Repositories

Data for the report will be based off of public Github data pulled daily.

  • Data should be available for all our monitored repositories
  • Alerts should be fired on a per repository basis
  • Alerts should be fired at an email alias, not be a personal subscription
  1. Alert on PR Age > 21 days
  2. Alert on > 45 active PRs on a repository

Notification configuration uses CODEOWNERS on GitHub

@danieljurek commented on Fri Jun 14 2019

The notification service configures groups in a nested DevOps Team and syncs contacts listed in the CODEOWNERS file for relevant entries in the directory path of a pipeline's tests.yml file.

Rough procedure:

  • Get directory location of pipeline's tests.yml file
  • Download CODEOWNERS file
  • Look for paths that are some subset of the tests.yml file path
    • For this cut, consider excluding expressions like *.yml and focusing only on paths
  • Collect contact information associated with paths matching the above criteria
  • Get relevant nested Team entry from DevOps (create if does not exist)
  • Add contact entries that are not present, remove contact entries which are present in the nested Team but not present in the collected contact entries from the steps above
    • If a user wants to receive notifications but does not want to to be in the CODEOWNERS file they can add themselves to the top level team (instead of the nested team)

Pipeline Generator: Live pipeline generation from tests.yml files

  • Generate a new pipeline from each tests.yml file that points to that tests.yml file
  • Command line parameter to apply variable group defined by identifier to build
  • Scheduler which generates the kickoff schedule deterministically for every pipeline (i.e. schedule time is constant for a given pipeline name never changes)

.NET Client SDK Analyzers .ctor rules firing false positives

Storage triggers the following analyzer rules but I think they're false positives:

You can repro by removing the NoWarns at https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/storage/Directory.Build.props#L19

Pipeline Generator uses wrong slashes.

The pipeline definitions that the pipeline generator creates has the wrong path direction for the YAML file reference which causes errors when opening it in the UX:

image

Pipeline Generator: Tests pipeline trigger overrides should target more branches

We've had instances in the past where PRs targeting a branch that is not master in live tests are refused by the bot. These should follow a mapping like the one at: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/cosmos/ci.yml#L12

pr:
  branches:
    include:
    - master
    - feature/*
    - hotfix/*
    - release/*
    - restapi*

Because other settings are overridden these changes cannot happen in the tests.yml they must be part of the procedure that creates/updates pipelines.

Set up JS pipeline

  • Set up the build pipeline for building JS tools, similar to .NET in this repo
  • If using rush for build orchestrator, will need some more configs than just the yaml file
  • PR dependent on this for checks to pass : #53

Requests from .NET BCL Team

  • For some reason, I can’t comment on indexers
  • Deleting a comment doesn’t remove it from the UI until the page is refreshed
  • I’d like the ability to edit comments

cc: @terrajobst

.net analyzer ideas

  • - Client types should have a protected parameterless ctor for mocking
  • - Client methods should be virtual
  • - Client methods should have Async suffix for async methods
  • - Client methods should take CancellationToken as the last parameter

Notification Configuration Tool

To be notified of build breaks on scheduled builds a tool should configure existing systems:

Use Azure DevOps API to:

  • Create teams to receive notifications (1 team per build pipeline)
  • Create notification configurations for scheduled builds (1 notification entry per pipeline, linking to the team)

Other considerations:

  • Populate teams with code owners information from GitHub (#52) -- Tracked separately.
    (requires microsoft.com email address in profile)

  • Should manually added team members be removed? It is probably the case that they go in the CODEOWNERS file

Java APIView processor incorrectly handles annotations

Uploading azure-core demonstrates the issue - annotation types such as the Immutable type are listed as public unknown Immutable, rather than public @interface Immutable, and they do not list their fields properly either.

doc-warden looks for readmes above the packages on .NET

Storage has four packages they like to work on in one meta *.sln file. doc-warden thinks there should be a readme next to the meta *.sln. This caused a failure at https://dev.azure.com/azure-sdk/public/_build/results?buildId=30620

Should we be looking for *.csproj files instead of *.slns via get_net_packages instead of get_net_package_roots at https://github.com/Azure/azure-sdk-tools/blob/master/packages/python-packages/doc-warden/warden/enforce_readme_presence.py#L56?

I'm adding an exclusion for now and not blocked by this. Thanks!

Update the tools/eslint-plugin-azure-sdk/ci.yml pipeline to publish to NPM.

We've setup an end-to-end pipeline for the eslint-plugin-azure-sdk package stored within the azure-sdk-tools repo. However at the moment it is publishing to a private Azure Artifacts feed.

After discussing with @arpanlaha and @bterlson it has been decided directly to NPM. Currently the package has the scope @azuresdktools but we need to decide if this is appropriate for publishing to NPM.

Adding @weshaggard since we discussed this already. Right now we can't publish NPM packages to Azure Artifacts feeds and we need to be able to reference this package in the JS builds that people will want to run locally which makes NPM the only remaining workable option - other than waiting for Azure Artifacts to finish rolling out NPM support in public feeds (in progress).

[Event Hubs] Client Library: Review and Clean Loose Assets

Summary

Some assorted assets are expected to have been left in the project structure after migration which may not be relevant and/or should be refactored for better integration into the central repository. F or example, the local .gitignore, should be reviewed, patterns generalized, and refactored for inclusion in the root .gitignore file.

Scope of Work

  • Review and clean the loose assets within the Event Hubs client library area of the central repository, removing or adjusting them as needed to integrate with the new location.

Out of Scope

  • This work is scoped to loose assets withing the Event Hubs client library and is not intended to cover general code clean-up and refactoring.

Success Criteria

The assets in the Event Hubs client library area of the central repository are appropriate for the monorepo and not redundant to higher level assets.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.