Tailwindcss workflow with nuxt.js

Hi Guys I've been trying to make this work with nuxt.js smoothly but I am not successful.
Is it possible to implement this together with nuxt without using gulp only webpack?

Hi @jericopulvera
I just made an official example to use Tailwindcss with Nuxt.js, source code: https://github.com/nuxt/nuxt.js/tree/dev/examples/tailwindcss
Demo: https://tailwindcss.nuxtjs.org/
Enjoy :tada:

Hi @Atinux
Thanks for your example. It doesn't cover the composability use case for Tailwind, though.
For example, if I do the following:
<template lang="nunjucks">
  <section class="container">
    ...
  </section>
</template>

<script>
  ...
</script>

<style lang="postcss">
  .container {
    @apply .container .mx-auto;
  }
</style>

I get an error that .container can't be found. I've been looking at ways to get around this, but thus far haven't been able to figure out how to get the nuxt renderer to figure out where to apply the tailwind rules from.
Any thoughts?
Cheers.

@djeglin I'm not sure anyone's got the magic potion for using @apply in Vue templates.
See also: tailwindcss/tailwindcss#150 and tailwindcss/tailwindcss#1
Kind of a bummer. Right now I'm just avoiding the <style> portion of my Vue components altogether, and that's only an option because I'm just at the moment in my project where I can make that decision without having to rip out a lot of work.

To get @apply rules to work in your style block you have to include @tailwind utilities; at the top. Of course this will duplicate the Tailwind code for each component that uses it, but you can mitigate this using https://github.com/ChristianMurphy/postcss-combine-duplicated-selectors which will merge any duplicate selectors it finds.

Interesting. I wonder if it’s possible to somehow set that as a global include…? I might look into that.
Cheers.
On Thu, Nov 9, 2017 at 19:50, Collin Henderson<EMAIL_ADDRESS>wrote:
To get @apply rules to work in your style block you have to include @tailwind utilities; at the top. Of course this will duplicate the Tailwind code for each component that uses it, but you can mitigate this using https://github.com/ChristianMurphy/postcss-combine-duplicated-selectors [https://github.com/ChristianMurphy/postcss-combine-duplicated-selectors] which will merge any duplicate selectors it finds.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub [https://github.com/tailwindcss/discuss/issues/24#issuecomment-343271372] , or mute the thread [https://github.com/notifications/unsubscribe-auth/AANccNkImjO-_JINh8lhOT2GeC_i6jnEks5s01eZgaJpZM4QQtr7] .

Anybody has any idea how to do this properly? Using @apply in Nuxt's SFC without the bloat.

Use PurgeCSS.
Sent from my iPhone

On Nov 28, 2017, at 10:45 PM, pxwee5<EMAIL_ADDRESS>wrote:
Anybody has any idea how to do this properly? Using @apply in Nuxt's SFC without the bloat.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Purge CSS did manage to reduce most of the TW utilities in the main.css file. However, they are all included in the code splitted .js files.

You should use a Webpack plugin to extract your CSS into a file at build time. Nuxt might already do this with production builds, I'm not too sure.
Sent from my iPhone

On Nov 29, 2017, at 1:42 AM, pxwee5<EMAIL_ADDRESS>wrote:
Purge CSS did manage to reduce most of the TW utilities in the main.css file. However, they are all included in the code splitted .js files.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

From pi0

extractCSS: true
A resource like common.6d1aa5fdae9889963c5a.css is emitted but just for global css imports not components

In next release of Nuxt, you will be able to say to extract all chunks into the common.css file, see https://github.com/nuxt/nuxt.js/pull/2081

True you're correct. However, that means you lose the ability to load css on demand. When you have hundreds of components these styles add up.
The closest thing I found is using config() to grab data from the TW config file and use them.
Until there's a true support for TW in Nuxt.

Hey @Atinux, I was just playing with your Nuxt.js tailwind example
It seems to include both Tailwind's preflight reset and utilities into one css file like in Tailwind's Installation docs.
But then Nuxt adds any <style> blocks contained in Vue components after Tailwind's utilities classes in the html header.
Wouldn't it be better if Tailwind's utility classes were imported after these component styles? Thisway it wouldn't be necessary to move all component styles into the middle of ./assets/css/tailwind.css
Apologies if I'm completely off base here. Just a thought.

Hi @01ivr3
Actually there is not better solution at the moment but we are trying to find a way to make Tailwind works nicely with Vue and so with Nuxt.js

@atinux thanks for the reply! stoked to hear you guys are working on that ;)

For Nuxt2 project:

Create new project with npx create-nuxt-app
Enable Tailwind when asked during the installing process
Install purgeCSS, npm i -D @fullhuman/postcss-purgecss
Edit postcss.config.js as mentioned here by @francoislevesque

...
const purgecss = require('@fullhuman/postcss-purgecss')
...
  plugins: [
    require('tailwindcss')(tailwindJS),
    require('autoprefixer'),
    purgecss({
      content: [
        './pages/**/*.vue',
        './layouts/**/*.vue',
        './components/**/*.vue'
      ],
      whitelist: ['html', 'body'],
      whitelistPatterns: [/nuxt-/]
    })
  ]
}

@johnyluyte the link you provided in step 4 does not show postcss.config.js code

@johnyluyte A small suggestion: your suggestion does not handle the tailwind classes that use spacial characters like hover:bg-red and w-1/2 well. To fix this, we need to include an extractor:
const join = require('path').join
const tailwindJS = join(__dirname, 'tailwind.js')
const purgecss = require('@fullhuman/postcss-purgecss')

class TailwindExtractor {
  static extract(content) {
    return content.match(/[A-z0-9-:/]+/g) || []
  }
}

module.exports = {
  plugins: [
    require('tailwindcss')(tailwindJS),
    require('autoprefixer'),
    purgecss({
      content: [
        './pages/**/*.vue',
        './layouts/**/*.vue',
        './components/**/*.vue'
      ],
      extractors: [
        {
          extractor: TailwindExtractor,
          extensions: ['vue']
        }
      ],
      whitelist: ['html', 'body'],
      whitelistPatterns: [/nuxt-/]
    })
  ]
}

@MichMich You can now enable an option for shadowLookup, documented here: https://github.com/tailwindcss/tailwindcss/releases#allow-applying-classes-that-arent-defined-but-would-be-generated
This handles this use case without the need to import the main Tailwind css file in each component, and without the need to run purgeCSS. I believe this negates the need for this issue to be open any longer.
Cheers.

@djeglin Not sure if I understand correctly. But it seems that has a different purpose. Without the above config the CSS will not be purged.

@MichMich The conversation here was about allowing Tailwind classes to be @applyed in Vue single file components. The shadowLookup feature referenced above makes this possible without the actual generated CSS needing to be imported into the component at all, thus the lack of need for an extractor or the purgeCSS - The unneeded classes won't be there in the first place unless you specifically tell them to be by importing them (or by generating them as an asset and including them in your head config).
This allows for the following in a Vue component file:
<style scoped>
section {
  @apply flex flex-wrap justify-between;
}
section > div {
  @apply w-1/3 p-8 border-2 rounded-xl bg-white;
}
</style>

... but the only CSS that will actually be output will be the those selectors and the result of those @apply statements - The rest of the Tailwind CSS won't end up being included. No importing, no purging, no extracting, just simple.
Does that make sense, and match your use case?

@djeglin I was looking for the correct way to incorporate PurgeCSS and stumbled upon @johnyluyte's comment. This solved the issue for me with one minor issue as discussed in my reply. I posted my solution for anyone looking for the same info. It might be a tiny bit offtopic, but since I found my answer here I though it was good to add a small piece of information for others that are looking for the same info.

@MichMich Fair enough, that makes sense. FWIW, the shadowLookup method will result in significantly faster builds than using purgeCSS, but its good to mark the information down for others.


Allow 2 Variant_Classification shown on Oncoplot

Describe the issue
Hi,
I would like to show 2 variant classification as 2 triangles(split tile) for same gene if that gene happens to have 2 types of variant classifications in sample sample. Currently as long as a gene in the same sample has more than 2 it just mark it as Multi_Hit. Thanks for any suggestions.

Hi,
Thanks for the issue. Unfortunately, it is not possible to do so. Also, if there are more than two events (e.g, two mutations and a CN change i.e, complex event) - it becomes even harder.

hi, I just add MAF object method in ggalign. Now we can seamlessly combine MAF object and ggalign pacakge. ggalign can allow several mutations in one cell, and split them into separate squares.
ggalign is a pure ggplot2 extension that can do everything ComplexHeatmap can, and even more!
The oncoplot vignette is here: https://yunuuuu.github.io/ggalign/dev/articles/oncoplot.html

also fix https://github.com/PoisonAlien/maftools/issues/494

Hi @Yunuuuu
That's pretty cool!! Nicely done. I will mention this in the vignette so that many people can find it.

@.*** appreciated! I just wonder with ggalign to plot MAF obj, will CNV either within OR separate from main plot could be also compatible with maftools? To show more than 1 variant per sample per gene is quite useful as well as CNV data as well. Not sure fully compatible? Thanks for additional feature!Sent from my iPhoneOn Nov 16, 2024, at 11:50, Anand Mayakonda @.***> wrote:
Hi @Yunuuuu
That's pretty cool!! Nicely done. I will mention this in the vignette so that many people can find it.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Unfortunately, it is not.
The more variant types  - the plot becomes more complicated. Hence oncoplot shows them as Multi_Hit instead (two or more mutations).  There are some cases with >2 mutations and copy number changes - those will simply be annotated as complex_event.

Thanks for the info. And ggoncoplot() seems don’t have flexibility to sort genes manually or samples according to annotation or specific sample order? How to achieve this with ggoncoplot(). I know maftools can be done with provided arguments.
Sent from my iPhone
On Nov 16, 2024, at 12:08, Anand Mayakonda @.***> wrote:

Unfortunately, it is not.
The more variant types - the plot becomes more complicated. Hence oncoplot shows them as Multi_Hit instead (two or more mutations). There are some cases with >2 mutations and copy number changes - those will simply be annotated as complex_event.
—
Reply to this email directly, view it on GitHubhttps://github.com/PoisonAlien/maftools/issues/1062#issuecomment-2480668680, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BHAFOAPZRADLRRPGJJBJ6LD2A53XDAVCNFSM6AAAAABQZX3Z7WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBQGY3DQNRYGA.
You are receiving this because you authored the thread.Message ID: @.***>
The information transmitted in this electronic communication is intended only for the person or entity to whom it is addressed. It may also contain confidential and/or privileged material. Any use of the information transmitted by persons or entities other than the intended recipient is strictly prohibited. If this email was sent to you in error and includes sensitive Dana-Farber information (for example, patient information, Social Security Numbers, credit card information), please communicate this to Dana-Farber's Compliance Hotline at www.compliancereport.org http://www.compliancereport.org . If the information transmitted does not contain such sensitive information, please contact the sender and properly dispose of the email.
Please note that this e-mail is not secure (encrypted).  If you do not wish to continue communication over unencrypted e-mail, please notify the sender of this message immediately.  Continuing to send or respond to e-mail after receiving this message means you understand and accept this risk and wish to continue to communicate over unencrypted e-mail.

@wangzunq

I just wonder with ggalign to plot MAF obj, will CNV either within OR separate from main plot could be also compatible with maftools? To show more than 1 variant per sample per gene is quite useful as well as CNV data as well. Not sure fully compatible?

Now, ggalign only implement methods for MAF object, but it easy to create methods for all objects in the maftoolds package.

ggoncoplot() seems don’t have flexibility to sort genes manually or samples according to annotation or specific sample order?

Maybe you need align_order(), please see link: https://yunuuuu.github.io/ggalign/dev/articles/layout-customize.html#align_order. it allows the usa of ordering character or integer index.

Cool, I will take a look. And as for annotations for the samples, I will use ggalign_attr() with argument “sample_anno” that are within MAF obj? How to choose specific annotation columns of from all annotations available one by one so u can customize it’s color etc? (E.g. I just want gender, MRD_status, IGHV_status one by one, and those I can check their existence by getClinicalData() function from maftools). Thanks for suggestions.
Sent from my iPhone
On Nov 16, 2024, at 12:16, Yunuuuu @.***> wrote:

    External Email - Use Caution

@wangzunqhttps://secure-web.cisco.com/1WyssOpXUJFofoR54rpyZFvZc38tizF88ZegTdKxf6EdO8HkGc6kbOgGDbiVt4cQiqfE-XsChGfx69IvFG3wRMDMrMyOsEsiNEHOXuW4KZ-SJ3v2LTOkA-N0fJoWHx8pl5fLSlSWBni43FTowmsvFYJIXt_zcKTpu7RO6Y4jx-XwUB5sdFNv4xl5TIylB5vYJEC2jT_Pv8wBwXouuzWPYbzVoOTGzC-ARSBftveAS-29joyec9HI0vEdo5R2-THNfSgcpwa1CvCtTUm9A-hMaSaksQ0sqGFEQX5mznkbXMUwjD5DHgf5IcMNxj2-TC_qX7A34usV6z6vLFM4fi1rEGQ/https%3A%2F%2Fgithub.com%2Fwangzunq
I just wonder with ggalign to plot MAF obj, will CNV either within OR separate from main plot could be also compatible with maftools? To show more than 1 variant per sample per gene is quite useful as well as CNV data as well. Not sure fully compatible?
Now, ggalign only implement methods for MAF object, but it easy to create methods for all objects in the maftoolds package.
ggoncoplot() seems don’t have flexibility to sort genes manually or samples according to annotation or specific sample order?
Maybe you need align_order(), please see link: https://yunuuuu.github.io/ggalign/dev/articles/layout-customize.html#align_orderhttps://secure-web.cisco.com/1u43K5E0IaHmJ8VR1Y4rxOVndEzXxjucnMVc0QcEJvEbH_BVYuQGvZfxll1mdLC0Qi47uZoE2ThfFuANIccQla-RjlN_hCOBOvk9awh6FTuVhROiuWjVPmHxjzVOk1wD-ulMRHDrqdIiRGUxj6DtYdLNxdjqMcluBuWaZ29-WuJASuKMkydIuOJfccEmGmLLrvrT2nynDEESU4RcM1MsybUG6zFyih0UcwIx28FwPQsBcW1sBOkhqrq3iZ-scebJOjmyhkMD3hg5UCXT2ETR59DxVjA33KdvrRS8N_9a4QGFf-LPiAGCmylo5xAJsGhuaI5XTW8a-58sACreAQyiuXQ/https%3A%2F%2Fyunuuuu.github.io%2Fggalign%2Fdev%2Farticles%2Flayout-customize.html%23align_order. it allows the usa of ordering character or integer index.
—
Reply to this email directly, view it on GitHubhttps://secure-web.cisco.com/1ja8ybW8HSULRMWVrEiQhN_UQaX8iP22HESXhB86jBG40rNmfcS-oGBofN8pNJgxQQ7EX3zeyjqwfKrphPf7y6WyRrnFWQl8JhJZG49LbEEOqU-cwVKqMUbQZZXAFgi1uv-ciAhrjsWepWNHyt4RkKCOjcrEn0Xdwlx0cpeOFSTmx6-9PwtWRcZ1RqnR0a5Z3p1rKdMbIAMLX8YxQEbC1rI047MQ0Y-Dmu0Fm92hu0fBmFfPbDm4SUFvzfIdJlGWxWSNzah2th3VZ29pJz_-WBHI5DG3JszSN_Bd8AnnOBSeTPwuAxxqnvaTjHiVr4jKhLt6R2jR904iVNq4cXP7Bqw/https%3A%2F%2Fgithub.com%2FPoisonAlien%2Fmaftools%2Fissues%2F1062%23issuecomment-2480671831, or unsubscribehttps://secure-web.cisco.com/135Cq15CR4kkTFPoWygqD8TJ0iQ-M8cwtSatVqw6JVQ9a_9JEb8Pl8wOwtvJcpL86zC65MCRak1i-IuHOk7FlpQmkaRjeB0SfiUFdcBhA9yN0cGnhGyYPacffykmhCW2owzAyZqOwJy6Sa6O0_yuVjgqGVWYIMJTBrp8MaEQXj_qnzpWoCAMdAEqng8O7Y3ZBygBHUuD4xhTlt016MgHt4dJiGAYEt-_6QoHMcxZXvOre26GOgj4FKmtTDtPPzj_AG9wYrv3k96DIL-uJ5JVrvEFNOihOsxCyiu2twqedTE2gXHRMZy96IdPrt8gOXGbVhggPZB2ji0qzC0XvSx4aLQ/https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FBHAFOALHQ2C5WEGNX2XZ3I32A54WTAVCNFSM6AAAAABQZX3Z7WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBQGY3TCOBTGE.
You are receiving this because you were mentioned.Message ID: @.***>
The information transmitted in this electronic communication is intended only for the person or entity to whom it is addressed. It may also contain confidential and/or privileged material. Any use of the information transmitted by persons or entities other than the intended recipient is strictly prohibited. If this email was sent to you in error and includes sensitive Dana-Farber information (for example, patient information, Social Security Numbers, credit card information), please communicate this to Dana-Farber's Compliance Hotline at www.compliancereport.org http://www.compliancereport.org . If the information transmitted does not contain such sensitive information, please contact the sender and properly dispose of the email.
Please note that this e-mail is not secure (encrypted).  If you do not wish to continue communication over unencrypted e-mail, please notify the sender of this message immediately.  Continuing to send or respond to e-mail after receiving this message means you understand and accept this risk and wish to continue to communicate over unencrypted e-mail.

@PoisonAlien Thank you so much for the kind words! 😊 I'm glad you found it helpful.

The more variant types - the plot becomes more complicated. Hence oncoplot shows them as Multi_Hit instead (two or more mutations). There are some cases with >2 mutations and copy number changes - those will simply be annotated as complex_event.

Absolutely! When there are many samples, distinguishing the smaller tiles can be challenging. That’s why geom_subtile() always informs users of the maximum number of subdivisions, as noted in the vignette:

#> geom_subtile() subdivide tile into a maximal of 3 rectangles

For more flexibility, users can also opt for geom_draw(), which functions similarly to alter_fun in ComplexHeatmap. This way, they can choose the approach that best suits their needs.
In most cases, especially when visualizing the top genes (usually 20–30), geom_subtile() works effectively. It strikes a balance between simplicity and functionality. On the other hand, geom_draw() can be cumbersome to manage, particularly for overlapping alterations, as careful design is required to ensure the visual elements don’t interfere with each other.

Cool, I will take a look. And as for annotations for the samples, I will use ggalign_attr() with argument “sample_anno” that are within MAF obj? How to choose specific annotation columns of from all annotations available one by one so u can customize it’s color etc? (E.g. I just want gender, MRD_status, IGHV_status one by one, and those I can check their existence by getClinicalData() function from maftools). Thanks for suggestions.

@wangzunq, Yes, you can use ggalign_attr() with the argument "sample_anno" to access the sample annotations within your MAF object. To customize specific annotation columns like "gender", "MRD_status", and "IGHV_status", you can use standard ggplot2 syntax to plot the selected columns.
If you want to check the available columns first, you can use getClinicalData() from maftools to get the full set of clinical annotations. But you can always provide data directly to ggalign().
ggalign package is a pure ggplot2 extension, so you can use the same syntax of ggplot2 to add geoms and you can just keep the whole data frame. If you want to add multiple plot simutaneouly, you can add a list (we use lapply to create a series of plots):
lapply(c("gender", "MRD_status", "IGHV_status"), function(x) {
    list(
        ggalign(data = function(data) ggalign_attr(data, "sample_anno")),
        # maybe you want to a `geom_tile()`
        geom_tile(aes(.x, 1L, fill = .data[[x]]))
    )
})

Thank you! This package in conjunction with maftools is so powerful and also appreciate constant improvement on the package. Have a great weekend!
Sent from my iPhone
On Nov 16, 2024, at 12:42, Yunuuuu @.***> wrote:

    External Email - Use Caution

Cool, I will take a look. And as for annotations for the samples, I will use ggalign_attr() with argument “sample_anno” that are within MAF obj? How to choose specific annotation columns of from all annotations available one by one so u can customize it’s color etc? (E.g. I just want gender, MRD_status, IGHV_status one by one, and those I can check their existence by getClinicalData() function from maftools). Thanks for suggestions.
@wangzunqhttps://secure-web.cisco.com/1Pzd3lkaYvS0RBPRUXz-hGqeSFl-nRSwdX6hMGpRkSxRsu8lipW7JDqp9YbYGOc8kR1DF4w7nPN17qH9f_9OKniEPmnSpDA1ceoiHmwh5U5D9myOWJBrSMvI2TDEStr-bdSTWOcgK9-L3IMKaod7tNpQHt9egpXMNoNr5BAKQ0_T12Naftv-MKa44ZoJOaKrWaBoo-YNEdfS1uexBJqKOTznjkmbd6BabddzBMDOict07UpDnjAGYgtjHOwnIsVPUaNomvd8N5xdl2J_ObobGBpwzOb6y1klNTvAqCYDNQC_uBBj9hUJWWt9f649H4-FC_WgaIs8jm6vEMy7IwsbtHg/https%3A%2F%2Fgithub.com%2Fwangzunq, Yes, you can use ggalign_attr() with the argument "sample_anno" to access the sample annotations within your MAF object. To customize specific annotation columns like "gender", "MRD_status", and "IGHV_status", you can use standard ggplot2 syntax to plot the selected columns.
If you want to check the available columns first, you can use getClinicalData() from maftools to get the full set of clinical annotations. But you can always provide data directly to ggalign().
ggalign package is a pure ggplot2 extension, so you can use the same syntax of ggplot2 to add geoms and you can just keep the whole data frame. If you want to add multiple plot simutaneouly, you can add a list (we use lapply to create a series of plots):
lapply(c("gender", "MRD_status", "IGHV_status"), function(x) {
list(
ggalign(data = function(data) ggalign_attr(data, "sample_anno")),
# maybe you want to a geom_tile()
geom_tile(aes(.x, 1L, fill = .data[[x]]))
)
})
—
Reply to this email directly, view it on GitHubhttps://secure-web.cisco.com/1xA-8C8W0wmRS4U6bf8LkvUW8cbTShnLFGoEKoBHc601NsFz5oxXgZLzupaPZDsRQVSJ_58ZZvcq0hcDbwiR7z9VlCk20bW1OTEl_U-5uzOiuVWTzwY3rphoFpYS_KfUaZWxjsvoUJorMdc1UThpJnlLKISiKB36xydmGn0GZRUueb67qotfaHTdjwOLULnnN2gpi98HJ5YMR8bMcAKbRatx_wAqY4qyHchCl9bPdpl-Yk9pFSiOTX_Qyxre13EA2xL6EatrtM8AKVFNSX04wDe-nOFvKtNRJBLP7tBFlrPDcJ-0X3gd42DbLQUf_vU0PU7MubIqtSSMILBO4yJoytw/https%3A%2F%2Fgithub.com%2FPoisonAlien%2Fmaftools%2Fissues%2F1062%23issuecomment-2480681081, or unsubscribehttps://secure-web.cisco.com/1G3gIGZQxDyS785NfiLiG9-x_sgpSlm9E90eeYO9e1VjXPl1yIE3H-CViOgQDyd5R0FJDH3i01kLVTS2mR6F3EXS_ftGBjT0j5yUcvPVcJ5RcDJ-AKvTykszE3rHO-NHFkGDb0EcRCSM7FuPhInyFBEoLvWL57TKetpgcF-CLqFEDVkmm3TCiEOR1kmVUO29bMO4aVCky1uIOzHmZsFVJGHammBiK2_UB91heKEca9Luvql7Pjd6R6ROXgiDsNOXYqNg00XBhyvSxyvQpchj8Kp0tTA53cst3dF940tu066O5a62Rx0oIVymq5X_WIQa0qF7L-n1xk5pPmbBBJsK7SA/https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FBHAFOAO4QA44UXPS42JZG5L2A57XZAVCNFSM6AAAAABQZX3Z7WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBQGY4DCMBYGE.
You are receiving this because you were mentioned.Message ID: @.***>
The information transmitted in this electronic communication is intended only for the person or entity to whom it is addressed. It may also contain confidential and/or privileged material. Any use of the information transmitted by persons or entities other than the intended recipient is strictly prohibited. If this email was sent to you in error and includes sensitive Dana-Farber information (for example, patient information, Social Security Numbers, credit card information), please communicate this to Dana-Farber's Compliance Hotline at www.compliancereport.org http://www.compliancereport.org . If the information transmitted does not contain such sensitive information, please contact the sender and properly dispose of the email.
Please note that this e-mail is not secure (encrypted).  If you do not wish to continue communication over unencrypted e-mail, please notify the sender of this message immediately.  Continuing to send or respond to e-mail after receiving this message means you understand and accept this risk and wish to continue to communicate over unencrypted e-mail.

In the example, why you subset explicitly as.matrix(data[2:(ncol(data) - 1L)]) for TMB and as.matrix(data[2:7]) for Ti/Tv? How should I inspect those columns for what I want to subset ?
Sent from my iPhone
On Nov 16, 2024, at 12:42, Yunuuuu @.***> wrote:

Cool, I will take a look. And as for annotations for the samples, I will use ggalign_attr() with argument “sample_anno” that are within MAF obj? How to choose specific annotation columns of from all annotations available one by one so u can customize it’s color etc? (E.g. I just want gender, MRD_status, IGHV_status one by one, and those I can check their existence by getClinicalData() function from maftools). Thanks for suggestions.
@wangzunqhttps://github.com/wangzunq, Yes, you can use ggalign_attr() with the argument "sample_anno" to access the sample annotations within your MAF object. To customize specific annotation columns like "gender", "MRD_status", and "IGHV_status", you can use standard ggplot2 syntax to plot the selected columns.
If you want to check the available columns first, you can use getClinicalData() from maftools to get the full set of clinical annotations. But you can always provide data directly to ggalign().
ggalign package is a pure ggplot2 extension, so you can use the same syntax of ggplot2 to add geoms and you can just keep the whole data frame. If you want to add multiple plot simutaneouly, you can add a list (we use lapply to create a series of plots):
lapply(c("gender", "MRD_status", "IGHV_status"), function(x) {
list(
ggalign(data = function(data) ggalign_attr(data, "sample_anno")),
# maybe you want to a geom_tile()
geom_tile(aes(.x, 1L, fill = .data[[x]]))
)
})
—
Reply to this email directly, view it on GitHubhttps://github.com/PoisonAlien/maftools/issues/1062#issuecomment-2480681081, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BHAFOAO4QA44UXPS42JZG5L2A57XZAVCNFSM6AAAAABQZX3Z7WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBQGY4DCMBYGE.
You are receiving this because you were mentioned.Message ID: @.***>
The information transmitted in this electronic communication is intended only for the person or entity to whom it is addressed. It may also contain confidential and/or privileged material. Any use of the information transmitted by persons or entities other than the intended recipient is strictly prohibited. If this email was sent to you in error and includes sensitive Dana-Farber information (for example, patient information, Social Security Numbers, credit card information), please communicate this to Dana-Farber's Compliance Hotline at www.compliancereport.org http://www.compliancereport.org . If the information transmitted does not contain such sensitive information, please contact the sender and properly dispose of the email.
Please note that this e-mail is not secure (encrypted).  If you do not wish to continue communication over unencrypted e-mail, please notify the sender of this message immediately.  Continuing to send or respond to e-mail after receiving this message means you understand and accept this risk and wish to continue to communicate over unencrypted e-mail.

Thanks for the point, I have updated the documents:

gene_summary: gene summary informations. See
maftools::getGeneSummary() for details.
sample_summary: sample summary informations. See
maftools::getSampleSummary() for details.
sample_anno: sample clinical informations. See
maftools::getClinicalData() for details.
n_genes: Total of genes.
n_samples: Total of samples.
titv: A list of data.frames with Transitions and Transversions
summary. See maftools::titv() for details.

GISTIC object is supported now: please see https://yunuuuu.github.io/ggalign/dev/articles/oncoplot.html#integration-with-gistic-results-from-maftools

@wangzunq Thank you so much for the kind words and support! I'm glad you find the new features helpful. I’m constantly working to improve the package, so your feedback means a lot. If you have any suggestions or ideas for further enhancements, feel free to share!

Hello Yunuuuu,
I have posted 2 questions regarding plots. I am wondering they are achievable.
For samples group by cohort and sort for each by mutation frequency, it could be manually done first and supply the sorted samples to param, just wonder if it can be automatically done in the backend?
For Gistic, I am not sure how to proceed with results from different cohort. Please advise. Happy Thanksgiving week.
Best,
Zunqiu
Sent from my iPhone
On Nov 18, 2024, at 00:52, Yunuuuu @.***> wrote:

@wangzunqhttps://github.com/wangzunq Thank you so much for the kind words and support! I'm glad you find the new features helpful. I’m constantly working to improve the package, so your feedback means a lot. If you have any suggestions or ideas for further enhancements, feel free to share!
—
Reply to this email directly, view it on GitHubhttps://github.com/PoisonAlien/maftools/issues/1062#issuecomment-2482013194, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BHAFOAKLFZQF5BBCMRI4MWT2BF6ARAVCNFSM6AAAAABQZX3Z7WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBSGAYTGMJZGQ.
You are receiving this because you were mentioned.Message ID: @.***>
The information transmitted in this electronic communication is intended only for the person or entity to whom it is addressed. It may also contain confidential and/or privileged material. Any use of the information transmitted by persons or entities other than the intended recipient is strictly prohibited. If this email was sent to you in error and includes sensitive Dana-Farber information (for example, patient information, Social Security Numbers, credit card information), please communicate this to Dana-Farber's Compliance Hotline at www.compliancereport.org http://www.compliancereport.org . If the information transmitted does not contain such sensitive information, please contact the sender and properly dispose of the email.
Please note that this e-mail is not secure (encrypted).  If you do not wish to continue communication over unencrypted e-mail, please notify the sender of this message immediately.  Continuing to send or respond to e-mail after receiving this message means you understand and accept this risk and wish to continue to communicate over unencrypted e-mail.


[Core] size should be able to work in the opposite direction of the placement

For the Select I built I had to use a custom size which also exposed data for .scrollTop to change.
Here's a new one that works when scrolling too:
      {
        name: 'size',
        async fn(middlewareArguments) {
          const {
            y: prevY,
            elements: {floating},
          } = middlewareArguments;

          // Undo the previous mutation to work from the initial size.
          if (floating.style.maxHeight) {
            floating.style.maxHeight = '';
            return {
              reset: {
                rects: true,
              },
            };
          }

          const overflow = await detectOverflow(middlewareArguments, {
            padding: 8,
          });

          const diffY = Math.max(0, overflow.top);

          Object.assign(floating.style, {
            maxHeight: `${
              floating.scrollHeight - Math.max(0, overflow.bottom) - diffY
            }px`,
          });

          floating.scrollTop = diffY;

          return {
            y: prevY + diffY,
            data: {
              scrollTop: diffY,
            },
          };
        },
      },

As far as I can tell it's difficult to shoehorn this into the current size implementation and is probably better off as a new type of middleware which seems to only have this singular use case.
I'm thinking we can add support for a middleware called innerAlign() to support this type of thing without altering size().  So it's not blocking v1.


Bookworm/Pi5 Compatibility: Upgrade to latest boilerplate, port to gpiod

TODO

[ ] - Can we make Python-based soft PWM work for pumps and piezos, or do we need to do something else?
[ ] - Update tests

PWM
Since Grow assumes we can PWM any pin- because RPi.GPIO had a software kludge to let us do so - we're in a bit of a predicament porting this to Bookworm / gpiod. I've experimented with pure Python PWM and it works, but it's thoroughly irredeemably terrible. When dealing with pumps that involve water- I don't want to invite the risk of a software failure causing a flood.
There's a patch floating about for software PWM at the kernel level, so we should be switching to standard PWM interfaces (see<EMAIL_ADDRESS>with the hope that the Pi 5 will eventually get PIO PWM support on arbitrary pins.
Until the PWM issue is resolve, then Pi 5 support for Grow is blocked.
Testing
If you're a Bookworm / Pi 5 user running into virtual environment issues, you can try this library like so:
git clone https://github.com/pimoroni/grow-python -b gpiod
cd grow-python
./install.sh --unstable

The ./install.sh script will create a pimoroni virtual environment that's shared between our products. (or use your existing venv if you've already activated one.)
For the reasons behind these changes and other information, see:

https://github.com/pimoroni/boilerplate-python/pull/13
https://github.com/pimoroni/boilerplate-python/issues/16
https://pimoroni.github.io/venv-python/

How is this going.
Wondering if I should try this, or just use the RPI.GPIO 'shim'.

As far as I'm aware the RPi.GPIO shim has the same limitations that are currently preventing any progress here- lack of pulse counting and PWM. Feel free to test but, uh, run your pumps dry!
The biggest blocker right now is arbitrary PWM support on pins- I need to wait for the people writing/testing/approving the kernel module. I have a janky software solution that I could roll out, but I'm apprehensive to half bake anything involving water.


Mock is_uploaded_file function for Symfony\Component\HttpFoundation\File namespace

Q
A

Bug fix?
Yes

New feature?
Yes

Description
When you try to validate uploaded file by Laravel you will always get validation error becouse Symfony use is_uploaded_file function to validate file.
Now we can mock this function just for Symfony\Component\HttpFoundation\File. It will always return true
Fixes #10
Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I wrote unit tests for my code
[x] I have made changes in CHANGELOG.md file

Looks great! Thx!

Merged into temporary branch for some changes


ppci-cc: test expressions should not be implicitly casted to int

Test expressions also called "conditions" are casted to "int" in the C front-end.
This leads to wrong IR code when testing types larger than ints.
On an architecture where ints are 32bit, and pointers and longs are 64bit, pointers and longs are tested only on their 32bit lower part.
The problem includes expressions in if, while, do/while, and operand expressions of ! && ||.
Examples:
FILE *f;
if (f) ...
if (f && f->fd...)
On both tests, f is first casted to "int" and then tested against 0.
A work-around is to explicitly test against NULL/0:
Examples:
FILE *f;
if (f != NULL) ...
if (f != NULL && f->fd)
In semantics.py, removing the int-coercion in all these cases solves most of the problem.

This issue is addressed in 1d115ce24d396d1baf4a9c1b7e41ade700242a38 @tstreiff could you verify this is what you expect?

I have just tested it with mixed results:

it is OK for longs, they are no longer casted to int, and a full 64bit comparison is made
it is KO for pointer, they are still casted to i32 before the comparison, which is wrong

I quickly checked your changes, this comes from "check_condtion()":

if not condition.typ.is_integer:
condition = self.coerce(condition, self.get_type(["int"]))

You should coerce to int only chars and shorts (that's integer promotion and it may be done elsewhere), other types should be kept.
Later on, in gen_condition(), if the condition is not a boolean operator (==, <, !...), you force a comparison to 0 and this will do the job.
A caution in gen_condition for the ! operator: it indeed inverts the yes and no_blocks, but...
Expr and !exp can be of different types (eg; if expr is ptr, !ptr is an int), so if we remove the !, we have to return to the type of expr and not keeping int.


undefined is returned from getCurrencyRate

this has been working like a charm for more than a year, all of sudden it stopped working today, the same method return 'undefined' now, looks to me it's like the api token used by the module has expired, it may need to be refreshed.

Hey, thanks for reporting. Will take a look at this today!

Hey, I am afraid the api is no longer a free service...
I encourage you to clone the repository and use it as your own service instead of npm package.
Make sure you get the api key and include it within the url as described in the documentation.
All the info can be found here: https://exchangeratesapi.io/


Checkboxes fix styling

'Company Form', If a client is to sign up and choose a specific target region, for example, "east". It would be great to check the "east" checkbox whilst simultaneously
unchecking the "all" box.
The layout of the checkboxes is to be looked at. There are 13 check boxes for each dropdown feature under the 'company form' section. What we would like is for you guys to separate the 'All' checkbox slightly to the left, with a faded grey line separating that from the remaining 12 checkboxes. I've attached a drawn version, as I think it'll make more sense then.

Give column a class border -right 2 pxl  grey Height 100%  custom.css  media query for below 450


Adds the acronym exercise

Ports the acronym exercise into elixir.

[x] x-common already contains the metadata
[x] Updated config.json
[x] Specs :palm_tree:

@Teapane this is awesome. Could we get some typespecs in the example and template?
Thanks.

Hey @parkerl I added typespecs to those two files; let me know if those look ok. Thanks! :tada:

:tada: :tada: :tada:


Create Cmake installer

Current installation is a combination of install scripts.
Consolidate into a single Cmake installation environment that can be used on all targets:

[ ] determine all dependencies
[ ] Create standard file structure
[ ] Find module for each standard dependencies
[ ] check installation on all targets

Estimation:
Cmake experience: 60Hours
No experience: : 120 Hours

Does this mean the CMake will be building the whole Python stack from source as well?

Nope, the Python stack is a dependency that should not be install manually as part of TVB-NEST.
It should be findable via find-python3 or you ad a -DPython-path argument


Do not working in no_internet envierment

Do not working in no_internet envierment, where is fonts.gstatic.com import in code

You can try to download and locally store the css that are referenced in the projects while connected.
Of course you have to change the references to local paths once done.

@wangwenta I believe the @asomarribasd suggestion is the best option now.


Issuing credits

Issue 5000 credits to @armarmgc.

 Follow up
On Wednesday, 27-Mar-24 13:19:22 UTC by Gov4Git dev
Issued 5000 credits to member @armarmgc.


[Feature request] - Spam screen - prevent spammers from knowing they're caught.

Apologies if this already has been discussed somewhere else. :)
Instead of removing the spam content (manually/automatically) and thus signaling to spammers that they can create a new account and keep spamming, perhaps the following approach could be good:

Implement a tiered propagation of a new post - i.e. when a new post is published only few of the currently logged in users can see it (including the poster). Then, if nobody downvoted/flagged this post for an hour, the post will be accessible to a greater online audience (picked randomly). Then after another hour (if not many people downvoted/flagged the post) the post may be published to everyone.

"Your content is for you only" - if a user gets certain number of their posts/comments "flagged" they should not be removed or blocked, but instead their content (posts, comments) should be visible only to them and to people from the same region (city etc.). This is not a silver bullet, but can help to fool less savvy quick spammers.

Of course we should keep in mind some edge cases, when it is required to deliver a new post/comment in real-time to everyone, or granting spam-screen-exemption to certain users based on karma, activity history etc.

BTW, perhaps such functionality could be implemented as a stand-alone package which can be configured via some hooks to accept some signals from an app and then command that app what to do about a malicious user and their content (mark a post as "spam", a user as "fenced" etc.) and also keep a log of such activity and provide a view/template to list the logs.
Any ideas or comments?

I'm not aware of spam being a huge problem for Telescope just yet. If it does become an issue I'll probably just implement simple shadow-banning (you can still see your posts, but nobody else can)?

Thanks @SachaG, forgot the term :)
Updated the title so others can find this thread easier. I agree, that for now spam isn't much of a problem for Telescope-based sites, but perhaps it is time to kick some ideas, so that some kind of a plug-n-play package can be developed sooner than later. In the best case it could be a package suitable for Orion-CMS and the upcoming Spacedrop-CMS but I have no idea how such package could be "app-agnostic".
Spam management would be a good "out-of-the-box" feature and help wider adoption of Telescope among less tech-skilled folks (IMHO).

Hey, @dalerka! Telescope has changed a lot in the past months, and there is a new React-based version, Telescope Nova (intro video). If you know Crater, it runs on the latest version.
The Legacy version is no longer supported. I'm closing this issue.
I invite you to check the new version, it's awesome!
Happy hacking! 🚀
Ps: by the way, don't hesitate to join the Slack to ask any question, you are welcome! 👍


[stdlib] Documentation revisions

Make RawRepresentable Codable abstracts distinguishable
Make the UnboundedRange example a little more user friendly
Correct the RangeReplaceableCollection example description
Revise CaseIterable discussion

@swift-ci Please smoke test

@CodaFi Would you mind taking a look at the updated CaseIterable documentation?

@swift-ci Please smoke test and merge

@swift-ci Please smoke test


Network Related Error

As soon as I try to run this, it gives me the "Network Related Error | TRIES: "
With working proxies + without proxies it's like that.
I've put the mail, session, etc.. and on the phone number I just left "" because of no phone connected.

to fix that just

just what?


Chore adjust need_local_merge setting conditions

Proposed changes
adjust need_local_merge setting conditions
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall


License number plate detection for privacy reasons

Number plates should usually be obscured, so a bot categorising number plates will allows editors to photoshop the number plate, or a bot could also do it.
See also https://github.com/nicolas-raoul/apps-android-commons/issues/190 trying to prevent the problem at (one of) the source.
Faces should also in some circumstances, but IMO a bot can not know when.

Top level cat : https://commons.wikimedia.org/wiki/Category:License_plates
Two cats for 'fixed' media
https://commons.wikimedia.org/wiki/Category:Images_with_blanked_out_license_plates
https://commons.wikimedia.org/wiki/Category:Images_with_blurred_out_license_plates
'Blurred' also contains revised plates e.g. https://www.flickr.com/photos/salford_ian/2183153995/ vs https://commons.wikimedia.org/wiki/File:Beardmore_taxicab.jpg

Reference : https://github.com/openalpr/openalpr

+1 for plate det. ang geo tagging
+1 for obscuring
Although IMO obscuring should be done by a different bot script to keep things managable. Also because it will be slower since needs to down- AND upload images.

Ya, this bot shouldnt automatically obscure the file.  It should categorise, and a human should check the problem before submitting it to an obscuring process.

Storing and letting allow other processes like a bot to access additional data like position of the plate etc. could be useful here.

A basic database will be useful.  But as noted in a previous meeting, a database is coming to Wikimedia Commons (https://phabricator.wikimedia.org/T68108), with the first prototype out (https://phabricator.wikimedia.org/T125822), and it is worth waiting for that, otherwise we build a database on labs that wont be adopted and we'll need to rewrite the database code to store the metadata on Commons.


Deprecate PAMIE attribute syntax

Originally submitted to Google Code by @yanne on 28 Oct 2009

To ease internal migration from old PamieLibrary to SeleniumLibrary, a
support for PamieLibrary attribute dictionaries was added to
SeleniumLibrary. Since everything that can be done with attribute
dictionaries can be done with XPath, and there has been plenty time for
migration, this support can now be deprecated.
Plan is to add a warning in 2.2.2 and do the removal of support in 2.3

Originally submitted to Google Code by @yanne on 28 Oct 2009

Added deprecation warning in r237.

Originally submitted to Google Code by @yanne on 12 Feb 2010

Removed support in r381


breaking: cleaner pip name xblock-grade-fetcher

this breaks the installation and requires manual changes in production servers:
$ ssh edxapp-server  # also needs to be done on workers
$ sudo -Hsu edxapp
$ source edxapp_env
$ pip uninstall gradefetcher-xblock
$ pip install<EMAIL_ADDRESS>
TODO

[ ] Acknowledgement from Black Team
[ ] Omar to perform the manual version upgrade from v0.1 to v0.2 on customer server
[ ] Omar to update the edx-configs configuration for customers using this XBlock

Why the breaking change?

We're about to install this XBlock on Tahoe (RED-2858) and I'm checking for regular things like pip and pypi package health, tests, CHANGELOG, etc.
The package name sticks on pypi and I'd rather publish a clean one.
Who will perform the manual clean up on the customer servers? I can do that.
Is this necessary? Not really.

Since there's a checkbox to have a black team member review, assuming that's because of standalone servers?

Just observing the naming already on Tahoe (see below). Has the team planned or are we planning on standardizing as xblock as prefix and not suffix?
edxapp@prod-tahoe-us-juniper-workers-0:~/edx-platform$ pip list | grep -i xblock
acid-xblock                   0.1                      /edx/app/edxapp/venvs/edxapp/src/acid-xblock
crowdsourcehinter-xblock      0.4
done-xblock                   2.0                      /edx/app/edxapp/venvs/edxapp/src/done-xblock
feedback-xblock               1.1
lti-consumer-xblock           1.2.6
openedx-scorm-xblock          10.4.0
pdf-xblock                    0.3.1
rate-xblock                   2.0                      /edx/app/edxapp/venvs/edxapp/src/rate-xblock
recommender-xblock            1.4.8
staff-graded-xblock           0.8
ubcpi-xblock                  1.0.0
XBlock                        1.3.1
xblock-discussion             0.1                      /edx/app/edxapp/edx-platform/openedx/core/lib/xblock_builtin/xblock_discussion
xblock-drag-and-drop-v2       2.2.10
xblock-free-text-response     1.1.2
xblock-google-drive           0.2.0
xblock-launchcontainer        2.3.1
xblock-poll                   1.11.0
xblock-prismjs                0.1.4
xblock-problem-builder        4.1.9
xblock-utils                  2.1.1

Thanks @OmarIthawi for the PR. I can take care of the deployment to the standalone customer deployment

Thanks @OmarIthawi for the PR. I can take care of the deployment to the standalone customer deployment

Thanks a lot @amirtds!


Removed  kernel Image from installed files

Image Is Still present in /boot/Image as A symlink to Image-[...] that doesn't exist, making the tar extraction to exit with an error. This (should?) remove it and make the extraction successfull.

Sadly this doesn't work since, as mentioned before, the link is done in the kernel.bbclass which runs much later than this.
If you look at this commit I put in place another workaround which should solve your issue, by linking the old name (Image-xxxx) to the signed one. So now "everything" exists and points to the signed one. Not the prettiest thing, but should solve things for now hopefully and somehow possibly makes sense!

Perfect! thanks.


Price is returning value x100

The api being used for Price:
https://index-api.bitcoin.com/api/v0/cash/price/
is returning all values x100. Essentially, it is returning the price in cents rather than dollars.

all values x100

Divide the values by 100. It seems the other modules don't deal in decimals, so I've just been doing that conversion.

Yes we're dividing by 100 in Badger: https://github.com/Bitcoin-com/badger/commit/25583a6722831cfebdda93b1845e33c926f20999#diff-2b5f4ebed417b2ca68a35f8d38cb3d64R116
In the past I had BITBOX SDK dividing by 100 but I thought that maybe some world currencies don't have 100 units so the math wouldn't work in those cases. So now we just return it in the same format as the price index you listed and divide by 100 in our apps.


Options to allow non-truncated signatures

Given it's hard coded to a 255 limit, would it be possible to make it configurable whether we want the signature truncated?

Signatures are not truncated in JFR output.
As to text formats - such long signatures aren't readable anyway, are they? They won't even fit onto the screen. Or what is the use case?

I use the library programmatically, then parse the signatures to apply mappings to the stack. Without the full signature I can't find the correct mapping for the method

What output format do you use for parsing?
I believe, JFR is the best for automatic processing, and it does not truncate symbols.

Hmm it's tempting to use JFR, although I would have to force an update to JDK 9 to use the library. I think I'll look into that route, because it beats my flaky text parsing.

I would have to force an update to JDK 9 to use the library

What do you mean? async-profiler writes JFR compatible profiles even with JDK 7.
It also includes JFR parser that works with JDK 7+.
And here is an example how to use this parser to convert JFR to FlameGraph.

Oh wow, I didn't even see the parser in the repository! Thank you much, and I apologize for all the stupid issues I've opened on the repo.

This might deserve its own issue now, but it seems like the parser doesn't support JFR version 0.9, which is what the flight recorder puts out. Removing the version check, and it fails to parse. I'm assuming it's outdated?

It's not the first time I see this issue, however, up to the moment it wasn't a real problem. My point is, text-based output formats (including collapsed format) are designed mainly for visualization for end user (who doesn't parse 1KB strings by eye anyway). For computer processing, there is a jfr format.
On the other hand, the suggested PR does not fix the root cause, just makes the issue appear less often.


Failing test on named * export

Sorry for it taking a while but finally managed to set up an example for https://github.com/webpack/webpack/issues/1794

Thanks, fixed

Thank you!


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-source-version-target/pull/119 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-source-version-target.git

Docs Build status updates of commit 12b681c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

versioningArchiveSourceFolder/TOC.yml
:white_check_mark:Succeeded
View (sql-server-2014 || azuresqldb-current || azuresqldb-mi-current || azure-sqldw-latest || >= aps-pdw-2016 || >= sql-server-2016 || >= sql-server-linux-2017 || sql-server-previousversions || sqlallproducts-allversions)

versioningArchiveSourceFolder/docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Notifier icon and name

Hi there,
Couple of questions more than anything else as I couldn't find it in the documentation, unless I've missed it somewhere...
As per your example image on the Mac:
!Example

Why does the terminal icon persist even if you specify appIcon and, more importantly, how can you get rid of it?
In notification center, it still shows up with the terminal icon as well as being titled as "terminal-notifier". How can this be changed?

Thanks
Mike

sender option works fine, thank you.


Implement version name reservation AAPI

Fixes CLI-31

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #295

PR #296   👈

This stack of pull requests is managed by Graphite.

Merge activity

Dec 24, 2:04 AM: @@NathanFlurry started a stack merge that includes this pull request via Graphite.


Enhance TableRebalancer to support no-downtime rebalance for strict replica-group routing tables

Description
On top of #6208, this PR enhances the TableRebalancer to support the no-downtime rebalance for strict replica-group routing, which still hold the minimum available replicas requirement.
See Strict Replica-Group Routing for the algorithm.

Codecov Report

Merging #6212 into master will decrease coverage by 2.24%.
The diff coverage is 48.26%.

@@            Coverage Diff             @@
##           master    #6212      +/-   ##
==========================================
- Coverage   66.44%   64.20%   -2.25%
==========================================
  Files        1075     1238     +163
  Lines       54773    58674    +3901
  Branches     8168     8687     +519
==========================================
+ Hits        36396    37673    +1277
- Misses      15700    18258    +2558
- Partials     2677     2743      +66

Flag
Coverage Δ

#unittests
64.20% <48.26%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...e/pinot/broker/api/resources/PinotBrokerDebug.java
0.00% <0.00%> (-79.32%)
:arrow_down:

...ot/broker/broker/AllowAllAccessControlFactory.java
71.42% <ø> (-28.58%)
:arrow_down:

.../helix/BrokerUserDefinedMessageHandlerFactory.java
33.96% <0.00%> (-32.71%)
:arrow_down:

...ker/routing/instanceselector/InstanceSelector.java
100.00% <ø> (ø)

...ava/org/apache/pinot/client/AbstractResultSet.java
66.66% <0.00%> (+9.52%)
:arrow_up:

.../main/java/org/apache/pinot/client/Connection.java
35.55% <0.00%> (-13.29%)
:arrow_down:

...inot/client/JsonAsyncHttpPinotClientTransport.java
10.90% <0.00%> (-51.10%)
:arrow_down:

...not/common/assignment/InstancePartitionsUtils.java
73.80% <ø> (+0.63%)
:arrow_up:

.../apache/pinot/common/exception/QueryException.java
90.27% <ø> (+5.55%)
:arrow_up:

...pinot/common/function/AggregationFunctionType.java
98.27% <ø> (-1.73%)
:arrow_down:

... and 1075 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ce43288...6781f57. Read the comment docs.


max_ray_length_m not used properly with all integrators

The max_ray_length_m param is used properly with the simple integrator, but the merged integrator ignores it. When for instance using VLP-16 clouds as input this becomes apparent really fast as integration time gets very slow with clouds containing points tens of meters away.

I did some tests the other day and the merge integrator was definitely using it, I will check and see if anythings changed

Took a look and created PR #97 to fix the issue. The parameter was indeed used, but only if allow_clear was set to true. Otherwise, it was ignored, which lead to all rays getting integrated regardless if they exceed the specified max distance (making things super slow when using high range LIDARs).


chore: update docs app to Angular 13

Description:
This PR updates docs app to the latest Angular version - v13.1.1. The update was preformed by using ng update command which changed some files and dependencies. Some other files were manually adjusted.
Related issue (if exists):
None

Core team: Proceed and disable linting in docs-app for now, with a follow up to get it linting with eslint.


Poetry install failed on WSL (Ubuntu 22.04)

Describe the bug
[DEBUG] ARGS: /home/username/.local/bin/mise use -g poetry@latest --verbose
[DEBUG] Config {
    Config Files: [
        "~/directory/.mise.toml",
        "~/.config/mise/config.toml",
    ],
}
[DEBUG] Toolset: python@latest
installing
~/.local/share/mise/plugins/poetry/bin/install
[DEBUG] $ ~/.local/share/mise/plugins/poetry/bin/install
Retrieving Poetry metadata
# Welcome to Poetry!
This will download and install the latest version of Poetry,
a dependency and package manager for Python.
It will add the `poetry` command to Poetry's bin directory, located at:
/home/username/.local/share/mise/installs/poetry/1.8.2/bin
You can uninstall at any time by executing this script with the --uninstall option,
and these changes will be reverted.
Installing Poetry (1.8.2)
Installing Poetry (1.8.2): Creating environment
Installing Poetry (1.8.2): An error occurred. Removing partial environment.
Poetry installation failed.
See /home/username/directory/poetry-installer-error-5ak_yz58.log for error logs.
Cleanup: Something went wrong!
47 /home/username/.local/share/mise/plugins/poetry/bin/install: POETRY_HOME=$install_path python3 - --version "$version" $flags
[ERROR] ~/.local/share/mise/plugins/poetry/bin/install failed
Error:
   0: ~/.local/share/mise/plugins/poetry/bin/install exited with non-zero status: exit code 127

Location:
   src/plugins/script_manager.rs:183

Version:
   2024.4.5 linux-x64 (d60d850 2024-04-15)

Suggestion: Run with --verbose or MISE_VERBOSE=1 for more information.

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.

To Reproduce
mise use -g poetry@latest --verbose

mise doctor output
version: 2024.4.5 linux-x64 (d60d850 2024-04-15)
activated: yes
shims_on_path: no

build_info:
  Target: x86_64-unknown-linux-gnu
  Features: DEFAULT, NATIVE_TLS, OPENSSL
  Built: Mon, 15 Apr 2024 23:15:20 +0000
  Rust Version: rustc 1.77.2 (25ef9e3d8 2024-04-09)
  Profile: release

shell:
  /bin/bash
  GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
  Copyright (C) 2020 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

  This is free software; you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.

dirs:
  data: ~/.local/share/mise
  config: ~/.config/mise
  cache: ~/.cache/mise
  state: ~/.local/state/mise
  shims: ~/.local/share/mise/shims

config_files:
  ~/.config/mise/config.toml
  ~/directory/.mise.toml

plugins:
  bun     (core)
  deno    (core)
  go      (core)
  java    (core)
  node    (core)
  poetry  https://github.com/mise-plugins/mise-poetry.git#95e67f5
  python  (core)
  ruby    (core)

toolset:
<EMAIL_ADDRESS>
env_vars:
  MISE_SHELL=bash

settings:
  activate_aggressive = false
  all_compile = false
  always_keep_download = false
  always_keep_install = false
  asdf_compat = false
  cargo_binstall = true
  color = true
  disable_default_shorthands = false
  disable_tools = []
  experimental = false
  go_default_packages_file = "~/.default-go-packages"
  go_download_mirror = "https://dl.google.com/go"
  go_repo = "https://github.com/golang/go"
  go_set_gopath = false
  go_set_goroot = true
  go_skip_checksum = false
  jobs = 4
  legacy_version_file = true
  legacy_version_file_disable_tools = []
  node_compile = false
  not_found_auto_install = true
  paranoid = false
  plugin_autoupdate_last_check_duration = "7d"
  python_compile = false
  python_default_packages_file = "/home/username/.default-python-packages"
  python_pyenv_repo = "https://github.com/pyenv/pyenv.git"
  raw = false
  trusted_config_paths = []
  quiet = false
  verbose = false
  yes = false
  ci = false
  debug = false
  trace = false
  log_level = "info"
  python_venv_auto_create = false

  [status]
  missing_tools = "if_other_versions_installed"
  show_env = false
  show_tools = false

No warnings found
No problems found

same issue here
dup of #1743


Fix Audit cmd

Other than that one rogue log noted above, I made a PR deploy and tested this locally, seems to be working!

Other than that one rogue log noted above, I made a PR deploy and tested this locally, seems to be working!

@jamespohalloran I just removed it. Thanks.


Fix optional embedded for manufacturer

embedded fields can only be optional if all nested fields also are optional. In case of manufacturer only streetNumber is optional.

@nsams made the same mistake I fixed with products demo. :-D


Handle the sql type named LONG

Motivation
People using the native engine may write CAST( some AS LONG ) because they used to work with those types - however the sql parser doesn't know that type and returns an error.
Description
It could be handled as an alias to BIGINT

@kgyrtkirk Can i work on this.?


⚠ Bofrost.be has degraded performance

In 2937a7c, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2552 ms

Resolved: Bofrost.be performance has improved in 268e21c.


drt/ta: Use getMinSpacingValue()

Signed-off-by: Anton Blanchard<EMAIL_ADDRESS>

Are there more of these to do still?


Ensure ordering with retry

Proposed Changes
Adds test to ensure ordering when fetched from db. Also add retry functionality on failing db ops.
Types of Changes
What types of changes does your code introduce to this project?
Put an x in the boxes that apply

[x] Bugfix (non-breaking change which fixes issue #XXXX)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation (correction or otherwise)
[ ] Cosmetics (whitespace, styles...)
[ ] DevOps (Build scripts, pipelines...)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating
the PR. If you're unsure about any of them, don't hesitate to ask on the
mailing list. We're here to help! This is simply a reminder of what we are
going to look for before merging your code.

[ ] I have read the CODE_OF_CONDUCT.md document
[X] All tests pass locally with my changes
[X] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if needed)
[ ] Any dependent changes have been merged and published in related repositories
[ ] I have updated changelog (At the bottom of the release version)
[ ] I have squashed all my commits into one before merging

Should we track retry attempts as metrics?

@ajatprabha do you want me to add another metric for retry attempts? Though we are already tracking errors and on receiving errors we retry.


Update/PauseFeatureUpdatesStartTime

Update/PauseFeatureUpdatesStartTime
This says String, but does not offer supported String syntax.
Please input syntax examples on all policies.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 91ca58bd-f279-7739-0140-c4bd56784768
Version Independent ID: 1d2ecc90-58a3-6bcd-84ae-ef04d7a3b7b4
Content: Policy CSP - Update
Content Source: windows/client-management/mdm/policy-csp-update.md
Product: w10
GitHub Login: @MariciaAlforque
Microsoft Alias: maricia

@officedocsbot assign @jvsam

Hi @Tdiwestyguy, thank you for your feedback. Since you've opened three issues related to the Policy CSP - Update article, I am combining #1774, #1775 and #1750 to the request that I will forward to the Windows writing team. Our main goal here is to ensure users have the best Windows 10 experience by providing useful, accurate and up-to-date documentations.

Hi @Tdiwestyguy, Update/PauseFeatureUpdatesStartTime policy description now includes syntax and examples. Also, the updates are displayed on the site so we will now close this issue. Thank you again for taking the time to share your feedback and for being part of the Microsoft Docs community!
NOTE: Update/PauseQualityUpdatesStartTime has also been updated. See #1775

@officedocsbot close


VScode not showing All PSdrive

VSCode Version:1.19.3
OS Version: Win7 Pro 64

Steps to Reproduce:

import-module Vmware.VimAutomation.Core
Connect-VIServer <local.io>
PSDrive
Visual Studio Code cannot find PSdrive's for VimDatastore
Powershell Admin Console can. Not sure of cause.

Does this issue occur when all extensions are disabled?: Yes then I cant run Powershell...

Weird right?

I guess our integrated terminal is not running as Administrator ?

Yeah the terminal doesn't run as admin unless VS Code is running as admin. Closing this as designed for now.


create  dynamically to the display on the results page

include  inside the  to call the detail page.
 is going to have event listener to display the content of the details page


Add abiltiy to define an extra directory that should be created within the lowering directory

Add ability to define whether or not an extra directory should be added at the cruise level or at the lowering level.  Currently it is only possible to add cruise-level extra directories.

Will be deployed in v2.8 release


Add README with installation/configuration instructions

Currently the readme is blank. Let's give it a description of what the project is and how to install it.
While doing that, we might start with a fresh conda environment to make sure that that works.

The README is no longer blank, but it doesn't give any description of where to start / how to use.


fix: 属性面板样式修复

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Cilium unable to mount BPF fs

Nimroy reported:
level=info msg=" ___|_| |_|_ _ _____"
level=info msg="|  _| | | | | |     |"
level=info msg="|___|_|_|_|___|_|_|_|"
level=info msg="Cilium 1.0.0-rc10  go version go1.9.4 linux/amd64"
level=info msg="Envoy version check disabled"
level=info msg="clang (6.0.0) and kernel (4.12.14) versions: OK!"
level=info msg="linking environment: OK!"
level=info msg="bpf_requirements check: OK!"
level=warning msg="BPF root is not a BPF filesystem (0x62656572 != 0xcafe4a11)" file-path=/sys/fs/bpf
level=info msg="Mounted BPF filesystem /sys/fs/bpf"
level=info msg="Waiting for etcd client to be ready"
level=info msg="Valid label prefix configuration:"
level=info msg=" - :io.kubernetes.pod.namespace"
level=info msg=" - :io.cilium.k8s.namespace.labels"
level=info msg=" - !:io.kubernetes"
level=info msg=" - !:.*kubernetes.io"
level=info msg=" - !:pod-template-generation"
level=info msg=" - !:pod-template-hash"
level=info msg=" - !:controller-revision-hash"
level=info msg=" - !:annotation.cilium.io/"
level=info msg=" - !:annotation.cilium-identity"
level=info msg=" - !:annotation.sidecar.istio.io"
level=info msg="Container runtimes being used: \"docker\" on endpoint \"unix:///var/run/docker.sock\""
level=info msg="Waiting for k8s api-server to be ready..." subsys=k8s
[...]
level=info msg="  IPv6 router address: f00d::ac1c:400:0:81d6"
level=error msg="bpf: Unable to update in tunnel endpoint map" error="Unable to get object /sys/fs/bpf/tc/globals/tunnel_endpoint_map: no such file or directory" ipAddr=172.16.xxx.xxx/23
level=error msg="bpf: Unable to update in tunnel endpoint map" error="Unable to get object /sys/fs/bpf/tc/globals/tunnel_endpoint_map: no such file or directory" ipAddr="f00d::ac1c:400:0:0/112"
level=info msg="Loopback IPv4: 172.16.xxx.xxx"

BPF fs was not mounted by Cilium:
caasp-master-0:~ # mount | grep bpf
caasp-master-0:~ # find /sys/fs/bpf/
/sys/fs/bpf/

Manually mounting and restarting resolved the issue (kubectl delete -f cilium.yaml then recreate).
caasp-master-0:~ # mount | grep bpf
bpf on /sys/fs/bpf type bpf (rw,relatime)

On top of: https://github.com/cilium/cilium/commit/42b330c4a14358a7100b70c82e39169ad7bcdd7f
Potentially bug in mountFS() where mountpoint could have failed for some reason where daemon instead assumed it was mounted but in reality it wasn't. 0x62656572 is the sysfs superblock magic, so mounting BPF fs should have been fine here.

Does this happen inside a container? If it's inside the container, the mount need to be in the host. I recommend the following systemd script:
https://github.com/cilium/cilium/blob/master/contrib/systemd/sys-fs-bpf.mount

@eloycoto: looping @nirmoy in here for above question.

@nirmoy is this a Minikube environment? We have only ever seen such behavior in minikube.
An issue where we saw similar behavior is. https://github.com/cilium/cilium/issues/3519 . See @joestringer 's comment : https://github.com/cilium/cilium/issues/3519#issuecomment-378757566 .

I think that the cause of this issue is that we rely on the host - we expect the host to have /sys/fs/bpf mounted and we just mount that directory to the container. Of course that will fail in many environments (including Minikube), because the most of distros don't mount bpffs by default. The solution with systemd service linked by @eloycoto is tricky, because we cannot inject that service into Minikube VM without ugly hacks.
So I'd propose the other solution. SYS_ADMIN capability allows containers to moint bpffs. I think we can just give that capability to the Cilium daemonset, don't mount /sys/fs/bpf from host and just let Cilium do its job with mounting bpffs.
That approach works for me. After the changes from my PR, I cannot reproduce that issue in Minikube anymore and it seems that Cilium just mounts bpffs succesfully:
 mrostecki   master  …  cilium  examples  minikube  minikube start
Starting local Kubernetes v1.7.5 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...

level=info msg="linking environment: OK!"
level=info msg="bpf_requirements check: OK!"
level=info msg="Mounted BPF filesystem /sys/fs/bpf"
level=info msg="Waiting for etcd client to be ready"
level=info msg="Valid label prefix configuration:"
level=info msg=" - :io.kubernetes.pod.namespace"
level=info msg=" - :io.cilium.k8s.namespace.labels"
level=info msg=" - !:io.kubernetes"
level=info msg=" - !:.*kubernetes.io"
level=info msg=" - !:pod-template-generation"
level=info msg=" - !:pod-template-hash"
level=info msg=" - !:controller-revision-hash"
level=info msg=" - !:annotation.cilium.io/"
level=info msg=" - !:annotation.cilium-identity"
level=info msg="Container runtimes being used: \"docker\" on endpoint \"unix:///var/run/docker.sock\""
level=info msg="Waiting for k8s api-server to be ready..." subsys=k8s
level=info msg="Connected to k8s api-server" ipAddr="https://<IP_ADDRESS>:443" subsys=k8s
level=info msg="Retrieved node information from kubernetes" nodeName=minikube subsys=k8s
level=info msg="Received own node information from API server" ipAddr.ipv4=<IP_ADDRESS> ipAddr.ipv6="<nil>" nodeName=minikube subsys=k8s
level=info msg="Automatically retrieved IP for node. Using it for ipv4-node" ipAddr=<IP_ADDRESS> node=minikube
level=info msg="k8s mode: Allowing localhost to reach local endpoints"
level=info msg="Using autogenerated IPv4 allocation range" v4Prefix=<IP_ADDRESS>/16
level=info msg="Using autogenerated IPv6 allocation range" v6Prefix="f00d::a0f:0:0:0/96"
level=info msg="Addressing information:"
level=info msg="  Local node-name: minikube"
level=info msg="  Node-IPv6: fc00::10ca:1"
level=info msg="  External-Node IPv4: <IP_ADDRESS>"
level=info msg="  Internal-Node IPv4: <IP_ADDRESS>"
level=info msg="  Cluster IPv6 prefix: f00d::/64"
level=info msg="  Cluster IPv4 prefix: <IP_ADDRESS>/8"
level=info msg="  IPv6 node prefix: f00d::a0f:0:0:0/96"
level=info msg="  IPv6 allocation prefix: f00d::a0f:0:0:0/112"
level=info msg="  IPv4 allocation prefix: <IP_ADDRESS>/16"
level=info msg="  IPv6 router address: f00d::a0f:0:0:8ad6"
level=info msg="Loopback IPv4: <IP_ADDRESS>"
level=info msg="Added L2 nexthop route" route="{Ifindex: 19 Dst: <IP_ADDRESS>/32 Src: <nil> Gw: <nil> Flags: [] Table: 0}"
level=info msg="Installed node route" route="{Ifindex: 19 Dst: <IP_ADDRESS>/16 Src: <IP_ADDRESS> Gw: <IP_ADDRESS> Flags: [] Table: 0}"
level=info msg="Added L2 nexthop route" route="{Ifindex: 19 Dst: f00d::a0f:0:0:8ad6/128 Src: <nil> Gw: <nil> Flags: [] Table: 0}"
level=info msg="Installed node route" route="{Ifindex: 19 Dst: f00d::a0f:0:0:0/112 Src: fc00::10ca:1 Gw: f00d::a0f:0:0:8ad6 Flags: [] Table: 0}"
level=info msg="Setting sysctl net.core.bpf_jit_enable=1"
level=info msg="Setting sysctl net.ipv4.conf.all.rp_filter=0"
level=info msg="Setting sysctl net.ipv6.conf.all.disable_ipv6=0"
level=info msg="Restoring endpoints from former life..."
level=info msg="No old endpoints found."
level=info msg="Envoy: Starting xDS gRPC server listening on /var/run/cilium/xds.sock"
level=info msg="Serving cilium node monitor at unix:///var/run/cilium/monitor.sock"
level=info msg="level=info msg=\"Serving cilium health at http://[::]:4240\"" netns=cilium-health
level=info msg="Endpoint policy recalculated" containerID=cilium-loc endpointID=29898 policyRevision=0
level=info msg="Adding route" command="ip route add <IP_ADDRESS>/32 dev cilium" netns=cilium-health
level=info msg="Adding route" command="ip route add <IP_ADDRESS>/0 via <IP_ADDRESS> dev cilium" netns=cilium-health
level=info msg="Adding route" command="ip -6 route add f00d::a0f:0:0:8ad6/128 dev cilium" netns=cilium-health
level=info msg="Adding route" command="ip -6 route add ::/0 via f00d::a0f:0:0:8ad6 dev cilium" netns=cilium-health
level=error msg="Cannot create CEP" containerID=cilium-loc controller="sync-to-k8s-ciliumendpoint (29898)" endpointID=29898 error="the server could not find the requested resource (post ciliumendpoints.cilium.io)" policyRevision=0
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumNetworkPolicy/v2 subsys=k8s
level=info msg="Updating CRD (CustomResourceDefinition)..." name=CiliumNetworkPolicy/v2 subsys=k8s
level=info msg="No request received to manage networking for container" containerID=9d52e023e1 maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=032745cd29 maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=657a68de8e maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=1112ea0d81 maxRetry=20 subsys=containerd-watcher
level=error msg="Cannot create CEP" containerID=cilium-loc controller="sync-to-k8s-ciliumendpoint (29898)" endpointID=29898 error="the server could not find the requested resource (post ciliumendpoints.cilium.io)" policyRevision=0
level=info msg="No request received to manage networking for container" containerID=88a16a5919 maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=8051d0d880 maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=77f70f6fed maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=4597ed4bc5 maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=2cc8c88c6b maxRetry=20 subsys=containerd-watcher
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumNetworkPolicy/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumEndpoint subsys=k8s
level=info msg="Updating CRD (CustomResourceDefinition)..." name=v2.CiliumEndpoint subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=v2.CiliumEndpoint subsys=k8s
level=info msg="Installed node route" route="{Ifindex: 19 Dst: <IP_ADDRESS>/16 Src: <IP_ADDRESS> Gw: <IP_ADDRESS> Flags: [] Table: 0}"
level=info msg="Added L2 nexthop route" route="{Ifindex: 19 Dst: f00d::a0f:0:0:8ad6/128 Src: <nil> Gw: <nil> Flags: [] Table: 0}"
level=info msg="Installed node route" route="{Ifindex: 19 Dst: f00d::a0f:0:0:0/96 Src: fc00::10ca:1 Gw: f00d::a0f:0:0:8ad6 Flags: [] Table: 0}"
level=info msg="Endpoint policy recalculated" containerID=cilium-loc endpointID=29898 policyRevision=1
level=info msg="Serving prometheus metrics on :9090"
level=info msg="Serving cilium at unix:///var/run/cilium/cilium.sock"
level=info msg="Serving cilium health at http://[::]:4240"
level=info msg="Serving cilium health at unix:///var/run/cilium/health.sock"
level=info msg="Policy imported via API, recalculating..." policyRevision=2
level=info msg="Imported CiliumNetworkPolicy" ciliumNetworkPolicyName=rule1 k8sApiVersion= k8sNamespace=default
level=info msg="No request received to manage networking for container" containerID=741c5e779a maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=eb56575f7f maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=a99c3a18d2 maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=b5dcf961bd maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=6392b81b6e maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=4b2b59e213 maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=8178fb8b32 maxRetry=20 subsys=containerd-watcher
level=info msg="No request received to manage networking for container" containerID=a89ca0527e maxRetry=20 subsys=containerd-watcher
 mrostecki   master  …  cilium  examples  minikube  minikube ssh
                         _             _
            _         _ ( )           ( )
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

$ docker ps | grep cilium-agent
8178fb8b3222        cilium/cilium@sha256:9cfd32e1cfc06c7f5a50a1b3e2b5b782e53344b4a518fd1c67cd5c161940cc31                                          "cilium-agent --debug"   About a minute ago   Up About a minute                       k8s_cilium-agent_cilium-w4rp1_kube-system_a4be969a-4223-11e8-ab36-0800273d08fb_0
$ docker exec -ti 8178fb8b3222 bash
root@minikube:~# mount | grep bpf
bpffs on /sys/fs/bpf type bpf (rw,relatime)
bpffs on /sys/fs/bpf/xdp type bpf (rw,relatime)
bpffs on /sys/fs/bpf/ip type bpf (rw,relatime)

As you can see, the error doesn't occur anymore and bpffs is mounted inside the container.

If you agree with that solution, I'm going to update every DaemonSet yaml file with that change.

@eloycoto  I dont have that issue anymore but I still get "level=warning msg="BPF root is not a BPF filesystem (0x62656572 != 0xcafe4a11)" file-path=/sys/fs/bpf" but cilium works.
@ianvernon  Its not in minikube, I am using SUSE container platform(caasp).
(Sorry for late reply, I haven't receive any notification for some reason)

@mrostecki When I mount it on host machine(mount -t bpf bpf /sys/fs/bpf/) the warning goes off, so I would prefer orchestration engine to make sure bpffs is mounted before running cilium. It is more secure I think.

@nirmoy Mounting it on host is a little bit more secure (just a bit, we already give the NET_ADMIN capability and do a lot of "insecure" stuff in the container :) ), but with that approach you need to tell everyone to configure the host, to modify fstab or inject a systemd service, which is really painful - especially on the public clouds or VM environments which already have their complicated provisioning systems.
Also, if you want to keep the approach of mounting on the host, do you have any proposition how to fix Minikube example?

@nirmoy One more thing. The warning:
"level=warning msg="BPF root is not a BPF filesystem (0x62656572 != 0xcafe4a11)" file-path=/sys/fs/bpf"

is caused exactly by the hostMount. Cilium tries to manage the bpffs mount by itself, but it already sees that this directory is mounted with the other filesystem by runc..
The majority of Cilium users will use Cilium with Kubernetes, inside containers. So we end up with that warning for the majority of users! Isn't it a bit inappropriate?

@mrostecki cilium too
https://github.com/cilium/cilium/blob/master/examples/minikube/cilium-ds.yaml#L186

OK, I closed the old pull request - I realized that BPFFS mount on the host is needed and recommended.
I created the new PR with an another approach to solve the problem. If Cilium is running inside container, but BPFFS is not mount on the host, then IMO we should unmount /sys/fs/bpf and mount BPFFS in the container. And also warn the user that we recommend to mount BPFFS on the host.
@aanm @tgraf What do you think?

@mrostecki I am afraid that way you will potentially create harmful changes to the user host, by (unmounting a path)

What happens if the mountpoint is a shared mount with the init mountns? Could we check whether it's a private mountpoint instance in the container and only then proceed if not mounted yet at /sys/fs/bpf/? A completely different approach is to create a new mountpoint specifically for cilium somewhere under Cilium's run dir or such and mount a bpf fs instance from there to not interfere with anything else.

What happens if the mountpoint is a shared mount with the init mountns?

It will always happen for containerized Cilium. Every mount that Docker/runc creates is a --bind mount. So yeah, in container's mount ns, it always will be a shared mount with the init mountns.

Could we check whether it's a private mountpoint instance in the container and only then proceed if not mounted yet at /sys/fs/bpf/?

Same answer as above - if you are running Cilium in container, the /sys/fs/bpf is a shared mount from host mountns to the container mountns. In my pull requrest, if the filesystem of /sys/fs/bpf is not bpffs, then Cilium is going to unmount it and then mount bpffs again, privately. I guess that's what might be conceening you.

A completely different approach is to create a new mountpoint specifically for cilium somewhere under Cilium's run dir or such and mount a bpf fs instance from there to not interfere with anything else.

OK, this sounds like a better idea. Maybe our steps with bpffs mounting should be:

Checking whether /sys/fs/bpf is mounted with BPFFS filesystem.
If yes, just use that mount.
If not, mount bpffs in /run/cilium/bpffs (or smth like that) and use that.

If that sounds good to you, I will switch to that approach.

In my pull requrest, if the filesystem of /sys/fs/bpf is not bpffs, then Cilium is going to unmount it and then mount bpffs again, privately. I guess that's what might be concerning for you.

Ok, if the magic number is neither 0x62656572 (pointing to sysfs /sys/ mount instance higher in the hierarchy) nor 0xcafe4a11 (bpf fs instance), then the setup is bogus and utterly broken. The expectation is that this location / mount point is reserved for bpf fs only, so either it's mounted there or not. Therefore, unmounting some completely different file system instance I would consider okay since this is not an expected location for it.

OK, this sounds like a better idea. Maybe our steps with bpffs mounting should be:

The approach you describe sounds sane to me, although if we go that route we might as well switch unconditionally to some private /run/cilium/bpf/fs mount instance. @tgraf thoughts?

I like the idea of mounting bpffs to Cilium's run dir.

although if we go that route we might as well switch unconditionally to some private /run/cilium/bpf/fs mount instance

That's a good idea too. I think we can use names /run/cilium/bpf/fs_host /run/cilium/bpf/fs_internal, it will make debugging easier and even looking at /proc/mounts will make it clear which kind of mount we are using.

Hit a similar issue with minikube 0.25.2, k8s 1.9.4, cilium v1.0.2.

Reopening due to revert.


Sequence Parallel / fp8 Example

@weifengpy @wanchaol
I've seen various mentions of sequence parallel (which I believe is subsumed by tensor_parallel per #162) training when searching through commits / PRs.  Is there an "official" example or docs for a) how to configure a training run for this parallelism strategy and b) how to compose with other forms of parallelism?
Additionally, are there any examples / docs for using fp8 with the various parallelism primitives?

@weifengpy @wanchaol
I've seen various mentions of sequence parallel (which I believe is subsumed by tensor_parallel per #162) training when searching through commits / PRs. Is there an "official" example or docs for a) how to configure a training run for this parallelism strategy and b) how to compose with other forms of parallelism?
Additionally, are there any examples / docs for using fp8 with the various parallelism primitives?

Hi @jeromeku , glad to see questions around our latest work

Is there an "official" example or docs for a) how to configure a training run for this parallelism strategy b) how to compose with other forms of parallelism?

tensor parallel / sequence parallel tutorial by @wanchaol and @tianyu-l: https://pytorch.org/tutorials/intermediate/TP_tutorial.html
for learning by doing, you can run follwing commands

1D tensor parallel / sequence parallel: CONFIG_FILE="./train_configs/debug_model.toml" NGPU=4 ./run_llama_train.sh --training.data_parallel_degree 1 --training.tensor_parallel_degree 4
2D tensor parallel / sequence parallel + FSDP: CONFIG_FILE="./train_configs/debug_model.toml" NGPU=4 ./run_llama_train.sh --training.tensor_parallel_degree 2

are there any examples / docs for using fp8 with the various parallelism primitives?

we are drafting a note around FSDP + float8 all-gather in 2 weeks, and 3D + float8 all-gather in 2 months
if you want a preview, you can run following commands to give it a try

1D TP + float8 all-gather, eager mode: CONFIG_FILE="./train_configs/debug_model.toml" NGPU=4 ./run_llama_train.sh --training.enable_float8_linear --training.data_parallel_degree 1 --training.tensor_parallel_degree 4
2D FSDP2 + TP + float8 all-gather, eager mode: CONFIG_FILE="./train_configs/debug_model.toml" NGPU=4 ./run_llama_train.sh --training.enable_float8_linear --training.enable_fsdp_float8_all_gather --training.precompute_float8_dynamic_scale_for_fsdp --training.tensor_parallel_degree 2

this week we are refacting float8 APIs and you may expereince breakage. We float8 to stabalize in the week of 8/5

@weifengpy
Thanks for the thorough response!
Can you elaborate on why there is no distinction between tensor parallel (TP) and sequence parallel (SP) in torchtitan?  In the canonical implemention, these are considered two distinct forms of parallelism as TP splits the weights while SP splits layernorm / drop activations.  Moreover, the DTensor API has RowwiseParallel / ColwiseParallel primitives for TP and a distinct SequenceParallel object for SP per the TP / SP tutorial as SP can be applied on top of TP.

I think it is just a naming thing. The Nvidia paper (https://arxiv.org/abs/2205.05198) called sharding the norm inputs/outputs across the tensor-parallel mesh "sequence parallelism". At the same time, "sequence parallelism" is kind of overloaded since there are also ways to parallelize the inner attention on the sequence dimension, which Nvidia now calls "context parallelism", which is similar to the old "sequence parallelism" paper (https://arxiv.org/abs/2105.13120).
torchtitan probably calls it all TP because it is on the TP mesh dimension. In contrast, context parallelism would require carving out another mesh dimension distinct from TP.

@jeromeku
Happy to answer your question on TP and SP.
In a very narrow sense, yes they are different. Let's use the Llama model in torchtitan as an example. TP splits the weights, and the weights being split are from (1) attention layer and (2) feed forward layer. SP splits activations, and the activations it splits are on dropout and layernorm. So as you can already tell, they are (designed to be) applied on disjoint part of the model forward pass, and can coexist.
This is not a coincidence. In a broader sense, the concept of SP is an improvement to TP in the sense that SP paper (you cited) is actually about (a) TP + (b) splitting dropout / layernorm activations. Merely applying (b) won't give you meaningful benefits (can you see why?). It only makes sense to apply (b) on top of (a). In some sense we can call SP by TP2, or TP+.
Given their close relationship, we'd better have a single name to differentiate from other very different parallelisms (DDP, FSDP, PP, CP, etc.). We ended up using TP because what I explained above (SP is an improvement to the well-known TP and only makes sense when TP is applied).

@awgu @weifengpy @tianyu-l
Understood -- many thanks for the responses!

I think it is just a naming thing. The Nvidia paper (https://arxiv.org/abs/2205.05198) called sharding the norm inputs/outputs across the tensor-parallel mesh "sequence parallelism". At the same time, "sequence parallelism" is kind of overloaded since there are also ways to parallelize the inner attention on the sequence dimension, which Nvidia now calls "context parallelism", which is similar to the old "sequence parallelism" paper (https://arxiv.org/abs/2105.13120).
torchtitan probably calls it all TP because it is on the TP mesh dimension. In contrast, context parallelism would require carving out another mesh dimension distinct from TP.

Thank you for the clarification! It really helps!


Suddenly the bot stops working, is there any solution?

Whenever i run the bot in terminal, some minutes later it suddenly stops and it writes these:
Traceback (most recent call last):
File "pokecli.py", line 493, in
main()
File "pokecli.py", line 129, in main
raise e
requests.exceptions.ChunkedEncodingError: ("Connection broken: error(54, 'Connection reset by peer')", error(54, 'Connection reset by peer'))
2016-08-10 00:06:33,502 [sentry.errors] [ERROR] Sentry responded with an error: 'ascii' codec can't decode byte 0x9c in position 1: ordinal not in range(128) (url: https://app.getsentry.com/api/90254/store/)
Traceback (most recent call last):
File "/Users/merkon/Downloads/PokemonGo-Bot-master/pokemonEnv/lib/python2.7/site-packages/raven/transport/threaded.py", line 174, in send_sync
super(ThreadedHTTPTransport, self).send(data, headers)
File "/Users/merkon/Downloads/PokemonGo-Bot-master/pokemonEnv/lib/python2.7/site-packages/raven/transport/http.py", line 47, in send
ca_certs=self.ca_certs,
File "/Users/merkon/Downloads/PokemonGo-Bot-master/pokemonEnv/lib/python2.7/site-packages/raven/utils/http.py", line 66, in urlopen
return opener.open(url, data, timeout)
File "/Users/merkon/Downloads/PokemonGo-Bot-master/pokemonEnv/lib/python2.7/site-packages/future/backports/urllib/request.py", line 494, in open
response = self._open(req, data)
File "/Users/merkon/Downloads/PokemonGo-Bot-master/pokemonEnv/lib/python2.7/site-packages/future/backports/urllib/request.py", line 512, in _open
'_open', req)
File "/Users/merkon/Downloads/PokemonGo-Bot-master/pokemonEnv/lib/python2.7/site-packages/future/backports/urllib/request.py", line 466, in _call_chain
result = func(*args)
File "/Users/merkon/Downloads/PokemonGo-Bot-master/pokemonEnv/lib/python2.7/site-packages/raven/utils/http.py", line 46, in https_open
return self.do_open(ValidHTTPSConnection, req)
File "/Users/merkon/Downloads/PokemonGo-Bot-master/pokemonEnv/lib/python2.7/site-packages/future/backports/urllib/request.py", line 1284, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1053, in request
self._send_request(method, url, body, headers)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1093, in _send_request
self.endheaders(body)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1049, in endheaders
self._send_output(message_body)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 891, in _send_output
msg += message_body
UnicodeDecodeError: 'ascii' codec can't decode byte 0x9c in position 1: ordinal not in range(128)
2016-08-10 00:06:33,507 [sentry.errors.uncaught] [ERROR] [u'ChunkedEncodingError: ("Connection broken: error(54, 'Connection reset by peer')", error(54, 'Connection reset by peer'))', u'  File "pokecli.py", line 493, in ', u'  File "pokecli.py", line 129, in main']
Is there any solution? And basically, what's the problem?

Lines 6-7 explain it...

What's the solution then? I really have no idea about that, can you help me please?

Also, what's the problem with that too?
2016-08-10 00:20:16,976 [MoveToFort] [INFO] [inventory_full] Not moving to any forts as there aren't enough space. You might want to change your config to recycle more items if this message appears consistently.

seem your internet, try use vpn

PokeBot.zip
Unzip that and run it. Every time your bot crashes because of your internet, it will automatically restart the bot after 5 seconds.

error happens in botevent file. Is that related to the Analytics?
https://github.com/PokemonGoF/PokemonGo-Bot/search?utf8=✓&q=https%3A%2F%2Fapp.getsentry.com&type=Code
Can we just disable the Analytics?
https://github.com/PokemonGoF/PokemonGo-Bot#analytics
health_record = false?

@GitPupper Have a solution for windows like that?

as a workaround, i just autorestart the bot on failure.
@echo off
TITLE pokemongobot-controller
:loop
call scripts/activate.bat
call python pokecli.py
if %ERRORLEVEL% NEQ 0(
	echo There is an error (Error code : %ERRORLEVEL%).
	echo Will restart after a small delay
)
SET /A seconds=%RANDOM% * 600 / 32768 + 300
timeout /t %seconds%
goto loop
pause


feat: payouts for creator

Description

added issue-creator-multiplier config and made incentives for an original issue description greater than for a regular comment from issue-creator-multiplier.
Also fixed bug(default label for initial issue) => issues.created->issues.opened. (webhook)

closes #355

@0xcodercrane ! Could you review the PR?

hey @wannacfuture,  I had an unexpected problem for a whole day yesterday so didn't get a chance to review it. You got closer but I didn't want to change incentiveComments func in the first requests because it has an another problem related to lambda function timeout.


Flaky IOS integration tests

They used to be stable, but sometimes fail since a while. Not sure what happened.
It seems they fail, when we find this error message in the logs:
flutter: Exception: No Impeller context is available

https://github.com/encointer/encointer-wallet-flutter/pull/1488 remove the impeller error, but the tests are not stable yet.

I think we are being victim of the buggy send process, when I try to run the integration tests locally, I get a forever spinning wheel at the registration.
So, maybe our tets will no longer be unstable once https://github.com/encointer/encointer-wallet-flutter/issues/1474 is implemented.

Haha, one more reason to tackle that one....

There were numerous small issues, but I can say that the tests are stable again with #1527, except for #1534.


ocioconvert: pass arbitrary attributes to OIIO

We've had reason to experiment with actually using ocioconvert in our
pipeline, but discovered that we needed to pass attributes to
OpenImageIO, largely to reduce bitdepths/image quality settings from the
maximum.
Submitted on behalf of Peter Hillman.

I don't think it complicates the example, as it's mostly a single, commented block of code that was added - moving the OIIO code out of main() would leave it almost entirely empty!
Pedantically, I found it slightly confusing how the three argument types were done - particularly the i var to iterate over the different types of arguments. Also there's no validation on the values, so --float-attribute nonsense=a would do something unexpected..
Both of those changes probably would clutter things up, in which case moving it to another function might work.. Maybe the main() would just call iterate over the parsed-oiio-args and call spec.attribute(name, value)?

float DPX

Huh, I thought DPX could only store integer values? Although I guess you can shove float'y bits in the pixel values, I can't see how anything could possibly read this

Awesome!
On Wed, Feb 8, 2012 at 9:57 AM, Larry Gritz <
<EMAIL_ADDRESS>
wrote:

FYI, I just submitted a review for OIIO that adds color conversion to
oiiotool:  https://github.com/OpenImageIO/oiio/pull/225
This may be the one that makes ocioconvert more or less obsolete.

Reply to this email directly or view it on GitHub:
https://github.com/imageworks/OpenColorIO/pull/219#issuecomment-3872298