text:
[bug] Change spacing atomics output order

Task: task-428733
Link: preview-199
This PR changes the order to ensure the correct specificity.
Testing

Visit the preview link above. Inspect an element and add the following classes: padding-none padding-left-m-tablet padding-desktop.
Change the screen width and verify that there's no padding in mobile, left padding in tablet, padding in desktop.

Here's the expected output
.margin-xs {
  margin: 1rem !important;
}
.margin-top-xs {
  margin-top: 1rem !important;
}
.margin-right-xs {
  margin-right: 1rem !important;
}
.margin-bottom-xs {
  margin-bottom: 1rem !important;
}
.margin-left-xs {
  margin-left: 1rem !important;
}
.margin-inline-xs {
  margin-right: 1rem !important;
  margin-left: 1rem !important;
}
.margin-block-xs {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}
.margin-s {
  margin: 1.5rem !important;
}
.margin-top-s {
  margin-top: 1.5rem !important;
}
.margin-right-s {
  margin-right: 1.5rem !important;
}
.margin-bottom-s {
  margin-bottom: 1.5rem !important;
}
.margin-left-s {
  margin-left: 1.5rem !important;
}
.margin-inline-s {
  margin-right: 1.5rem !important;
  margin-left: 1.5rem !important;
}
.margin-block-s {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}
.margin-m {
  margin: 2rem !important;
}
.margin-top-m {
  margin-top: 2rem !important;
}
.margin-right-m {
  margin-right: 2rem !important;
}
.margin-bottom-m {
  margin-bottom: 2rem !important;
}
.margin-left-m {
  margin-left: 2rem !important;
}
.margin-inline-m {
  margin-right: 2rem !important;
  margin-left: 2rem !important;
}
.margin-block-m {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}
.margin-l {
  margin: 3rem !important;
}
.margin-top-l {
  margin-top: 3rem !important;
}
.margin-right-l {
  margin-right: 3rem !important;
}
.margin-bottom-l {
  margin-bottom: 3rem !important;
}
.margin-left-l {
  margin-left: 3rem !important;
}
.margin-inline-l {
  margin-right: 3rem !important;
  margin-left: 3rem !important;
}
.margin-block-l {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}
.margin-xl {
  margin: 4rem !important;
}
.margin-top-xl {
  margin-top: 4rem !important;
}
.margin-right-xl {
  margin-right: 4rem !important;
}
.margin-bottom-xl {
  margin-bottom: 4rem !important;
}
.margin-left-xl {
  margin-left: 4rem !important;
}
.margin-inline-xl {
  margin-right: 4rem !important;
  margin-left: 4rem !important;
}
.margin-block-xl {
  margin-top: 4rem !important;
  margin-bottom: 4rem !important;
}
.margin-xxl {
  margin: 6rem !important;
}
.margin-top-xxl {
  margin-top: 6rem !important;
}
.margin-right-xxl {
  margin-right: 6rem !important;
}
.margin-bottom-xxl {
  margin-bottom: 6rem !important;
}
.margin-left-xxl {
  margin-left: 6rem !important;
}
.margin-inline-xxl {
  margin-right: 6rem !important;
  margin-left: 6rem !important;
}
.margin-block-xxl {
  margin-top: 6rem !important;
  margin-bottom: 6rem !important;
}
.margin-xxxl {
  margin: 8rem !important;
}
.margin-top-xxxl {
  margin-top: 8rem !important;
}
.margin-right-xxxl {
  margin-right: 8rem !important;
}
.margin-bottom-xxxl {
  margin-bottom: 8rem !important;
}
.margin-left-xxxl {
  margin-left: 8rem !important;
}
.margin-inline-xxxl {
  margin-right: 8rem !important;
  margin-left: 8rem !important;
}
.margin-block-xxxl {
  margin-top: 8rem !important;
  margin-bottom: 8rem !important;
}
.margin-none {
  margin: 0 !important;
}
.margin-top-none {
  margin-top: 0 !important;
}
.margin-right-none {
  margin-right: 0 !important;
}
.margin-bottom-none {
  margin-bottom: 0 !important;
}
.margin-left-none {
  margin-left: 0 !important;
}
.margin-inline-none {
  margin-right: 0 !important;
  margin-left: 0 !important;
}
.margin-block-none {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
@media screen and (min-width: 768px), print {
  .margin-xs-tablet {
    margin: 1rem !important;
  }

  .margin-top-xs-tablet {
    margin-top: 1rem !important;
  }

  .margin-right-xs-tablet {
    margin-right: 1rem !important;
  }

  .margin-bottom-xs-tablet {
    margin-bottom: 1rem !important;
  }

  .margin-left-xs-tablet {
    margin-left: 1rem !important;
  }

  .margin-inline-xs-tablet {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }

  .margin-block-xs-tablet {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }

  .margin-s-tablet {
    margin: 1.5rem !important;
  }

  .margin-top-s-tablet {
    margin-top: 1.5rem !important;
  }

  .margin-right-s-tablet {
    margin-right: 1.5rem !important;
  }

  .margin-bottom-s-tablet {
    margin-bottom: 1.5rem !important;
  }

  .margin-left-s-tablet {
    margin-left: 1.5rem !important;
  }

  .margin-inline-s-tablet {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }

  .margin-block-s-tablet {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }

  .margin-m-tablet {
    margin: 2rem !important;
  }

  .margin-top-m-tablet {
    margin-top: 2rem !important;
  }

  .margin-right-m-tablet {
    margin-right: 2rem !important;
  }

  .margin-bottom-m-tablet {
    margin-bottom: 2rem !important;
  }

  .margin-left-m-tablet {
    margin-left: 2rem !important;
  }

  .margin-inline-m-tablet {
    margin-right: 2rem !important;
    margin-left: 2rem !important;
  }

  .margin-block-m-tablet {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }

  .margin-l-tablet {
    margin: 3rem !important;
  }

  .margin-top-l-tablet {
    margin-top: 3rem !important;
  }

  .margin-right-l-tablet {
    margin-right: 3rem !important;
  }

  .margin-bottom-l-tablet {
    margin-bottom: 3rem !important;
  }

  .margin-left-l-tablet {
    margin-left: 3rem !important;
  }

  .margin-inline-l-tablet {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }

  .margin-block-l-tablet {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }

  .margin-xl-tablet {
    margin: 4rem !important;
  }

  .margin-top-xl-tablet {
    margin-top: 4rem !important;
  }

  .margin-right-xl-tablet {
    margin-right: 4rem !important;
  }

  .margin-bottom-xl-tablet {
    margin-bottom: 4rem !important;
  }

  .margin-left-xl-tablet {
    margin-left: 4rem !important;
  }

  .margin-inline-xl-tablet {
    margin-right: 4rem !important;
    margin-left: 4rem !important;
  }

  .margin-block-xl-tablet {
    margin-top: 4rem !important;
    margin-bottom: 4rem !important;
  }

  .margin-xxl-tablet {
    margin: 6rem !important;
  }

  .margin-top-xxl-tablet {
    margin-top: 6rem !important;
  }

  .margin-right-xxl-tablet {
    margin-right: 6rem !important;
  }

  .margin-bottom-xxl-tablet {
    margin-bottom: 6rem !important;
  }

  .margin-left-xxl-tablet {
    margin-left: 6rem !important;
  }

  .margin-inline-xxl-tablet {
    margin-right: 6rem !important;
    margin-left: 6rem !important;
  }

  .margin-block-xxl-tablet {
    margin-top: 6rem !important;
    margin-bottom: 6rem !important;
  }

  .margin-xxxl-tablet {
    margin: 8rem !important;
  }

  .margin-top-xxxl-tablet {
    margin-top: 8rem !important;
  }

  .margin-right-xxxl-tablet {
    margin-right: 8rem !important;
  }

  .margin-bottom-xxxl-tablet {
    margin-bottom: 8rem !important;
  }

  .margin-left-xxxl-tablet {
    margin-left: 8rem !important;
  }

  .margin-inline-xxxl-tablet {
    margin-right: 8rem !important;
    margin-left: 8rem !important;
  }

  .margin-block-xxxl-tablet {
    margin-top: 8rem !important;
    margin-bottom: 8rem !important;
  }

  .margin-none-tablet {
    margin: 0 !important;
  }

  .margin-top-none-tablet {
    margin-top: 0 !important;
  }

  .margin-right-none-tablet {
    margin-right: 0 !important;
  }

  .margin-bottom-none-tablet {
    margin-bottom: 0 !important;
  }

  .margin-left-none-tablet {
    margin-left: 0 !important;
  }

  .margin-inline-none-tablet {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .margin-block-none-tablet {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media screen and (min-width: 1088px) {
  .margin-xs-desktop {
    margin: 1rem !important;
  }

  .margin-top-xs-desktop {
    margin-top: 1rem !important;
  }

  .margin-right-xs-desktop {
    margin-right: 1rem !important;
  }

  .margin-bottom-xs-desktop {
    margin-bottom: 1rem !important;
  }

  .margin-left-xs-desktop {
    margin-left: 1rem !important;
  }

  .margin-inline-xs-desktop {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }

  .margin-block-xs-desktop {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }

  .margin-s-desktop {
    margin: 1.5rem !important;
  }

  .margin-top-s-desktop {
    margin-top: 1.5rem !important;
  }

  .margin-right-s-desktop {
    margin-right: 1.5rem !important;
  }

  .margin-bottom-s-desktop {
    margin-bottom: 1.5rem !important;
  }

  .margin-left-s-desktop {
    margin-left: 1.5rem !important;
  }

  .margin-inline-s-desktop {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }

  .margin-block-s-desktop {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }

  .margin-m-desktop {
    margin: 2rem !important;
  }

  .margin-top-m-desktop {
    margin-top: 2rem !important;
  }

  .margin-right-m-desktop {
    margin-right: 2rem !important;
  }

  .margin-bottom-m-desktop {
    margin-bottom: 2rem !important;
  }

  .margin-left-m-desktop {
    margin-left: 2rem !important;
  }

  .margin-inline-m-desktop {
    margin-right: 2rem !important;
    margin-left: 2rem !important;
  }

  .margin-block-m-desktop {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }

  .margin-l-desktop {
    margin: 3rem !important;
  }

  .margin-top-l-desktop {
    margin-top: 3rem !important;
  }

  .margin-right-l-desktop {
    margin-right: 3rem !important;
  }

  .margin-bottom-l-desktop {
    margin-bottom: 3rem !important;
  }

  .margin-left-l-desktop {
    margin-left: 3rem !important;
  }

  .margin-inline-l-desktop {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }

  .margin-block-l-desktop {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }

  .margin-xl-desktop {
    margin: 4rem !important;
  }

  .margin-top-xl-desktop {
    margin-top: 4rem !important;
  }

  .margin-right-xl-desktop {
    margin-right: 4rem !important;
  }

  .margin-bottom-xl-desktop {
    margin-bottom: 4rem !important;
  }

  .margin-left-xl-desktop {
    margin-left: 4rem !important;
  }

  .margin-inline-xl-desktop {
    margin-right: 4rem !important;
    margin-left: 4rem !important;
  }

  .margin-block-xl-desktop {
    margin-top: 4rem !important;
    margin-bottom: 4rem !important;
  }

  .margin-xxl-desktop {
    margin: 6rem !important;
  }

  .margin-top-xxl-desktop {
    margin-top: 6rem !important;
  }

  .margin-right-xxl-desktop {
    margin-right: 6rem !important;
  }

  .margin-bottom-xxl-desktop {
    margin-bottom: 6rem !important;
  }

  .margin-left-xxl-desktop {
    margin-left: 6rem !important;
  }

  .margin-inline-xxl-desktop {
    margin-right: 6rem !important;
    margin-left: 6rem !important;
  }

  .margin-block-xxl-desktop {
    margin-top: 6rem !important;
    margin-bottom: 6rem !important;
  }

  .margin-xxxl-desktop {
    margin: 8rem !important;
  }

  .margin-top-xxxl-desktop {
    margin-top: 8rem !important;
  }

  .margin-right-xxxl-desktop {
    margin-right: 8rem !important;
  }

  .margin-bottom-xxxl-desktop {
    margin-bottom: 8rem !important;
  }

  .margin-left-xxxl-desktop {
    margin-left: 8rem !important;
  }

  .margin-inline-xxxl-desktop {
    margin-right: 8rem !important;
    margin-left: 8rem !important;
  }

  .margin-block-xxxl-desktop {
    margin-top: 8rem !important;
    margin-bottom: 8rem !important;
  }

  .margin-none-desktop {
    margin: 0 !important;
  }

  .margin-top-none-desktop {
    margin-top: 0 !important;
  }

  .margin-right-none-desktop {
    margin-right: 0 !important;
  }

  .margin-bottom-none-desktop {
    margin-bottom: 0 !important;
  }

  .margin-left-none-desktop {
    margin-left: 0 !important;
  }

  .margin-inline-none-desktop {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .margin-block-none-desktop {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media screen and (min-width: 1472px) {
  .margin-xs-widescreen {
    margin: 1rem !important;
  }

  .margin-top-xs-widescreen {
    margin-top: 1rem !important;
  }

  .margin-right-xs-widescreen {
    margin-right: 1rem !important;
  }

  .margin-bottom-xs-widescreen {
    margin-bottom: 1rem !important;
  }

  .margin-left-xs-widescreen {
    margin-left: 1rem !important;
  }

  .margin-inline-xs-widescreen {
    margin-right: 1rem !important;
    margin-left: 1rem !important;
  }

  .margin-block-xs-widescreen {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }

  .margin-s-widescreen {
    margin: 1.5rem !important;
  }

  .margin-top-s-widescreen {
    margin-top: 1.5rem !important;
  }

  .margin-right-s-widescreen {
    margin-right: 1.5rem !important;
  }

  .margin-bottom-s-widescreen {
    margin-bottom: 1.5rem !important;
  }

  .margin-left-s-widescreen {
    margin-left: 1.5rem !important;
  }

  .margin-inline-s-widescreen {
    margin-right: 1.5rem !important;
    margin-left: 1.5rem !important;
  }

  .margin-block-s-widescreen {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }

  .margin-m-widescreen {
    margin: 2rem !important;
  }

  .margin-top-m-widescreen {
    margin-top: 2rem !important;
  }

  .margin-right-m-widescreen {
    margin-right: 2rem !important;
  }

  .margin-bottom-m-widescreen {
    margin-bottom: 2rem !important;
  }

  .margin-left-m-widescreen {
    margin-left: 2rem !important;
  }

  .margin-inline-m-widescreen {
    margin-right: 2rem !important;
    margin-left: 2rem !important;
  }

  .margin-block-m-widescreen {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }

  .margin-l-widescreen {
    margin: 3rem !important;
  }

  .margin-top-l-widescreen {
    margin-top: 3rem !important;
  }

  .margin-right-l-widescreen {
    margin-right: 3rem !important;
  }

  .margin-bottom-l-widescreen {
    margin-bottom: 3rem !important;
  }

  .margin-left-l-widescreen {
    margin-left: 3rem !important;
  }

  .margin-inline-l-widescreen {
    margin-right: 3rem !important;
    margin-left: 3rem !important;
  }

  .margin-block-l-widescreen {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
  }

  .margin-xl-widescreen {
    margin: 4rem !important;
  }

  .margin-top-xl-widescreen {
    margin-top: 4rem !important;
  }

  .margin-right-xl-widescreen {
    margin-right: 4rem !important;
  }

  .margin-bottom-xl-widescreen {
    margin-bottom: 4rem !important;
  }

  .margin-left-xl-widescreen {
    margin-left: 4rem !important;
  }

  .margin-inline-xl-widescreen {
    margin-right: 4rem !important;
    margin-left: 4rem !important;
  }

  .margin-block-xl-widescreen {
    margin-top: 4rem !important;
    margin-bottom: 4rem !important;
  }

  .margin-xxl-widescreen {
    margin: 6rem !important;
  }

  .margin-top-xxl-widescreen {
    margin-top: 6rem !important;
  }

  .margin-right-xxl-widescreen {
    margin-right: 6rem !important;
  }

  .margin-bottom-xxl-widescreen {
    margin-bottom: 6rem !important;
  }

  .margin-left-xxl-widescreen {
    margin-left: 6rem !important;
  }

  .margin-inline-xxl-widescreen {
    margin-right: 6rem !important;
    margin-left: 6rem !important;
  }

  .margin-block-xxl-widescreen {
    margin-top: 6rem !important;
    margin-bottom: 6rem !important;
  }

  .margin-xxxl-widescreen {
    margin: 8rem !important;
  }

  .margin-top-xxxl-widescreen {
    margin-top: 8rem !important;
  }

  .margin-right-xxxl-widescreen {
    margin-right: 8rem !important;
  }

  .margin-bottom-xxxl-widescreen {
    margin-bottom: 8rem !important;
  }

  .margin-left-xxxl-widescreen {
    margin-left: 8rem !important;
  }

  .margin-inline-xxxl-widescreen {
    margin-right: 8rem !important;
    margin-left: 8rem !important;
  }

  .margin-block-xxxl-widescreen {
    margin-top: 8rem !important;
    margin-bottom: 8rem !important;
  }

  .margin-none-widescreen {
    margin: 0 !important;
  }

  .margin-top-none-widescreen {
    margin-top: 0 !important;
  }

  .margin-right-none-widescreen {
    margin-right: 0 !important;
  }

  .margin-bottom-none-widescreen {
    margin-bottom: 0 !important;
  }

  .margin-left-none-widescreen {
    margin-left: 0 !important;
  }

  .margin-inline-none-widescreen {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .margin-block-none-widescreen {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}
.padding-xs {
  padding: 1rem !important;
}
.padding-top-xs {
  padding-top: 1rem !important;
}
.padding-right-xs {
  padding-right: 1rem !important;
}
.padding-bottom-xs {
  padding-bottom: 1rem !important;
}
.padding-left-xs {
  padding-left: 1rem !important;
}
.padding-inline-xs {
  padding-right: 1rem !important;
  padding-left: 1rem !important;
}
.padding-block-xs {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}
.padding-s {
  padding: 1.5rem !important;
}
.padding-top-s {
  padding-top: 1.5rem !important;
}
.padding-right-s {
  padding-right: 1.5rem !important;
}
.padding-bottom-s {
  padding-bottom: 1.5rem !important;
}
.padding-left-s {
  padding-left: 1.5rem !important;
}
.padding-inline-s {
  padding-right: 1.5rem !important;
  padding-left: 1.5rem !important;
}
.padding-block-s {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}
.padding-m {
  padding: 2rem !important;
}
.padding-top-m {
  padding-top: 2rem !important;
}
.padding-right-m {
  padding-right: 2rem !important;
}
.padding-bottom-m {
  padding-bottom: 2rem !important;
}
.padding-left-m {
  padding-left: 2rem !important;
}
.padding-inline-m {
  padding-right: 2rem !important;
  padding-left: 2rem !important;
}
.padding-block-m {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}
.padding-l {
  padding: 3rem !important;
}
.padding-top-l {
  padding-top: 3rem !important;
}
.padding-right-l {
  padding-right: 3rem !important;
}
.padding-bottom-l {
  padding-bottom: 3rem !important;
}
.padding-left-l {
  padding-left: 3rem !important;
}
.padding-inline-l {
  padding-right: 3rem !important;
  padding-left: 3rem !important;
}
.padding-block-l {
  padding-top: 3rem !important;
  padding-bottom: 3rem !important;
}
.padding-xl {
  padding: 4rem !important;
}
.padding-top-xl {
  padding-top: 4rem !important;
}
.padding-right-xl {
  padding-right: 4rem !important;
}
.padding-bottom-xl {
  padding-bottom: 4rem !important;
}
.padding-left-xl {
  padding-left: 4rem !important;
}
.padding-inline-xl {
  padding-right: 4rem !important;
  padding-left: 4rem !important;
}
.padding-block-xl {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}
.padding-xxl {
  padding: 6rem !important;
}
.padding-top-xxl {
  padding-top: 6rem !important;
}
.padding-right-xxl {
  padding-right: 6rem !important;
}
.padding-bottom-xxl {
  padding-bottom: 6rem !important;
}
.padding-left-xxl {
  padding-left: 6rem !important;
}
.padding-inline-xxl {
  padding-right: 6rem !important;
  padding-left: 6rem !important;
}
.padding-block-xxl {
  padding-top: 6rem !important;
  padding-bottom: 6rem !important;
}
.padding-xxxl {
  padding: 8rem !important;
}
.padding-top-xxxl {
  padding-top: 8rem !important;
}
.padding-right-xxxl {
  padding-right: 8rem !important;
}
.padding-bottom-xxxl {
  padding-bottom: 8rem !important;
}
.padding-left-xxxl {
  padding-left: 8rem !important;
}
.padding-inline-xxxl {
  padding-right: 8rem !important;
  padding-left: 8rem !important;
}
.padding-block-xxxl {
  padding-top: 8rem !important;
  padding-bottom: 8rem !important;
}
.padding-none {
  padding: 0 !important;
}
.padding-top-none {
  padding-top: 0 !important;
}
.padding-right-none {
  padding-right: 0 !important;
}
.padding-bottom-none {
  padding-bottom: 0 !important;
}
.padding-left-none {
  padding-left: 0 !important;
}
.padding-inline-none {
  padding-right: 0 !important;
  padding-left: 0 !important;
}
.padding-block-none {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
@media screen and (min-width: 768px), print {
  .padding-xs-tablet {
    padding: 1rem !important;
  }

  .padding-top-xs-tablet {
    padding-top: 1rem !important;
  }

  .padding-right-xs-tablet {
    padding-right: 1rem !important;
  }

  .padding-bottom-xs-tablet {
    padding-bottom: 1rem !important;
  }

  .padding-left-xs-tablet {
    padding-left: 1rem !important;
  }

  .padding-inline-xs-tablet {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }

  .padding-block-xs-tablet {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }

  .padding-s-tablet {
    padding: 1.5rem !important;
  }

  .padding-top-s-tablet {
    padding-top: 1.5rem !important;
  }

  .padding-right-s-tablet {
    padding-right: 1.5rem !important;
  }

  .padding-bottom-s-tablet {
    padding-bottom: 1.5rem !important;
  }

  .padding-left-s-tablet {
    padding-left: 1.5rem !important;
  }

  .padding-inline-s-tablet {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }

  .padding-block-s-tablet {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }

  .padding-m-tablet {
    padding: 2rem !important;
  }

  .padding-top-m-tablet {
    padding-top: 2rem !important;
  }

  .padding-right-m-tablet {
    padding-right: 2rem !important;
  }

  .padding-bottom-m-tablet {
    padding-bottom: 2rem !important;
  }

  .padding-left-m-tablet {
    padding-left: 2rem !important;
  }

  .padding-inline-m-tablet {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }

  .padding-block-m-tablet {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }

  .padding-l-tablet {
    padding: 3rem !important;
  }

  .padding-top-l-tablet {
    padding-top: 3rem !important;
  }

  .padding-right-l-tablet {
    padding-right: 3rem !important;
  }

  .padding-bottom-l-tablet {
    padding-bottom: 3rem !important;
  }

  .padding-left-l-tablet {
    padding-left: 3rem !important;
  }

  .padding-inline-l-tablet {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }

  .padding-block-l-tablet {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  .padding-xl-tablet {
    padding: 4rem !important;
  }

  .padding-top-xl-tablet {
    padding-top: 4rem !important;
  }

  .padding-right-xl-tablet {
    padding-right: 4rem !important;
  }

  .padding-bottom-xl-tablet {
    padding-bottom: 4rem !important;
  }

  .padding-left-xl-tablet {
    padding-left: 4rem !important;
  }

  .padding-inline-xl-tablet {
    padding-right: 4rem !important;
    padding-left: 4rem !important;
  }

  .padding-block-xl-tablet {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  .padding-xxl-tablet {
    padding: 6rem !important;
  }

  .padding-top-xxl-tablet {
    padding-top: 6rem !important;
  }

  .padding-right-xxl-tablet {
    padding-right: 6rem !important;
  }

  .padding-bottom-xxl-tablet {
    padding-bottom: 6rem !important;
  }

  .padding-left-xxl-tablet {
    padding-left: 6rem !important;
  }

  .padding-inline-xxl-tablet {
    padding-right: 6rem !important;
    padding-left: 6rem !important;
  }

  .padding-block-xxl-tablet {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }

  .padding-xxxl-tablet {
    padding: 8rem !important;
  }

  .padding-top-xxxl-tablet {
    padding-top: 8rem !important;
  }

  .padding-right-xxxl-tablet {
    padding-right: 8rem !important;
  }

  .padding-bottom-xxxl-tablet {
    padding-bottom: 8rem !important;
  }

  .padding-left-xxxl-tablet {
    padding-left: 8rem !important;
  }

  .padding-inline-xxxl-tablet {
    padding-right: 8rem !important;
    padding-left: 8rem !important;
  }

  .padding-block-xxxl-tablet {
    padding-top: 8rem !important;
    padding-bottom: 8rem !important;
  }

  .padding-none-tablet {
    padding: 0 !important;
  }

  .padding-top-none-tablet {
    padding-top: 0 !important;
  }

  .padding-right-none-tablet {
    padding-right: 0 !important;
  }

  .padding-bottom-none-tablet {
    padding-bottom: 0 !important;
  }

  .padding-left-none-tablet {
    padding-left: 0 !important;
  }

  .padding-inline-none-tablet {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .padding-block-none-tablet {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media screen and (min-width: 1088px) {
  .padding-xs-desktop {
    padding: 1rem !important;
  }

  .padding-top-xs-desktop {
    padding-top: 1rem !important;
  }

  .padding-right-xs-desktop {
    padding-right: 1rem !important;
  }

  .padding-bottom-xs-desktop {
    padding-bottom: 1rem !important;
  }

  .padding-left-xs-desktop {
    padding-left: 1rem !important;
  }

  .padding-inline-xs-desktop {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }

  .padding-block-xs-desktop {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }

  .padding-s-desktop {
    padding: 1.5rem !important;
  }

  .padding-top-s-desktop {
    padding-top: 1.5rem !important;
  }

  .padding-right-s-desktop {
    padding-right: 1.5rem !important;
  }

  .padding-bottom-s-desktop {
    padding-bottom: 1.5rem !important;
  }

  .padding-left-s-desktop {
    padding-left: 1.5rem !important;
  }

  .padding-inline-s-desktop {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }

  .padding-block-s-desktop {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }

  .padding-m-desktop {
    padding: 2rem !important;
  }

  .padding-top-m-desktop {
    padding-top: 2rem !important;
  }

  .padding-right-m-desktop {
    padding-right: 2rem !important;
  }

  .padding-bottom-m-desktop {
    padding-bottom: 2rem !important;
  }

  .padding-left-m-desktop {
    padding-left: 2rem !important;
  }

  .padding-inline-m-desktop {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }

  .padding-block-m-desktop {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }

  .padding-l-desktop {
    padding: 3rem !important;
  }

  .padding-top-l-desktop {
    padding-top: 3rem !important;
  }

  .padding-right-l-desktop {
    padding-right: 3rem !important;
  }

  .padding-bottom-l-desktop {
    padding-bottom: 3rem !important;
  }

  .padding-left-l-desktop {
    padding-left: 3rem !important;
  }

  .padding-inline-l-desktop {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }

  .padding-block-l-desktop {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  .padding-xl-desktop {
    padding: 4rem !important;
  }

  .padding-top-xl-desktop {
    padding-top: 4rem !important;
  }

  .padding-right-xl-desktop {
    padding-right: 4rem !important;
  }

  .padding-bottom-xl-desktop {
    padding-bottom: 4rem !important;
  }

  .padding-left-xl-desktop {
    padding-left: 4rem !important;
  }

  .padding-inline-xl-desktop {
    padding-right: 4rem !important;
    padding-left: 4rem !important;
  }

  .padding-block-xl-desktop {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  .padding-xxl-desktop {
    padding: 6rem !important;
  }

  .padding-top-xxl-desktop {
    padding-top: 6rem !important;
  }

  .padding-right-xxl-desktop {
    padding-right: 6rem !important;
  }

  .padding-bottom-xxl-desktop {
    padding-bottom: 6rem !important;
  }

  .padding-left-xxl-desktop {
    padding-left: 6rem !important;
  }

  .padding-inline-xxl-desktop {
    padding-right: 6rem !important;
    padding-left: 6rem !important;
  }

  .padding-block-xxl-desktop {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }

  .padding-xxxl-desktop {
    padding: 8rem !important;
  }

  .padding-top-xxxl-desktop {
    padding-top: 8rem !important;
  }

  .padding-right-xxxl-desktop {
    padding-right: 8rem !important;
  }

  .padding-bottom-xxxl-desktop {
    padding-bottom: 8rem !important;
  }

  .padding-left-xxxl-desktop {
    padding-left: 8rem !important;
  }

  .padding-inline-xxxl-desktop {
    padding-right: 8rem !important;
    padding-left: 8rem !important;
  }

  .padding-block-xxxl-desktop {
    padding-top: 8rem !important;
    padding-bottom: 8rem !important;
  }

  .padding-none-desktop {
    padding: 0 !important;
  }

  .padding-top-none-desktop {
    padding-top: 0 !important;
  }

  .padding-right-none-desktop {
    padding-right: 0 !important;
  }

  .padding-bottom-none-desktop {
    padding-bottom: 0 !important;
  }

  .padding-left-none-desktop {
    padding-left: 0 !important;
  }

  .padding-inline-none-desktop {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .padding-block-none-desktop {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
@media screen and (min-width: 1472px) {
  .padding-xs-widescreen {
    padding: 1rem !important;
  }

  .padding-top-xs-widescreen {
    padding-top: 1rem !important;
  }

  .padding-right-xs-widescreen {
    padding-right: 1rem !important;
  }

  .padding-bottom-xs-widescreen {
    padding-bottom: 1rem !important;
  }

  .padding-left-xs-widescreen {
    padding-left: 1rem !important;
  }

  .padding-inline-xs-widescreen {
    padding-right: 1rem !important;
    padding-left: 1rem !important;
  }

  .padding-block-xs-widescreen {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }

  .padding-s-widescreen {
    padding: 1.5rem !important;
  }

  .padding-top-s-widescreen {
    padding-top: 1.5rem !important;
  }

  .padding-right-s-widescreen {
    padding-right: 1.5rem !important;
  }

  .padding-bottom-s-widescreen {
    padding-bottom: 1.5rem !important;
  }

  .padding-left-s-widescreen {
    padding-left: 1.5rem !important;
  }

  .padding-inline-s-widescreen {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }

  .padding-block-s-widescreen {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }

  .padding-m-widescreen {
    padding: 2rem !important;
  }

  .padding-top-m-widescreen {
    padding-top: 2rem !important;
  }

  .padding-right-m-widescreen {
    padding-right: 2rem !important;
  }

  .padding-bottom-m-widescreen {
    padding-bottom: 2rem !important;
  }

  .padding-left-m-widescreen {
    padding-left: 2rem !important;
  }

  .padding-inline-m-widescreen {
    padding-right: 2rem !important;
    padding-left: 2rem !important;
  }

  .padding-block-m-widescreen {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }

  .padding-l-widescreen {
    padding: 3rem !important;
  }

  .padding-top-l-widescreen {
    padding-top: 3rem !important;
  }

  .padding-right-l-widescreen {
    padding-right: 3rem !important;
  }

  .padding-bottom-l-widescreen {
    padding-bottom: 3rem !important;
  }

  .padding-left-l-widescreen {
    padding-left: 3rem !important;
  }

  .padding-inline-l-widescreen {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }

  .padding-block-l-widescreen {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  .padding-xl-widescreen {
    padding: 4rem !important;
  }

  .padding-top-xl-widescreen {
    padding-top: 4rem !important;
  }

  .padding-right-xl-widescreen {
    padding-right: 4rem !important;
  }

  .padding-bottom-xl-widescreen {
    padding-bottom: 4rem !important;
  }

  .padding-left-xl-widescreen {
    padding-left: 4rem !important;
  }

  .padding-inline-xl-widescreen {
    padding-right: 4rem !important;
    padding-left: 4rem !important;
  }

  .padding-block-xl-widescreen {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  .padding-xxl-widescreen {
    padding: 6rem !important;
  }

  .padding-top-xxl-widescreen {
    padding-top: 6rem !important;
  }

  .padding-right-xxl-widescreen {
    padding-right: 6rem !important;
  }

  .padding-bottom-xxl-widescreen {
    padding-bottom: 6rem !important;
  }

  .padding-left-xxl-widescreen {
    padding-left: 6rem !important;
  }

  .padding-inline-xxl-widescreen {
    padding-right: 6rem !important;
    padding-left: 6rem !important;
  }

  .padding-block-xxl-widescreen {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }

  .padding-xxxl-widescreen {
    padding: 8rem !important;
  }

  .padding-top-xxxl-widescreen {
    padding-top: 8rem !important;
  }

  .padding-right-xxxl-widescreen {
    padding-right: 8rem !important;
  }

  .padding-bottom-xxxl-widescreen {
    padding-bottom: 8rem !important;
  }

  .padding-left-xxxl-widescreen {
    padding-left: 8rem !important;
  }

  .padding-inline-xxxl-widescreen {
    padding-right: 8rem !important;
    padding-left: 8rem !important;
  }

  .padding-block-xxxl-widescreen {
    padding-top: 8rem !important;
    padding-bottom: 8rem !important;
  }

  .padding-none-widescreen {
    padding: 0 !important;
  }

  .padding-top-none-widescreen {
    padding-top: 0 !important;
  }

  .padding-right-none-widescreen {
    padding-right: 0 !important;
  }

  .padding-bottom-none-widescreen {
    padding-bottom: 0 !important;
  }

  .padding-left-none-widescreen {
    padding-left: 0 !important;
  }

  .padding-inline-none-widescreen {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .padding-block-none-widescreen {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

Changeset needed (patch)

authors: v-mingho wibjorn

repo: microsoft/atlas-design


text:
fix: properly setting last speaker in groupchat

When selecting the the next speaker, and if the boolean argument of allow_repeat_speaker is False, then the previous speaker should not be a valid agent to choose from.

Why are these changes needed?
Right now, the argument allow_repeat_speaker=False doesn't work properly.  All it does it ensure that the group manager (self) doesn't get selected - but that couldn't get selected anyway because it's not in the agents list.
The argument last_speaker should be set to... well... the last speaker :)
Related issue number
No issue created.
Checks

[x] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

@cgood92  We very much appreciate your PR! if you have future PRs we are happy to take a look.

source: gharchive/pull-request

repo: microsoft/autogen

license_type: permissive

license_source: github-api


text:
Error while running on Amazon Linux 2

Attempting to get avml to run on an amazon linux 2 instance (uname -r == 4.14.225-168.357.amzn2.x86_64), however continue to get an "Unable to read physical memory" error.
Steps taken:

Logged onto instance as ec2-user and elevated to root
Pulled down the latest release-v0.2.1 of AVML via wget (md5:4d360eba0cdba02adf0900f64ae3dc1c), ran "chmod +x avml"
Ran (as root) "./avml memory.mem", got above mentioned error
Also tried "./avml --compress memory.mem", got same error

I have also attempted building avml with rust/cargo, tested on a ubuntu vm (it worked), transferred over to the AL2 instance, got same error.  Please assist! Thank you.

Can you verify you have read access to /dev/crash, /proc/kcore, or /dev/mem?

Still looking for some assistance on this one...Also seeing another somewhat related issue when running on a t2.xlarge vs. t2.micro.  Here is a side-by-side of the 2 instances (both same kernel, same avml, different size mem xlarge vs. micro)

@dfir-man131, if you're building from source, please try PR #20.  This adds detailed context to the error conditions, hopefully this will help debug this issue.
If you are not using source, are you able to download the build artifacts from this pipeline?
https://dev.azure.com/ms/avml/_build/results?buildId=162945&view=artifacts&pathAsName=false&type=publishedArtifacts
If so, please try that build of avml and paste the errors here.   Note: It's helpful to include the standard out & error as text rather than a screenshot.  Thanks.

Below is the output from using the provided avml package...
[ec2-user@ip- ~]$ sudo ./avml --compress mem
unable to read memory
/dev/crash failed: unable to create image. source:/dev/crash destination:mem
Caused by:
0: unable to open source file: /dev/crash
1: No such file or directory (os error 2)
/proc/kcore failed: unable to copy block: 4294967296..34628173824
Caused by:
0: unable to copy block: 16982736896..17087594496
1: copy failed
2: No space left on device (os error 28)
/dev/mem failed: unable to write block: 1048576:4026531839
Caused by:
0: unable to copy block: 1048576..4026531839
1: unable to copy block: 1048576..105906176
2: copy failed
3: Operation not permitted (os error 1)
Error: unable to collect memory
Caused by:
unable to read physical memory

Ah, ok I see the see the issue.  Your VM supports /proc/kcore, however

(sorry, didn't mean to close the issue.)
I see the problem.  You're running out of disk space when creating the memory snapshot.
/proc/kcore failed: unable to copy block: 4294967296..34628173824

Caused by:
0: unable to copy block: 16982736896..17087594496
1: copy failed
2: No space left on device (os error 28)

source: gharchive/issue

repo: microsoft/avml

license: MIT


text:
yaml pipeline each loop and if conditions

Having issue with YAML?
Please log an issue at Azure-Pipelines-YAML. Over there we discuss YAML templates, samples for Azure Pipelines, and designs for upcoming YAML features. Also a place for the community to share best practices, ideas, and so on. File suggestions and issues here if they're specific to YAML pipelines.
Having issue with Tasks?
Log an issue at Azure-Pipelines-Tasks. It contains all of the in-box tasks we ship with Azure-Pipelines/VSTS/TFS. If you're having issues with tasks in Build/Release jobs (e.g. unreasonable task failure) please log an issue there.
Having issue with software on Hosted Agent?
Log an issue at Hosted Agent Image Repository. It contains the VM image used in the Azure Pipelines Hosted Agent Pool. If you're having Build/Release failures that seems like they are related to software installed on the Hosted Agent (e.g. the dotnet SDK is missing or the Azure SDK is not on the latest version) please log an issue there.
Having generic issue with Azure-Pipelines/VSTS/TFS?
Please report it on Developer Community
Have you tried troubleshooting?
Troubleshooting doc
Agent Version and Platform
Version of your agent? 2.144.0/2.144.1/...
OS of the machine running the agent? OSX/Windows/Linux/...
Azure DevOps Type and Version
dev.azure.com (formerly visualstudio.com) or on-premises TFS/Azure DevOps Server?
If on-premises, which release? 2015.0, 2017.1, 2019 RC2, etc.
If dev.azure.com, what is your organization name? https://dev.azure.com/{organization} or https://{organization}.visualstudio.com
What's not working?
Please include error messages and screenshots.
Agent and Worker's Diagnostic Logs
Logs are located in the agent's _diag folder. The agent logs are prefixed with Agent_ and the worker logs are prefixed with Worker_. All sensitive information should already be masked out, but please double-check before pasting here.

From my common template ( other pipelines will extend it ) i am building i am trying to inject certain steps / jobs on specific stages. Not on all stages.
Example available from documentations are just

how to insert steps in being and end
prevent certain ( scripts ) to be executed from pipeline.

My question here is

How can I find and insert stages/jobs before specific stage.
How do we prevent certain steps other than ( scripts )

`parameters:

name: allStages # the name of the parameter is buildSteps
type: stageList # data type is StepList
default: [] # default value of buildSteps

stages:

stage: prestage
jobs:

job:
steps:

checkout: none
script: echo pre-stage.

stage:

${{ each stage in parameters.allStages }}:

${{ each pair in stage }}:
${{ if and(eq(pair.key, 'stage'), eq(pair.value, 'repostage1')) }}:
- stage: stage1
jobs:
- job:
steps:
- checkout: none
- script: echo pre-stage.`

Can we write conditions from 'pair.value' ?? When i ran this i get 'Object is not set to instance error'

Incorrectly opened under agents

repo: microsoft/azure-pipelines-agent


text:
Add support for user capabilities.

Based on the issue I did raise few weeks ago (https://github.com/Microsoft/azure-pipelines-agent/issues/1811), I tried the .env solution, but it has some border effect on our builds as capabilities are not by default visible under the environment.
Here is an addition that handles custom capabilities similarly to custom environment variable using .env file. A .capabilities file under root of the agent will inject custom capabilities to the agent.

@TingluoHuang Could you have a look at this PR?

@williambernardet Can you reconfigure the agent when this needs to be done?
@vtbassmatt for additional thoughts.

This seems reasonable enough. It's like a .env file but that only sets capabilities, not environment variables. Sorry @williambernardet for the long delay in getting to you on this. The PR will need some changes to accommodate changes that have occurred in the agent since you first opened it.

Sorry, was pretty busy in the past few days. Thanks for including this change! :D

@williambernardet - Thanks for the contribution!

Tried it with agent version 2.165.2 for Linux with no success. Is there documentation on how-to use this feature?

authors: aelray jtpetty stephenmichaelf vtbassmatt williambernardet


text:
File not found 2.157.3\runvstest.js after updating task on Azure DevOps Server Version Dev17.M153.3

Question, Bug, or Feature?
Type: Bug
Enter Task Name: VSTest
list here (V# not needed):
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks
Environment
 - Server - TFS on-premises
- If using TFS on-premises, provide the version:

DevOps Server Version: Dev17.M153.3
 - Agent - Private
- If using private agent, provide the OS of the machine running the agent and the agent version:

Our agent version right now is: 2.153.1
Issue Description
We were having problems running coverage with Nunit and according to this:
https://github.com/nunit/nunit3-vs-adapter/issues/519
We should update this vs test task.
Perhaps this is a documentation issue, as there is nothing written about whats required to install the new task and now our unit tests cannot be run as it searches for a js file. The new task uses typescript.
How can i downgrade the task version?
Task logs
Starting: Run Unit Tests
Task         : Visual Studio Test
Description  : Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2).
Version      : 2.157.3
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/test/vstest
[error]File not found: 'C:\agent_01_work_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\2.157.3\runvstest.js'
[section]Finishing: Run Unit Tests
We have installed the task by using
.\VsTest-2.157.3.ps1 -CollectionUrl http://ourAzure:8080/NxCollection/
And as workaround we had to rename the old task folder to 2.157.3 on every agent 👎
We could not find any directions on how to revert the task to an older version. Nor could we find a 2.156.* ps1 installer.

We do not recommend manually downloading the task because there will be a client-server mismatch that causes undesirable behaviour when interacting with the server.

I have same issue after upgrading from 2.205.0 to 2.235.0
I upgraded using

git clone from https://github.com/microsoft/azure-pipelines-tasks.git
git checkout -b vstest22350 b0663cd1885036b7b6ecdb1762b00f2b0d455279
npm install -g tfx-cli
tfx login
tfx build tasks upload --task-path Local\Path\azure-pipelines-tasks\Tasks\VsTestV2

the task now fails with this error:
##[error]File not found: 'E:\ADOAgent_work_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\2.235.0\runvstest.js'
I really need to downgrade back, how to do it ?

found a way to delete the task using "..\AppData\Roaming\npm\tfx.cmd build tasks delete --task-id ef087383-ee5e-42c7-9a53-ab56c98420f9" This removes the latest installed version, but keeps the previous ( old version ) untouched, unless run 2x times.

repo: microsoft/azure-pipelines-tasks


text:
Add tests for npm package  "codecoverage-tools"

Need to cover npm-package codecoverage-tools by tests

[x] utilities.ts
[x] codecoverageutilities.ts
[ ] codecoveragefactory.ts
[ ] codecoverageenabler.ts
[ ] codecoverageconstants.ts
[ ] cobertura\cobertura.ant.ccenabler.ts
[ ] cobertura\cobertura.gradle.ccenabler.ts
[ ] cobertura\cobertura.maven.ccenabler.ts
[ ] jacoco\jacoco.ant.ccenabler.ts
[ ] jacoco\jacoco.gradle.ccenabler.ts
[ ] jacoco\jacoco.maven.ccenabler.ts

Created a PR: https://github.com/microsoft/azure-pipelines-tasks-coverage-tools/pull/5

Created PR for files utilities.ts and codecoverageutilities.ts: https://github.com/microsoft/azure-pipelines-tasks-common-packages/pull/79

Created PR for remaining files: https://github.com/microsoft/azure-pipelines-tasks-common-packages/pull/145


text:
Update Connect-AzureADExporter.ps1 with dynamic tab autocomplete for environment name

Used ArgumentCompleter (backwards compatible with Windows PowerShell 5.1) to dynamically pull Azure environment names for tab autocomplete of the Environment parameter.
Resolves issue #22 (tab autocomplete for Azure environment names should not be hard  coded).

That commit gives us dynamic tab autocomplete, but I just realized that it doesn't validate inputs. Would this be better?
function Connect-AzureTestCompatible {
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$false)]
        [ArgumentCompleter( {
            param ( $CommandName, $ParameterName, $WordToComplete, $CommandAst, $FakeBoundParameters )
            $Global:EnvironmentNames = (Get-MgEnvironment).Name; $EnvironmentNames
        } )]
        [ValidateScript({
            if ($_ -in $Global:EnvironmentNames) {
                $true
            } else {
                throw "$_ is not a valid environment name. Please use one of the following: $($Global:EnvironmentNames -join ', ')"
            }
        })]
        [string]$Environment
    )
    write-output $Environment
}

repo: microsoft/azureadexporter


text:
arc sqlmi deployment fails through wizard but works on notebook

Azure Data Studio Version:
Version: 1.22.0-rc1 (system setup)
Commit: 95625b65c47d0ac62399a506dae00da97a223af4
Date: 2020-09-21T19:49:57.788Z
VS Code: 1.48.0
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Windows_NT x64 10.0.20201

Steps to Reproduce:

Install Azure Arc 0.4.2 and Azure Data CLI 0.2.2 extensions
Connect to Arc DC
Create a new instance by pressing "New Instance" on the data controller page
Press - 'Managed Instance - Azure Arc'
Go through deployment wizard and press 'Deploy'

It will fail, and it will open the notebook, press 'run all' on Notebook, and sqlmi gets deployed.

This is a known azdata bug.

Not applicable anymore since all deployments go through Notebooks now

authors: Charles-Gagnon chlafreniere vin-yu

repo: microsoft/azuredatastudio


text:
The scroll bar doesn't show or incorrect when resizing webview component in modelview

install sqlservices (sample) extension
Run cmd "sqlservices.openEditorWithWebView2"

Actual result:
The editor and scroll bar show correctly when it first displays.
However, when resize the window, the scroll bar either doesn't show or scrolling the scrollbar doesn't go through the end of the page.

Closing out old issues.  Please reactive if this is still impacting a user scenario.

authors: AbbiePetcht kburtram


text:
Notebooks are not supporting input from the users

Issue Type: Bug
We need an ability where users can provide input within the Notebooks.

sno=input('Enter SSN')
name=input('Enter Name')
print('Details are',sno,name)
This code works fine in python but not in our notebooks.
Azure Data Studio version: azuredatastudio 1.3.7-insider (5adcabc8dea4232bca4a46da445fbfc4b85703f3, 2018-12-08T02:30:52.580Z)
OS version: Windows_NT x64 10.0.17763

System Info

Item
Value

CPUs
Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz (8 x 3591)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
31.93GB (18.16GB free)

Process Argv
C:\Program Files\Azure Data Studio\azuredatastudio.exe

Screen Reader
no

VM
0%

Fixed in latest Insiders

authors: kevcunnane ronychatterjee


text:
Oracle data source browser runs slow when loading first time

Oracle data source browser runs slow when loading first time.
This affects to ADS External Data Extension be slow when it browses Oracle data source.
This is because the way of recognizing Oracle table column definition is changed in SQL Server 2019.

Fix has been merged.


text:
A11y_AzureDataStudio(Schema,Dacpac,Backup)_ Deploy Dacpac Settings_Screenreader: NVDA is not announcing the radio buttons of Target Database.

#A11yMAS; #A11yTCS; #A11y_ADS_Schema_Dacpac_Backup; #Azure Data Studio; #DesktopApp; #Win10;
Environment Details:
Application Name: Azure Data Studio
Application Version: 1.10.0-insider (user setup)
Commit: 1ff9a2ec4c7b88be01666bdd470bbbb4ab95716e
Date: 2019-08-09T07:49:00.254Z
VS Code 1.37.0
Electron: 4.2.7
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.18362
Additional Details:
Tools Name: Accessibility insight tool
MAS References: MAS1.3.1
Repro Steps:

Launch Azure Data Studio application.
Connect to server with windows credentials.
Navigate to Extensions from left menu.
Search & install Dacpac extension.
Navigate to Connections from left menu.
Expand the server connected in step 2.
Right click an on prem database and select Data-tier application wizard from Context menu.
Select first radio button.
Launch NVDA.
Navigate till next button & hit enter.
Navigate up to radio buttons of Target database and observed that NVDA is announcing the Radio buttons properly.

Actual:
NVDA is announcing the radio buttons like upgrade existing database new database row 1 column 1 radio button checked 1 of 2.
Expected:
NVDA should announce the radio buttons like Upgrade Existing Database radio button checked 1 of 2, New database radio button checked 2 of 2.
Recommendations:
Refer below link which is repository of bug fixes code snippets: https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx
User Impact:
Screen reader users will face difficulty to understand radio buttons properly.
MAS Reference:
MAS 1.3.1- https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={54f28d1f-a2d1-4dcd-84e1-5c9b87e8aba4}
Reference Attachment:

I have verified this issue on,
Version: 1.12.0-insider (user setup)
Commit: bca7c8e6bda229d2d71415d1b9e941dcce387db0
Date: 2019-09-30T08:16:25.292Z
VS Code: 1.38.0
Electron: 6.0.9
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Windows_NT x64 10.0.18362
and observed that this issue has been fixed. Hence I am closing this issue.
Attachment:


text:
Add title property for data grid providers

Title used for editor title and aria title of the grid component.
Also did a slight refactoring of the data grid provider service to just expose getting the provider object itself instead of having to have a separate function for every property/function to query on the providers.

Pull Request Test Coverage Report for Build 338210131

1 of 3 (33.33%)  changed or added relevant lines in 3 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.004%) to 39.557%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

extensions/azurecore/src/azureDataGridProvider.ts
0
1
0.0%

src/sql/workbench/api/common/extHostDataProtocol.ts
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/jupyter/serverInstance.ts
4
73.61%

Totals

Change from base Build 338193792:
-0.004%

Covered Lines:
20659

Relevant Lines:
47950

💛  - Coveralls

authors: Charles-Gagnon coveralls


text:
Use official Microsoft ads-kerberos

https://github.com/microsoft/ads-kerberos
This is an exact copy of https://github.com/aasimkhan30/ads-kerberos#readme.
Had @abist test that kerberos functionality is still working as intended.

Pull Request Test Coverage Report for Build 808266006

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.002%) to 43.536%

Totals

Change from base Build 807744838:
-0.002%

Covered Lines:
26464

Relevant Lines:
55320

💛  - Coveralls


text:
update to extensionsGallery insider for October release

Bumps the language pack version for October release,
Vsixes can be found in this build: https://mssqltools.visualstudio.com/CrossPlatBuildScripts/_build/results?buildId=123492&view=results

@smartguest Typically we should wait until the release branch is cut off before sending this out in case there are last-minute string changes.

this is merged

authors: Charles-Gagnon smartguest v-srinisa


text:
[Loc] final update to langpacks for November release.

Last update of the langpacks prior to the split, will be merged as a port request after being merged into main.

The hygiene issues in this PR are not related to this change, this PR only makes use of the resources already part of the release.

The hygiene issues in this PR are not related to this change, this PR only makes use of the resources already part of the release.

I have a PR out for the hygiene fix https://github.com/microsoft/azuredatastudio/pull/24822. I'll merge it after the PR checks finish and then you can merge main to pick up the fix.

Pull Request Test Coverage Report for Build 6699987640

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.001%) to 41.57%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/book/bookTreeView.ts
1
36.91%

Totals

Change from base Build 6699729343:
-0.001%

Covered Lines:
30785

Relevant Lines:
69356

💛  - Coveralls

authors: coveralls kisantia smartguest


text:
Microsoft Hands-On Labs Profile Is Disabled

The profile for connecting to the Microsoft Hands-On Labs is currently disabled.
Kindly assist with the profile to connect to the labs.

I encounered the some problem

I encounered the same problem

I encounered the same problem

Hi all,
Unfortunately, Microsoft Hands-On Lab Virtual Environments are no longer available. You need to download Virtual Machine or you can have look at Microsoft Learn Hands-On Labs here https://docs.microsoft.com/en-us/learn/browse/?expanded=azure&products=azure-devops
Thanks

authors: Midden6185 sriramdasbalaji walezbee

repo: microsoft/azuredevopslabs


text:
Change AdaptiveDialog to options as the initial state

Per DCR #3011

Pull Request Test Coverage Report for Build 93633

0 of 0   changed or added relevant lines in 0 files are covered.
18 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.001%) to 74.067%

Files with Coverage Reduction
New Missed Lines
%

/libraries/Microsoft.Bot.Builder.Dialogs.Adaptive/AdaptiveDialog.cs
18
90.35%

Totals

Change from base Build 93612:
0.001%

Covered Lines:
14295

Relevant Lines:
19300

💛  - Coveralls

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Integration.AspNet.Core.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Testing.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Streaming.dll compared against version 4.6.3

authors: coveralls fuselabs tomlm

repo: microsoft/botbuilder-dotnet


text:
Change management & release process

Define release cadence, communication, update process.
Breaking change policy

What are the change management processes around this (process stream)
How long will prior versions be supported

We have existing processes in place. But we will create a more comprehensive policy document towards/after the 1.0 release.

document release process and change documentation
document versioning of libraries

authors: allenjzhang markcowl markweitzel

repo: microsoft/cadl


text:
[RISC-V] Correct RiscV64Context structure size field

Correct RiscV64Context structure size field according to runtime's registers context structure size with alignment. This commit fix parallelstacks SOS command in diagnostics:
before:
> parallelstacks

==> 0 threads with 0 roots

after
> parallelstacks

________________________________________________
 ~~~~ 1d8f51
    1 Interop+Sys.ReadStdin(Byte*, Int32)
    1 System.IO.StdInReader.ReadStdin(Byte*, Int32)
    1 System.IO.StdInReader.ReadKey()
    1 System.IO.StdInReader.ReadLineCore(Boolean)
    1 System.IO.StdInReader.ReadLine()
    1 System.IO.SyncTextReader.ReadLine()
    1 System.Console.ReadLine()
    1 TestApp.Program.Main()
    1 TestApp.Program.Main()

==> 1 threads with 1 roots

CC @clamp03 @wscho77 @HJLeee @JongHeonChoi @t-mustafin @gbalykov

@leculver please take a look

Sorry for the delay, I am just back from vacation.

@leculver thank you!

authors: gbalykov leculver viewizard

repo: microsoft/clrmd


text:
Build issue with conflicting demangle definition with boost/core/demangle.hpp

Our product has boost as one of the third party libraries used. The "demangle" defined int typename.hpp is conflicting with boost's definition.
Steps to reproduce.
Integration ClientTelemetry lib with boost libs.

Looking into the boost docs, demangle is defined within boost::core: namespace, while 1ds-cpp-sdk defines it as static inline in global namespace.  So, unless you are doing namespace pollution in the code (i.e., using namespace boost::core), the conflict shouldn't be there.

authors: lalitb rramachandra-msft


text:
Adding repos separately clears clone path of other repos when cloning

Dev Home version
0.601.297.0
Windows build number
10.0.22631.2506
Other software
OS Build Version: 10.0.22631.2506.amd64fre.ni_release.220506-1250
.NET Version: .NET 6.0.23
Steps to reproduce the bug
Go to Machine configuration > Clone repositories
First part

Click "+ Add repository"
Select a single repository to clone (in my testing, I am cloning from my "Account")
Leave Path as default value
Click "Add"

Once added you will be redirected back to the Clone repositories page, from here do the following
Second part

Click the pencil icon against the repo to edit it
Change the clone path to something different
Click "Save"

Once changed, repeat the First part and at the point of clicking "Add" the repo is added to the clone repositories list and any previous repos which had an edited clone path, are all reset to the default value when they were saved.
Expected result
Any previous repositories in the list to maintain their clone path without being reset to their default value
Actual result
Any previous repositories in the list are reset to the default value, presumably the value that could have been set from when originally adding the repo.
Included System Information
Physical Memory: 31.92GB (20.92GB free)
Processor Architecture: x64
Included Extensions Information
Extensions:
Microsoft.Windows.DevHome_0.601.297.0_x64__8wekyb3d8bbwe
Microsoft.Windows.DevHomeGitHubExtension_0.600.283.0_x64__8wekyb3d8bbwe

This has been fixed in https://github.com/microsoft/devhome/pull/1766. Hopefully, this PR will be included in the next release and cloning into different locations won't be an issue.

Duplicate of #1387

authors: MattVon hamnarauf krschau

repo: microsoft/devhome


text:
Update Test.ps1

Summary of the pull request
This pull request addresses [briefly describe the issue or enhancement]. It includes improvements to the PowerShell script for running Dev Home tests.
References and relevant issues
[Link to the related issue or mention any relevant context]
Detailed description of the pull request / Additional comments
[Provide a more detailed description of the changes made in the pull request. Highlight any major modifications or improvements. If there are specific decisions or considerations made during the update, mention them here.]
Validation steps performed

[x] Tested the script on [specify the environments or scenarios tested].
[x] Ensured that WinAppDriver installation works as expected.
[x] Verified the functionality of Dev Home tests after the script update.
[x] [Any other validation steps performed]

PR checklist

[x] Closes #[issue number]
[x] Tests added/passed
[x] Documentation updated

`param (
[string]$Platform = "x64",
[string]$Configuration = "debug",
[switch]$IsAzurePipelineBuild = $false,
[switch]$Help = $false
)
$StartTime = Get-Date
if ($Help) {
Write-Host @"
Copyright (c) Microsoft Corporation and Contributors.
Licensed under the MIT License.
Syntax:
Test.cmd [options]
Description:
Runs Dev Home tests.
Options:
-Platform
Only build the selected platform(s)
Example: -Platform x64
Example: -Platform "x86,x64,arm64"
-Configuration
Only build the selected configuration(s)
Example: -Configuration release
Example: -Configuration "debug,release"
-Help
Display this usage message.
"@
Exit
}
$env:Build_SourcesDirectory = (Split-Path $MyInvocation.MyCommand.Path)
$env:Build_Platform = $Platform.ToLower()
$env:Build_Configuration = $Configuration.ToLower()
$vstestPath = &"${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -prerelease -products * -find '**\TestPlatform\vstest.console.exe'
$ErrorActionPreference = "Stop"
$isInstalled = Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall* | Where-Object { $_.DisplayName -like "Windows Application Driver" }
if (-not $IsAzurePipelineBuild) {
if ($isInstalled) {
Write-Host "WinAppDriver is already installed on this computer."
} else {
Write-Host "WinAppDriver will be installed in the background."
$url = "https://github.com/microsoft/WinAppDriver/releases/download/v1.2.99/WindowsApplicationDriver-1.2.99-win-x64.exe"
$outpath = Join-Path $env:Build_SourcesDirectory "temp"
    if (-not (Test-Path -Path $outpath)) {
        New-Item -ItemType Directory -Path $outpath | Out-Null
    }

    Invoke-WebRequest -Uri $url -OutFile (Join-Path $outpath "WinAppDriverx64.exe")

    Start-Process -Wait -FilePath (Join-Path $env:Build_SourcesDirectory "temp\WinAppDriverx64.exe") -ArgumentList "/S" -PassThru
}

Start-Process -FilePath "C:\Program Files\Windows Application Driver\WinAppDriver.exe"

}
function ShutDownTests {
if (-not $IsAzurePipelineBuild) {
Stop-Process -Name "WinAppDriver" -ErrorAction SilentlyContinue
}
$TotalTime = (Get-Date) - $StartTime
$TotalMinutes = [math]::Floor($TotalTime.TotalMinutes)
$TotalSeconds = [math]::Ceiling($TotalTime.TotalSeconds)

Write-Host @"
Total Running Time:
$TotalMinutes minutes and $TotalSeconds seconds

"@ -ForegroundColor Cyan
}
if (-not (Test-Path -Path "AppxPackages")) {
Write-Host "Nothing to test. Ensure you have built via the command line before running tests. Exiting." -ForegroundColor Yellow
Exit 1
}
try {
foreach ($platform in $env:Build_Platform.Split(",")) {
foreach ($configuration in $env:Build_Configuration.Split(",")) {
# TODO: UI tests are currently disabled in the pipeline until signing is solved
if (-not $IsAzurePipelineBuild) {
$DevHomePackage = Get-AppPackage "Microsoft.DevHome" -ErrorAction SilentlyContinue
if ($DevHomePackage) {
Write-Host "Uninstalling old Dev Home"
Remove-AppPackage -Package $DevHomePackage.PackageFullName
}
Write-Host "Installing Dev Home"
Add-AppPackage (Join-Path "AppxPackages" "$configuration\DevHome-$platform.msix")
}
        $vstestArgs = @(
            "/Platform:$platform",
            "/Logger:trx;LogFileName=DevHome.Test-$platform-$configuration.trx",
            "test\bin\$platform\$configuration\net8.0-windows10.0.22000.0\DevHome.Test.dll"
        )
        $winAppTestArgs = @(
            "/Platform:$platform",
            "/Logger:trx;LogFileName=DevHome.UITest-$platform-$configuration.trx",
            "uitest\bin\$platform\$configuration\net8.0-windows10.0.22000.0\DevHome.UITest.dll"
        )

        & $vstestPath $vstestArgs
        # TODO: UI tests are currently disabled in the pipeline until signing is solved
        if (-not $IsAzurePipelineBuild) {
            & $vstestPath $winAppTestArgs
        }

        foreach ($toolPath in (Get-ChildItem "tools")) {
            $tool = $toolPath.Name
            $vstestArgs = @(
                "/Platform:$platform",
                "/Logger:trx;LogFileName=$tool.Test-$platform-$configuration.trx",
                "tools\$tool\*UnitTest\bin\$platform\$configuration\net8.0-windows10.0.22000.0\*.UnitTest.dll"
            )

            $winAppTestArgs = @(
                "/Platform:$platform",
                "/Logger:trx;LogFileName=$tool.UITest-$platform-$configuration.trx",
                "tools\$tool\*UITest\bin\$platform\$configuration\net8.0-windows10.0.22000.0\*.UITest.dll"
            )

            & $vstestPath $vstestArgs
            # TODO: UI tests are currently disabled in the pipeline until signing is solved
            if (-not $IsAzurePipelineBuild) {
                & $vstestPath $winAppTestArgs
            }
        }
    }
}

} catch {
$formatString = "n{0}nn{1}n`n"
$fields = $, $.ScriptStackTrace
Write-Host ($formatString -f $fields) -ForegroundColor Red
ShutDownTests
Exit 1
}
ShutDownTests
`

@SleepTheGod please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
@microsoft-github-policy-service agree [company="{Taylor Christion Newsome}"]

Options:

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.

@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

I agree


text:
⚠ Label Repo as Deprecated

C implementation is now deprecated
Issue
Link your PR to an issue
Fixes #___
Description
Marking this repo as deprecated in favor of newer repo

Build is failing from unrelated reason than PR.

This repo is now deprecated

authors: keithrfung rc-ms

repo: microsoft/electionguard-c


text:
Ability to view and edit workflows

Is there an option to view the actual source code of the workflows? And is there a document describing the available parameters and the outputs types?
It would be very beneficial to understand the inner workings of the workflows and be able to modify them for a particular use case. As en example, at the moment spaceeye pipeline takes up huge amount of space and optimising assets handling (deleting processed tiles, saving only ROI instead of complete assets, etc.) should help to reduce that.

Hi, Ihar. Thanks for opening the issue and using FarmVibes.AI. Answering your questions:
It is possible to view the workflow components, adapt to specific needs, and compose new workflows (the Sentinel notebook has a few examples). For workflow information (including all the stages) and parameters can be viewed through the client by running, the command:
client.document_workflow("data_processing/spaceeye/spaceeye")

a full list of Workflows can be found here. For workflows, we are planning on adding the ability to visualize the YAML file describing the graph. Exposing the code for the Operations (the compute unit in a workflow stage) is not currently in the plans.
For the specific behavior on SpaceEye you are mentioning we would need to modify the behavior of a few operations themselves. That is work already being done by the team, and we expect to have this modified in our next release. This should already decrease the amount of storage by almost 50%. On the ask for processing only the ROI, I believe this could be an option we add to the same operation, but I would need to align with the team and get back to you.
In the current architecture, asset handling is not performed on a per-workflow level, but across workflows and we are planning on providing a data management API in the platform, where assets associated with previous workflow runs are deleted and creating policies for when to delete assets. This data management layer is currently a work in progress, with an ETA in the next couple of months.
Would love to understand your specific use case better and understand how to unblock you, let me know if you are able to join a call.

@iharshulhan, with #71 , we have added the ability to retrieve the yaml file specifying our workflows in the client and REST API. In the client, you can access it via:
client.get_workflow_yaml(workflow_name)

with workflow_name as the name of the workflow of interest (e.g., helloworld, data_ingestion/cdl/download_cdl).
In the REST API, you can retrieve it through the endpoint v0/workflows/{workflow_name}?return_format=yaml.
For more information on how workflow yamls are specified and how to compose custom workflows, please refer to WORKFLOWS.md and the example notebooks grouped under the "Working with Custom Workflows" topic.

Additionally, we have improved Sentinel-2 preprocessing steps and the workflow should now consume half the previous disk space and be twice as fast. Be mindful that the cache for the new operations is not compatible with the cache from previous versions.
I will close this issue for now, but fell free to reopen it or open a new issue if you want to discuss further.

@lonnes , this is interesting , we are looking forward to the data management layer, hopefully it can export workflows & notebook outputs via an API

authors: Amr-MKamal iharshulhan lonnes rafaspadilha

repo: microsoft/farmvibes-ai


text:
In some cases, errors are not processed by CosmosResponseProcessor

Describe the bug
As found in the PR: https://github.com/microsoft/fhir-server/pull/1367#discussion_r511029941
Sometimes errors do not pass through CosmosResponseProcessor, the example of this was an invalid continuation token.
FHIR Version?
Stu3/R4/R5
Data provider?
CosmosDB
To Reproduce
Steps to reproduce the behavior:

Post in a bad continuation token, ?ct=blah

Expected behavior
Exception is handled in https://github.com/microsoft/fhir-server/blob/master/src/Microsoft.Health.Fhir.CosmosDb/Features/Storage/CosmosResponseProcessor.cs#L45
Actual behavior
Exception is bubbled up through CosmosFhirDataStore https://github.com/microsoft/fhir-server/pull/1367/files/90943313c45bf414d231d6be692f8e702e0fe4dc#diff-f61db2cb87b2bd1614148938d7c8abcfb0ec67aa5680e932aba0a0d1fd7bc340

I worry this means that session consistency and request charge headers are not being set for searches.

AB#77725

AB#77725

authors: CaitlinV39 brendankowitz johnstairs

repo: microsoft/fhir-server


text:
Adds resource specific versioning configuration

Description
This PR adds the ability to specify resource-specific versioning in appsettings.json. @PTaladay will kindly be taking over this PR as I will be OOF next week.
Related issues

Addresses AB#86649.

Up next

We need to add the ability to deserialize the versioning configuration object so that we can pull this configuration info into PaaS (AB#86832)
Check to see if there are any automated tests that we can add here (AB#86833)

Testing
Added a new .http test file that outlines a manual test flow.
FHIR Team Checklist

✅ Update the title of the PR to be succinct and less than 50 characters
✅ Add a milestone to the PR for the sprint that it is merged (i.e. add S47)
✅ Tag the PR with the type of update: Bug, Dependencies, Enhancement, or New-Feature
✅ Tag the PR with Azure API for FHIR if this will release to the Azure API for FHIR managed service (CosmosDB or common code related to service)
✅ Tag the PR with Azure Healthcare APIs if this will release to the Azure Healthcare APIs managed service (Sql server or common code related to service)
✅ Review squash-merge requirements

Semver Change (docs)
Feature (new disable history functionality)

If a resource already has historical versions before versioning is turned off then the results from a call to _history show the old versions and the latest version, but have a gap from when versioning was turned off. This makes sense knowing how we store the data, but it seems weird from a user perspective. I don't have a better idea for what should be done, I just wanted to check that this was intended behavior.

Is it possible to add E2E tests for this feature?

If a resource already has historical versions before versioning is turned off then the results from a call to _history show the old versions and the latest version, but have a gap from when versioning was turned off. This makes sense knowing how we store the data, but it seems weird from a user perspective. I don't have a better idea for what should be done, I just wanted to check that this was intended behavior.

Yes, this was a known issue. The main reason for doing this in the first place is to keep new historical data. In the specific case of Cigna, this would get wiped out eventually so it would only be temporary  for this old history data with a gap to show up. I don't believe there is any specific plan to fix this.

Yes, I will be taking a look into what is currently covered and see what we need to add.

authors: LTA-Thinking PTaladay rotodd


text:
FHIRPath Patch

Description
Implements FHIRPath Patch as defined on the HL7 website. Co-coded with @mattpasco-microsoft and @stgricci.
Done

[x] Implemented FHIRPatch
[x] Check edge cases with FHIR chat group. Document behavior on undefined areas.
[x] Re-use extensions and helper methods in fhir-server repo. (no ElementNode extensions exist elsewhere)
[x] Complete unit testing.
[x] Add E2E testing.
[x] Fix FHIRPatch in bundles.
[x] Add example .http file for FHIRPatch.

Related issues
Addresses #1268. Related to unmerged PR #1272 by @valeneiko.
FHIR Team Checklist

[ ] Update the title of the PR to be succinct and less than 50 characters
[ ] Add a milestone to the PR for the sprint that it is merged (i.e. add S47)
[ ] Tag the PR with the type of update: Bug, Dependencies, Enhancement, or New-Feature
[ ] Tag the PR with Azure API for FHIR if this will release to the Azure API for FHIR managed service (CosmosDB or common code related to service)
[ ] Tag the PR with Azure Healthcare APIs if this will release to the Azure Healthcare APIs managed service (Sql server or common code related to service)
[ ] CI is green before merge
Review squash-merge requirements

Semver Change (docs)
Patch|Skip|Feature|Breaking (reason)

/azp run

@Ivanidzo4ka are there any docs or E2E test that we need to add for this PR? Besides those two items, this is about ready.

@mikaelweave docs can mean two things in my mind. One is for developers who work with this repository. Second is for our azure customers who use this server as a product, if you mean second one I would suggest you to talk to @CaitlinV39 since I don't have much expertise, and it probably would involve commit to different repository. If you thinking about first, I think doc/rest is bare minimum, and you can add more content into doc folder regarding how patch works in general, but something tells me you pursue second type of docs...
For E2E tests feel free to add more tests to this file:
https://github.com/microsoft/fhir-server/blob/main/test/Microsoft.Health.Fhir.Shared.Tests.E2E/Rest/PatchTests.cs
Note that it uses client class https://github.com/microsoft/fhir-server/blob/6dfd829796954236bec67c8c71e98bbdba5bf6c3/src/Microsoft.Health.Fhir.Shared.Client/FhirClient.cs#L237 which currently hardcodes type of the content, so you will need to touch it as well (maybe by having two methods JsonPatch* and ParametersPatch* instead of Patch*)

@mikaelweave docs can mean two things in my mind. One is for developers who work with this repository. Second is for our azure customers who use this server as a product, if you mean second one I would suggest you to talk to @CaitlinV39 since I don't have much expertise, and it probably would involve commit to different repository. If you thinking about first, I think doc/rest is bare minimum, and you can add more content into doc folder regarding how patch works in general, but something tells me you pursue second type of docs...
For E2E tests feel free to add more tests to this file: https://github.com/microsoft/fhir-server/blob/main/test/Microsoft.Health.Fhir.Shared.Tests.E2E/Rest/PatchTests.cs Note that it uses client class
https://github.com/microsoft/fhir-server/blob/6dfd829796954236bec67c8c71e98bbdba5bf6c3/src/Microsoft.Health.Fhir.Shared.Client/FhirClient.cs#L237
which currently hardcodes type of the content, so you will need to touch it as well (maybe by having two methods JsonPatch* and ParametersPatch* instead of Patch*)

@mikaelweave - We would love if you could add a doc/rest that gives users examples of how to use the FHIRPath Patch. Once this is merged, I'll work to get Azure Docs updated with the details and ask for your review/input on things I don't know :) Typically the rest file helps me do this without having to hassle you as much!

@mikaelweave docs can mean two things in my mind. One is for developers who work with this repository. Second is for our azure customers who use this server as a product, if you mean second one I would suggest you to talk to @CaitlinV39 since I don't have much expertise, and it probably would involve commit to different repository. If you thinking about first, I think doc/rest is bare minimum, and you can add more content into doc folder regarding how patch works in general, but something tells me you pursue second type of docs...
For E2E tests feel free to add more tests to this file: https://github.com/microsoft/fhir-server/blob/main/test/Microsoft.Health.Fhir.Shared.Tests.E2E/Rest/PatchTests.cs Note that it uses client class
https://github.com/microsoft/fhir-server/blob/6dfd829796954236bec67c8c71e98bbdba5bf6c3/src/Microsoft.Health.Fhir.Shared.Client/FhirClient.cs#L237
which currently hardcodes type of the content, so you will need to touch it as well (maybe by having two methods JsonPatch* and ParametersPatch* instead of Patch*)

@mikaelweave - We would love if you could add a doc/rest that gives users examples of how to use the FHIRPath Patch. Once this is merged, I'll work to get Azure Docs updated with the details and ask for your review/input on things I don't know :) Typically the rest file helps me do this without having to hassle you as much!

Thanks for the info! We have a .http file in the docs folder! While re-testing everything, I did see that FHIRPatch in bundles errors because the correct patch type cannot be resolved. I'm going to move this back to draft until this and E2E testing gets resolved. I think E2E testing is needed since the patch type selector code is non-trivial.
I'm not working for the next 2 weeks, but can look once I'm back. @mattpasco-microsoft, if you have time could you look?

@Ivanidzo4ka E2E tests added, code is done. Ready for final review/testing.
CC @mattpasco-microsoft

/azp run

/azp run

@LTA-Thinking I can look today! Thanks for running the pipeline. 👍🏽

Failure are caused by making Handler (ConditionalPatch and just Patch) generic, and code which we use in tests, doesn't know how to create object for generic types (which makes sense.).
Sorry for diverting you on this path, and not thinking through all of it.
I'm ok with reverting code back to previous state without generics. As another option, instead of having TData as parameter we can introduce abstract class PatchPayload and combine it with BasePatchService by having JsonPatchPayload which knows how to patch  application/json and ParametersPatchPayload which knows how to patch application/parameters.

@Ivanidzo4ka no problem, good learning experience. I wasn't in love with this approach (especially changes to MediationModule.cs). I'll look at the abstract approach to reduce duplicated code. If it gets too complex, I'll just duplicate the code for easier understandability in the future.

/azp run

@Ivanidzo4ka sorry for the delay, dealt with computer issues this week. Question about your approach - would JsonPatchPayload and ParametersPatchPayload be sent by the PatchResourceRequest function? Or would they be compiled in the handler?
After looking at this, I could easily make PatchResourceRequest and PatchResourceHandler abstract and then send different requests to different handlers with minimal code duplication. This would continue the MediatR pattern.

How I saw it in my head:
You have controller and controller creates handler request with either PatchResourcePayload or ParameterResourcePayload.
We have one handler which handles request by fetching document from DB, and asking Payload class to patch it, get result back and validate it.

I see what you are saying now, @Ivanidzo4ka. I changed the code but have one more question before final testing. I placed the PatchPayload files in Microsoft.Health.Fhir.Shared.Core. I cannot reference them from Microsoft.Health.Fhir.Core because adding a reference to Shared from that project creates a dependency loop. Have you seen this issue before in the fhir-server codebase?
Some possible solutions that come to mind:

Define an interface in another assembly that is implemented in Microsoft.Health.Fhir.Shared.Core
Define the classes in the Microsoft.Health.Fhir.Core and use extensions for the PatchPayload logic that should be in the Shared project
Assemble the payload in Shared and use separate Requests to know which to build

/azp run

Thanks for the help @LTA-Thinking, this is the largest project I've worked on and want to make sure I stick with the established patterns.

Let's talk first about difference between Shared.Core and Core and why we even have two projects.
Idea of having Core project should be transparent, I hope, bunch of basic classes we can use in different parts of solution. Very basic things applicable for anything in project.
Why we have Shared.Core? Well, we work with FHIR spec, and sometimes we need to work with specific entities defined in FHIR spec. As usual, let's pick Patient entity. There is 3 different variations of FHIR spec we work with: STU3, R4, R5. In all three of them Patient entity exist. But in some of them it has certain properties, and in some it doesn't. Spec evolves and changes over time, and STU3, R4,R5 is just snapshots of the spec in certain time.
So I want to have class which has reference on Patient class, how I do it? We do it by having 3 different projects (STU3, R4, and R5) and having identical classes with reference to Patient class in them. Copying code around 3 different projects, is cumbersome and error prone task.
To make our life easier, we have Shared.Core project which has code for all 3 projects, and each project just reuses code but for each project meaning of Patient class is different. Basically Shared.Core is collection of templates or generics which we resolve during compilation into specific classes.
Wherefore Shared.Core is imbued with domain knowledge, while classes in Core are basic things which have no knowledge of FHIR spec.
You put *Payload classes in Shared.Core because they have references on FHIR Spec classes I assume (Parameters). And you define Handler request in core, because it's basic class, untouched by FHIR spec specifics. But you also have problem of putting *Payload` into request. This is typical inversion of dependency problem.
I personally would go with abstract class PatchPayload in Core project which would have  ResourceElement Patch(ResourceWrapper resourceToPatch, WeakETag weakETag) method.
You can have concreate implementations of this class (Parameters, Json) in Shared.Core project.
FhirController I think would be the place where you have to create concreate implementations, and FhirController already knows about specific FHIR spec, so shouldn't be a problem. (FhirController lives in another Shared -> Shared.Web project)
I personally would choose abstract class over interface, because I don't expect someone else have functionality of payload. But if you find it's easier for you to implement that way, go for it.

Thanks for the detailed explanation @Ivanidzo4ka. This clears up a LOT on the repository. The code reuse between STU3, R4, and R5 was obvious. Beyond that, I didn't understand the difference between Core and Shared.  I saw the separation but didn't understand the why behind the separation. I distinctly remember being unsure about where to put the Patch library initially and think I got lucky.
I'm also not super strong in design patterns, so keep that in mind while forming your persona of how a developer in my position understands the repo. I know what they are, but until you get to use them a lot you tend to miss things. 😄
One piece of feedback (I can create an issue after the PR) is I looked for Developer docs and couldn't find any in the root of the repo or the docs folder. The sequence diagrams were helpful, but some architectural guidance in a DEVELOPERS.md file would help outside contributors.
❓  Final question, I put PatchPayload in Core.Features.Operations.Resources to match the other projects and keep everything in the same namespace. Any issues here? Not sure if it's super important but it made sense to me. This required the updating of some string definitions from starting with Resources to Core.Resources.
Seriously, THANK YOU for the long comment explaining your reasoning. I have become a better developer thanks to the time you've put into that comment and this PR.

/azp run

@CaitlinV39 Adding developer focused documentation would be helpful for our open source contributors, and may encourage more contributions like this.

/azp run

/azp run

@LTA-Thinking Thanks for the careful eye, I definitely left off some items in my final check. I'll go through the whole PR again just to be sure.
Happy to work with you all on this to produce high quality code I can be proud of. I hope to commit more in the future if I see other opportunities to enable use cases. 👍🏽

/azp run

/azp run

/azp run

Thanks @mikaelweave and @mattpasco-microsoft!


text:
Waste reduction logic app

📝 Scenario
As a FinOps practitioner, I need to get notified when there are cost optimization opportunities in order to keep my workloads running efficiently
🚀 Goal
Create a logic app to notify stakeholders when there are cost optimization opportunities.
📋 Tasks

### Tasks
- [ ] TODO: Add tasks required for each sub-release
- [x] Convert ARM Template into BICEP
- [x] Simplify Deployment Steps
- [x] Resolve email notification URL bug
- [x] Create docs/_automation/waste-reduction-logic-app/README.md
- [x] Test standard Logic App Connection
- [x] Add Azure QuickStart Template repo metadata
- [ ] Submit QuickStart PR
- [ ] Discuss the name
- [ ] Update the changelog
- [ ] Automated Test?
- [ ] Insert MI into template
- [ ] Add standard FTK tags

🙋♀ Ask for the community

We'd love to get your feedback! Please leave any questions, comments, or change requests in the release discussions at the bottom of each task list above. We'll try to close each of those out before we finalize the release.

I had conversations with some big customers regarding this workflow and installed it at one during an implementation engagement. Can we discuss this and perhaps work together to provide options related to this workflow as they gave me a few ideas related to this?

@jamelachahbar yes please let set some time to discuss

#810  and #844

authors: arthurclares flanakin jamelachahbar ro100e

repo: microsoft/finops-toolkit


text:
MenuButton should await async calls

There are places in the cs where async methods are being executed but not awaited.
I recommend always awaiting async tasks in Blazor so that unhandled exceptions are not swallowed.

This is fixed for v3. You have an example of where it is happening in the v2 version?

MenuButton for show/hide

authors: mrpmorris vnbaaij

repo: microsoft/fluentui-blazor


text:
Icons - Unknown Namespace

🐛 Bug Report

Upgraded to FluentUI 3 from vs 2 as per the Upgrade Guide (https://www.fluentui-blazor.net/UpgradeGuide)
The new Icons type/name space is not recognised.
💻 Repro or Code Sample
<FluentIcon Icon="@(Icons.Regular.Size24.Save)"/>

🤔 Expected Behavior
Project Builds, FluentIcon displays on run

😯 Current Behavior
Build fails with:
CS0246	The type or namespace name 'Icons' could not be found (are you missing a using directive or an assembly reference?)

💁 Possible Solution
Missing Package? If so, add it to the upgrade guide.

🔦 Context
Unable to build projects with latest FluentUI until this is resolved.

🌍 Your Environment

WIndows 11
.Net 7
Visual Studio 2022, all updates

FluentUI 3.0

Resolved: Need to Include the nuget package "Microsoft.Fast.Components.FluentUI.Icons"
Would be helpful if the upgrade guide included that.


text:
Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have checked #657 to validate if my issue is covered by community support

Describe the issue
I configured my yaml file with max_tokens: 16000, but the result is still relatively short(only hundreds of tokens) and lacks enough details(which is extremely rich in the txt file I gave to it. It can point out where those details are, but they were simply not in the response.
Steps to reproduce
No response
GraphRAG Config Used
encoding_model: cl100k_base
skip_workflows: []
llm:
  api_key: key
  type: openai_chat # or azure_openai_chat
  model: Qwen/Qwen2-7B-Instruct
  model_supports_json: false # recommended if this is available for your model.
  max_tokens: 16000
  # request_timeout: 180.0
  api_base: http://localhost:8000/v1

Logs and screenshots
No response
Additional Information

GraphRAG Version:
Operating System:
Python Version:
Related Issues:

This may be related to the particulars of how the chosen model works, I'm going to close it with a link to #657

repo: microsoft/graphrag


text:
Debug QR Segment Types

Just adding a quick error log to include the encountered QR segments

I'll also add a unit test for this case before merging.

repo: microsoft/health-cards-validation-SDK


text:
GPS lab

The cart lists a GPS sensor. A good lab for this would be to show the location of a device on a map using Azure Maps and IoT Hub.
This will use an ESP32 to connect to the GPS sensor, coded in C++, and a Python/Flask web app to show the location on a map.
Hardware required

NEO-6M GPS module
ESP32

Lab

Setting up for ESP32 development with PlatformIO
Connecting the ESP32 to the GPS module
Connecting the ESP32 to IoT Hub to send GPS data
Plotting the GPS data on Azure Maps using a Python/Flask web page

Implemented by #28 and #34

repo: microsoft/iot-curriculum


text:
board orientation spec

update hardware design to specify board orientation.

https://github.com/microsoft/jacdac-docs/blob/main/src/pages/ddk/design.mdx

repo: microsoft/jacdac


text:
Support onTypeRename

For language like HTML it would be cool to be able to rename a closing tag automatically if a user changes the name of an opening tag. To make this happen we propose a new message onTypeRename which is comparable to on type format.

@dbaeumer is is to support HTML mirror cursor but with standard LSP requests?
If it that, it means that LSP client should support mirror cursor, LSP should provide a client capability for onTypeRename .
I love this idea and I would like to use it for our XML Language Server..

Yes, that is the idea also we will not talk about multiple cursor. The idea is to have ranges that must be kept in sync. The client can then decide on how to visualize this.

@dbaeumer Would love to adopt it 😉

authors: angelozerr dbaeumer octref

repo: microsoft/language-server-protocol


text:
DXF captions styling

What does it do?

Currently you specify the fontSize at the top DXF export lever.  This allows you to override the fontSize for a caption
Fixes #422

Example
var exportOptions = {
  fontSize: 4,  // default for drawing
  layerOptions: {
    big_square: {
      fontSize: 8,  // override
    }
  }
}
var model = {};

makerjs
            .$(new makerjs.models.Square(100))
            .layer('big_square')
            .addCaption('big fold here', [0, 0], [100, 100])
            .addTo(model, 'big_square');
makerjs
            .$(new makerjs.models.Square(50))
            .layer('little_square')
            .addCaption('little fold here', [0, 0], [50, 50])
            .addTo(model, 'little_square');

Result

The big_square caption will be 8 and the little_square caption will be 4

@danmarshall - this PR is no longer stacked and is ready for review.  (P.S. sorry for all the open/close.  the travis CI server was having some sort of network issues and that was how I was getting the build to re-run)

This is great, thanks!

@danmarshall - 👍 Thanks for your great project!  When you are comfortable I would love to get a 0.16.0 released, so we can use this new stuff.

0.16.0 released !


text:
mouse hover effect

cursor icon so that the user discovers it can be dragged

Done

authors: eanders-ms pelikhan

repo: microsoft/microbit-robot


text:
Setting TextDecoration = None on TextBlock does not remove the strike through after applying it

Describe the bug
I am trying to strike through a TextBlock when the user taps it. This works great, but it's not possible to clear the strike through decoration once it's been applied.
Steps to reproduce the bug

Add a TextBlock to a page
Add a Tapped event
Add the following code:

        private void TextBlock_Tapped(object sender, TappedRoutedEventArgs e)
        {
            var tb = (TextBlock)sender;
            if(tb.TextDecorations == Windows.UI.Text.TextDecorations.None)
            {
                tb.TextDecorations = Windows.UI.Text.TextDecorations.Strikethrough;
                tb.Foreground = new SolidColorBrush(Colors.Gray);
            }
            else
            {
                tb.TextDecorations = Windows.UI.Text.TextDecorations.None;
                tb.Foreground = new SolidColorBrush(Colors.Black);
            }
        }

Expected behavior
Tapping the TextBlock applies a strike through and changes the colour to gray. That works. Tapping it again should change the colour to black and remove the strike through. The colour changes but the strike through isn't removed.
Version Info
1903
NuGet package version:
N/A
Question
Is there a work around to this, because it's core for the UI I'm working on.

@knightmeister Yes, this totally looks like a bug in the TextBlock control. As a guess, I'd say it's not looking to do anything when the decoration is set to None, when it should also look to remove anything that's already there.
Fortunately, there's a simple workaround:
    private void TextBlock_Tapped(object sender, TappedRoutedEventArgs e)
    {
        var tb = (TextBlock)sender;
        if (tb.TextDecorations == TextDecorations.None)
        {
            tb.TextDecorations = Windows.UI.Text.TextDecorations.Strikethrough;
            tb.Foreground = new SolidColorBrush(Colors.Gray);
        }
        else
        {
+           var text = tb.Text;
+           tb.Text = string.Empty;
            tb.TextDecorations = TextDecorations.None;
+           tb.Text = text;
            tb.Foreground = new SolidColorBrush(Colors.Black);
        }
    }

Yes, this is an old bug.  The TextDecoration property incorrectly does not mark the element as needing rendering when its value changed.

Thanks for the work around @mrlacey, works well.

I think this is something that can only be fixed with WinUI 3.

Is there any ETA on a fix?
The workaround is nice, but not if the Text or Content and the TextDecoration are data-bound.
Something like this;
<TextBlock Text="{x:Bind sys:String.Format(x:Null, '{0} ({1}/{2})', Title, SuccessCount, FailureCount)}" TextDecorations="{x:Bind IsEnabled, Converter={StaticResource StrikethroughConverter}}" />
A more permanent fix would be great!

It has not been fixed in WinUI3. Please fix it - should be a very easy fix and the bug is very nasty

Fixed in 1.4.0. @bpulliam please close this issue as I cannot :)

authors: c-npolyak chingucoding codendone duncanmacmichael knightmeister mrlacey tinodo

repo: microsoft/microsoft-ui-xaml