Whitespace checking isn't working

When I typed in spaces and saved it, the whitespaces isn't shown.

airline displays trailing [63] which means "you have trailing whitespace on line 63".
Could you clarify what's the issue?
You can find docs here https://github.com/bling/vim-airline/blob/master/doc/airline.txt#L359

I know what does trailing [63] means, but it doesn't show the visualisation of the trailing whitespace like what it show.

airline doesn't modify anything but the statusline (and tabline).
Check this for ways to visualise unwanted spaces http://vim.wikia.com/wiki/Highlight_unwanted_spaces
In the screenshot I believe bling has used listchars (see details in the wiki link above).

Does the airline modify the colorscheme?

Vim's colortheme - no
Statusline's colors - yes

Can you suggest any good colorscheme theme. And why is there a solarized theme in airline?

colorschemes are completely subjective, so you should pick the one you like most -- you'll be staring at it all day.
as for solarized, why not?  it's a popular theme so it makes sense to have first-class support in airline for it (as with all other popular themes).

What about the solarized theme in airline?
Why does the image has a lighter colour to show whitespace?
Is there any pages showing different colourscheme support in airline?
I am now using base16-solarized, but why isn't the theme for base16 working? And why is the sidebar showing weird colour?
![http://s24.postimg.org/56t6fhk7n/term.png, "The terminal image"]

base16 requires you to configure your terminal to display the colors properly.  please check the official base16 documentation.

@pickfire First, to visualize the trailing whitespace, you'll want to look at the  listchars option in Vim.  It also mentions the highlight groups used for the various characters you can set up:

The "NonText" highlighting will be used for "eol", "extends" and "precedes".  "SpecialKey" for "nbsp", "tab" and "trail".

To actually see the characters, you need to turn the list option on.
As an example, I use this in my vimrc file:
set listchars=tab:▸\ ,trail:·,extends:>,precedes:<,nbsp:·
if &termencoding ==# 'utf-8' || &encoding ==# 'utf-8'
    let &listchars = "tab:\u21e5 ,trail:\u2423,extends:\u21c9,precedes:\u21c7,nbsp:\u26ad"
    let &fillchars = "vert:\u254e,fold:\u00b7"
endif
set list

You could also spell it this way (as long as your file is encoded with UTF-8):
set listchars=tab:▸\ ,trail:·,extends:>,precedes:<,nbsp:·
if &termencoding ==# 'utf-8' || &encoding ==# 'utf-8'
    set listchars=tab:⇥\ ,trail:␣,extends:⇉,precedes:⇇,nbsp:⚭
    set fillchars=vert:╎,fold:·
endif
set list

You don't need to set up all the listchars that I am... you can just do trailing, if it's the only one you care about.
It also seems that you are getting confused about color schemes.  Airline has colorschemes for the statusline, not your whole Vim experience.  Solarized support is there so that folks who like solarized can use that them to get a statusline that fits with their colorscheme.  Over on the Neovim project, we had a big discussion about default colorschemes, and you can see some of the ones folks suggested: https://github.com/neovim/neovim/issues/793
As @bling said, it's a personal choice.  Choose what suits you best.  Some, like Base16, do require having somethings setup correctly.
All of this said, I think this ticket should be closed as everything is working correctly in Airline.

agreed.

Thanks. I hope you can provide some information in the FAQ for newbie who can't differentiate between theme and colorscheme.


Support for 1.20.2

Hey,
I would like to use the mod on my Minecraft server unfortunately it is only available for 1.20.1 but I am on 1.20.2.
Is there a possibility that the mod gets an update?

hello my friend, for now, im not able to do the update. Sry bro hope you find someone he can do it


Mesos Stdout Missing for Compose Services

I tried updating to the latest check-in however when I now look at my Mesos stdout now I no longer see any output from my docker-compose services. I only see output from the compose-executor. Previously I would get logging output from the compose-executor and my Compose services. Did something intentionally change to make this happen?

We definitely want to support this. Will look into it. Consider this as a bug.
Thx
Sent from my iPhone

On Nov 17, 2015, at 7:41 AM, Kurt Kopchik<EMAIL_ADDRESS>wrote:
I tried updating to the latest check-in however when I look my Mesos stdout now I no longer see any output from my docker-compose services. I only see output from the compose-executor. Previously I would get logging output from the compose-executor and my Compose services. Did something intentionally change to make this happen?
—
Reply to this email directly or view it on GitHub.


the test script error

https://github.com/getsentry/sentry-php/blob/b1d1d215c732ca5732257d6fb258eca9261b9e9e/bin/sentry#L26
it was said to support php5.3. but according to the manual

Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error.

I think this should be optimized

@HakureiMarisa would you like to open a PR with your fix so we can get it merged and close this issue?


Require Java 8 runtime

Some reasons to require a Java 8 runtime: #3745, #3595, #3710.
Related mailing list discussions:

https://groups.google.com/d/topic/druid-development/6I9uhO3ZIeQ/discussion
https://groups.google.com/d/topic/druid-user/aTGQlnF1KLk/discussion

Things we should verify first:

Embedding inside Spark still works, @drcrallen to verify
Embedding inside Tranquility still works, @gianm to verify

It's also possible to use Java 8 source and bytecode but I think that's a separate discussion, that IMO should come with some patches that use the new Java 8 features to good effect.

See https://github.com/druid-io/druid/pull/3328

Just to be clear, I'm not intending to drive a change to Java 8 source and bytecode. Just requiring Java 8 JVM at runtime so we can use dependencies that do use Java 8 bytecode (like newer versions of Jetty and DataSketches).
I would be OK with changing to Java 8 source and bytecode as well if the community thinks it's worth it, but that is not what I meant to propose. It's

IMO a proposal to switch to Java 8 source should involve some patches that use the new Java 8 features to good effect.

I read through the druid-user poll and the two common themes for the "keep java 7 support" vote seem to be:

Concerns about Scala compatibility (we already captured that in this ticket)
Concerns about Hadoop, since a few people are stuck on Java 7 based Hadoop clusters that are seemingly out of their control to upgrade. I can see this being the case for centrally managed Hadoop clusters, especially if the team behind it doesn't upgrade very often.

I'm not sure if this is feasible, but we might be able to keep the Hadoop indexer working on Java 7 runtimes even as the services move to requiring Java 8. The Hadoop indexer shouldn't need Jetty and if we're careful about what other Java 8 dependencies we add then we could possibly make that work.

@gianm / @dclim do you guys have a test environment setup that could capture a java7 hadoop environment?

From Cloudera's documentation (https://www.cloudera.com/documentation/enterprise/5-3-x/topics/cdh_cm_upgrading_to_jdk8.html): "Cloudera does not support a rolling upgrade to JDK 1.8.   Pretty unfortunate.

@drcrallen our "hadoop gauntlet" tests for Apache Hadoop distros run in jdk-7u71. I'm not sure about our tests for other distros, but if the Apache ones work then that's a good sign.

Closed by #3914


Recommend using best practices

In looking through some of the code, such as Initalize-Toolkit.ps1 I see a lot of aliases. I'd like to recommend replacing aliases with complete cmdlet names per the community's scripting best practices.

This module is deprecated, please use https://github.com/dsccommunity/JeaDsc instead. If this is still an issue in JeaDsc then please open an issue in that repo.


On install, I think the instructions are missing a step.

I think the instructions may want a ./Tailscale.sh start
[/share/CACHEDEV1_DATA/.qpkg/Tailscale] # ./tailscale -socket var/run/tailscale/tailscaled.sock up
failed to connect to local tailscaled; it doesn't appear to be running (sudo systemctl start tailscaled ?)
[/share/CACHEDEV1_DATA/.qpkg/Tailscale] # systemctl start tailscaled
-sh: systemctl: command not found
[/share/CACHEDEV1_DATA/.qpkg/Tailscale] # ./Tailscale.sh
Usage: ./Tailscale.sh {start|stop|restart|remove}
[/share/CACHEDEV1_DATA/.qpkg/Tailscale] # ./Tailscale.sh start
[/share/CACHEDEV1_DATA/.qpkg/Tailscale] # ./tailscale -socket var/run/tailscale/tailscaled.sock up

To authenticate, visit:

Hi @obra - usually QNAP starts the Tailscale service itself after installation. Are you sure that the installation succeeded? Does Tailscale start automatically after QNAP reboot?

It is late, but there was a similar problem in #44. When the user installed the QVPN package, the Tailscale package started working. The problem is that on older device/QTS we do not have the necessary kernel module for the Wireguard tunnel to work, but QVPN package installs it. Newer QTS includes it by default.
Could you try installing QVPN package and reporting if it fixed?

I encounter a similar issue:
/tailscale -socket  /tmp/tailscale/tailscaled.sock up

failed to connect to local tailscaled (which appears to be running as tailscaled, pid 6113). Got error: Failed to connect to local Tailscale daemon for /localapi/v0/status; not running? Error: dial unix /tmp/tailscale/tailscaled.sock: connect: no such file or directory

However, when I try to bring tailscale up via Tailscale.sh, I get another error:
./Tailscale.sh: line 18: [: -d: binary operator expected

Changing if [ test -d /proc/${PID}/ ]; then to if [ -d /proc/${PID}/ ]; then in Tailscale.sh resolves that error.
However, the socket is located unter /tmp/tailscale/tailscale.sock instead of the path mentioned in the first comment.
Running
./tailscale -socket /tmp/tailscale/tailscaled.sock up

was then finally successful for me.


Syntax tree transformation improvements - part 1

The transformations now use OnLocalNameDeclaration and OnLocalName for all locally declared symbols.
The change also introduces OnItemNameDeclaration and OnItemName to easily modify item named in user defined types. These methods along with OnAbsoluteLocation and OnRelativeLocation are virtual methods in the SyntaxTreeTransformation itself; i.e. this PR moves the common handles that are used by several kinds of nodes into the syntax tree transformation, rather than having them live in node specific transformations.
Here is the second half of the changes, that updates the data structures used to represent lambdas: https://github.com/microsoft/qsharp-compiler/pull/1332

The build seems to be failing a) due to a security alert that is unrelated to this PR, b) some tests are indicated as failing - that is odd since locally they pass fine, and they also passed fine in CI a couple of days ago when I put up the PR. I'll double check that shortly.

Closing this in favor of https://github.com/microsoft/qsharp-compiler/pull/1332, that contains this change as well as the second half to update the lambda data structures. Thanks for the reviews so far - the feedback is incorporated in https://github.com/microsoft/qsharp-compiler/pull/1332 and please continue there.


Make serialization non-dependent on serde

Currently, dialectic-tokio-serde requires precisely a Serialize + DeserializeOwned bound. This can be made more generic, to enable, for instance, custom serialization approaches or whitelists of allowed types.
At present, the Serializer and Deserializer traits are:
pub trait Serializer {
    type Error;
    type Output;
    fn serialize<T: ?Sized + Serialize>(&mut self, item: &T) -> Result<Self::Output, Self::Error>;
}

pub trait Deserializer<Input> {
    type Error;
    fn deserialize<T: for<'a> Deserialize<'a>>(&mut self, src: &Input) -> Result<T, Self::Error>;
}

This could be changed to:
pub trait Serializer {
    type Error;
    type Output;
}

pub trait SerializerFor<T>: Serializer {
    fn serialize(&mut self, item: &T) -> Result<Self::Output, Self::Error>;
}

pub trait Deserializer<Input> {
    type Error;
}

pub trait DeserializerFor<Input, T>: Deserializer<Input> {
    fn deserialize(&mut self, src: &Input) -> Result<T, Self::Error>;
}

This would separate the crate entirely from a dependency on Serde, allowing downstream crates to depend on it if necessary, but also to use their own serialization strategies while still sharing the framing/encoding logic in this crate. Additionally, it allows for the creation of wrapper Serializer/Deserializer structs which wrap an existing such Serializer/Deserializer but restrict its instance further, for instance to enforce a whitelist of permitted types.

One useful thing this would allow: a parameterizeable allowlist serializer.
First, this setup would let you define a new marker type and enumerate a specific set of types which are allowed on the "allow list" denoted by that type.
/// A marker type standing in for allowing every type to be serialized/deserialized.
pub struct AllowAll;

/// A marker trait that indicates whether or not the type `T` belongs to the allow-list `List`.
pub trait Allowed<List = AllowAll> {}

/// The `AllowAll` marker type allows all types.
impl<T> Allowed<AllowAll> for T {}

You would use it like so:
mod sealed {
    pub struct OnlyByteAndBool;
}

impl Allowed<u8, sealed::OnlyByteAndBool> {}
impl Allowed<bool, sealed::OnlyByteAndBool> {}

The sealed module being non-exported means nobody can add to the allow-list outside the crate, and in this example, only u8 and bool would ever belong to that list.
Then, this abstraction can be used to implement a general restriction mechanism for serializers/deserializers:
#[repr(transparent)]
struct Restricted<T, List = AllowAll>{
    inner: T,
    list: PhantomData<fn() -> List>,
}

impl<S: Serializer, List>  Serializer for Restricted<S, List> {
    type Error = S::Error;
    type Output = S::Output;
}

/// The where-clause on this impl restricts serialized types
/// to the allow-list specified in the phantom type
impl<List, T, S: SerializeFor<T>> SerializerFor<T> for Restricted<S, List>
where
    T: Allowed<List>
{
    fn serialize(&mut self, item: &T) -> Result<Self::Output, Self::Error> {
        self.inner.serialize(item)
    }
}

impl<D: Deserializer, List>  Deserializer for Restricted<D, List> {
    type Error = S::Error;
}

/// The where-clause on this impl restricts deserialized types
/// to the allow-list specified in the phantom type
impl<List, Input, T, D: DeserializeFor<Input, T>> DeserializerFor<Input, T> for D
where
    T: Allowed<List>
{
    fn deserialize(&mut self, src: &Input) -> Result<T, Self::Error> {
        self.inner.deserialize(src)
    }
}

Also, with the unstable negative_impls feature, you could use the same technique to construct a deny-list!

An alternate design would be to build the allow-list functionality directly into the SerializeFor and DeserializeFor traits, making them take an extra defaulted-to-AllowAll type parameter. This would mean that serializers and deserializers would not need to be wrapped to grant them this functionality.

As a separate issue, if this functionality is merged, the name of the crate is slightly misleading: dialectic_tokio_codec would be more appropriate. Should we deprecate the former name, keep it, something else?

Oh! A better design would be to use the allow-list construct to restrict arbitrary senders/receivers! Make a wrapper around a sender or receiver that uses the same technique, and it's more general than merely for serialization.


feat: add shadow-dom support

we need to add some documentation, the plugin just replace the @unocss-import with the generated css
supersedes #222 (shadow-dom part)
closes #169

we should also add an example with vanilla/typescrypt web component on index.html page for example.
@antfu how about support for ::part, ::theme and  :explainer here on unocss?

We should review this and maybe change the plugin name, I Will explore some other approachs like finding style tag instead just replace the import comment.
I Will Mark it as draft.

adding initial support for ::part...

The solution will work only with vite, and we need to do it in 2 phases: on pseudo and on the plugin (unless I'm missing somehting we can change internally, just putting here my thougths). Maybe we can apply another approach.
The problem with ::part is that we cannot style shadow dom parts using css selectors, we need to use the custom element name as prefix for the ::part, for example, this will work:
my-another-element::part(cool-part) {
  background-color: #fefefe;
}

while this will not:
.part-\[cool-part\]\:bg-yellow-300::part(cool-part){--un-bg-opacity:1;background-color:rgba(253,224,71,var(--un-bg-opacity));}

Another problem with the initial approach is when we have more than one style to apply: the previous css style was generated by this markup:
export let MyElement = class extends LitElement {
  ...
  render() {
    return html`
      ...
      <my-another-element class="part-[cool-part]:bg-yellow-300">Testing css part</my-another-element>
      ...
    `;
  }
  ...

As you can see you can also add another parts on my-another-element  class, but then we have the problem to replace all pseudo parts with the component name on the plugin and we cannot do that (can be done, but the resulting code will be huge).
So, to avoid previous problem, I think the best way to support ::part will be via shorcuts and so problem solved.
Finally, for ::part we can also use it with pseudo elements like :focus, :hover, ::placeholder (see last link bellow), but we can address it later (if we can do it).
For context:

https://css-tricks.com/styling-a-web-component/
https://meowni.ca/posts/part-theme-explainer/

@antfu @edwardnyc @chu121su12 @hannoeru I need some hints/ideas/review for this and sorry to bother you all, I'll push the initial support for ::part in a few minutes

about the ::part when multiple instances configired,  I'll try to fix using :nth-of-type(n) selector, this is the way it should work

Hi, is there an example in documentation of how we can use UnoCSS with lit framework?


Issues on G531GW (ROG Strix Scar III)

I recently installed Ubuntu 19.10 on my Asus Strix Scar III (Model Number G531GW) and the lighting sometimes works and sometimes it doesn't. My keyboard id is 0b05:1866
Following is a complete list of issues I have tracked so far (I don't know which ones will be useful):

Just after installing Ubuntu 19.10, my charger was not being detected anymore. At the same time I installed rogauracore which didn't work.

I was able to fix the charger problem by long pressing the power button (from Windows 10) for 35 seconds (note that for this to work, the charger needs to be disconnected from the laptop first; keep a note of this, it is going to be useful for the lighting later on) but the lighting still did not work; at that point of time I had only tried few of the options.

I did not use my laptop for 24 hours (was not connected to power source all this while; was at 100% charge though when I last switched off) and this time when I switched on my laptop the lighting surprisingly worked (no idea how) but I was only getting RED; tried changing the colors but did not work

Later on the same day I noticed an unusual behavior : the colors were actually changing after applying for example sudo rogauaracore green but for that to work, I had to disconnect the charger first, power off the laptop, wait for 2-3 minutes, again switch it on and THEN connect the charger (any change of sequence of the events would not make it work; a restart also does not work; it needs to be powered off)

During this entire experimentation phase of 4 days just once it happened that the light worked but the keyboard did not work (a few hard power offs solved it).

Finally again after 34 hours of rest (no power source to laptop; battery at 100% charge) the commands finally started working! I mean proper working (you type the command and the lighting immediately changes). However any breathing and rainbow commands were not working under any circumstances. All others worked perfectly like a charm (I mean type the commands and change the colors).

Yesterday, I connected my Samsung Galaxy Buds over Bluetooth and everything went wrong from there : the lighting stopped, the charger stopped, the WiFi stopped. Disconnecting and switching off Bluetooth and restarting the computer fixed the WiFi but not the other 2 issues.

I retraced all the above steps many times and got the charger working in the first attempt but not the lighting system. Now finally the lighting system works but only white and red and that too I need to power off my computer, disconnect the charger, wait for 2-3 minutes and switch it back on. None of the other colors are working.

My BIOS settings : UEFI boot enabled (tweaking this doesn't affect the lighting system in my experiments, cannot say for sure), FAST BOOT disabled
I know this is NOT A HARDWARE ISSUE or any issue with the internals of my laptop because everything works well on Windows no questions asked so either it is to do with un-supported hardware or with the inherent issues of Ubuntu 19.10 iteself
However, if it worked once, why is not working now and more importantly, how do I make it work?

Intresting facts!
I own a ROG Strix Hero III, I didnt have these kind of problems.
For me only the rainbow and multi_static commands are not working.
I am using Arch Linux with this kernel 5.4.2-arch1-1.
What kernel do you use?

Right now even the red is not working for me anymore. Only the white light is working (well, at least the lights are working!) and my kernel is 5.3.0-24-generic

Have you tried other kernels?

No. I haven't. Which one do you suggest?

As I told you I use 5.4.2-arch1-1 and I didnt have any issues. You should try 5.4 kernel.

So is it possible to have Ubuntu 19.10 with 5.4.2-arch1-1 kernel? If yes, could you please send me the link for the same? The ONLY reason I am using Ubuntu is because of Deep Learning and the massive support it enjoys from all the developer communities, APIs and frameworks. And I chose 19.10 because Ubuntu 18 LTS has issues with the RTX series GPUs (For me, everything works butter smooth right out of the box albeit the lighting). I am worried changing my kernel might break support for deep learning or have issues with GPUs etc. and I can't sacrifice functionality for aesthetics.
All that said, it would be a welcome change to have everything working just like in Windows.

You could update your kernel to 5.4.2, but you dont need the arch branded kernel.
I'm not sure it's because of the kernel, could be. Are the asus kernel modules loaded, what is the output of lsmod | grep asus.
Here is mine:
asus_nb_wmi            28672  0
asus_wmi               36864  1 asus_nb_wmi
sparse_keymap          16384  1 asus_wmi
rfkill                 28672  10 asus_wmi,bluetooth,cfg80211
battery                24576  1 asus_wmi
wmi                    36864  3 asus_wmi,wmi_bmof,mxm_wmi
asus_wireless          20480  0
i8042                  32768  1 asus_nb_wmi

You could update your kernel to 5.4.2, but you dont need the arch branded kernel.
I'm not sure it's because of the kernel, could be. Are the asus kernel modules loaded, what is the output of lsmod | grep asus.
Here is mine:
asus_nb_wmi            28672  0
asus_wmi               36864  1 asus_nb_wmi
sparse_keymap          16384  1 asus_wmi
rfkill                 28672  10 asus_wmi,bluetooth,cfg80211
battery                24576  1 asus_wmi
wmi                    36864  3 asus_wmi,wmi_bmof,mxm_wmi
asus_wireless          20480  0
i8042                  32768  1 asus_nb_wmi

I do not have access to my laptop right now so I will do it by tonight and post an update

I'm not sure if I should raise this as a separate issue, so for now I'll chime in on here.
I think I have the opposite problem to many people here. I'm running ubuntu 19.10 and I want to turn off the keyboard backlights but nothing seems to work. I've had this issue on 18.04 and 19.04.
Are there any pieces of debug information that I could post to help figure out why I can't turn the backlight off?
When I run sudo ./rogauracore brightness 0 to turn the backlight off I get a 0 return code with no output and no change in the backlight. I have also tried to change the backlight to a static colour and that has the same result.
The output of lsmod | grep asus is:
asus_nb_wmi            28672  0
asus_wmi               32768  1 asus_nb_wmi
sparse_keymap          16384  1 asus_wmi
asus_wireless          20480  0
wmi                    32768  3 asus_wmi,wmi_bmof,mxm_wmi
video                  49152  2 asus_wmi,i915

I am running rogauracore-1.2.0 downloaded as a tar archive from source.
I am more than happy to do more complex debugging, but I might need some slight hand holding to get things going.

@CarwynNelson What is your vendor ID and product ID?

@CarwynNelson What is your vendor ID and product ID?

This may sound like a daft question, but how do I find that out?
I can't believe I forgot to mention this in my original post but I am also running a Strix Scar III, would that result in a different vendor or product id?

I actually own a Strix Hero III, but the laptops are almost identical.
You can use lsusb and search for ASUSTek Computer.
Check if it is listed here
https://github.com/wroberts/rogauracore/blob/master/src/rogauracore.c#L452

So I ran the command above and this is the output
➜  ~ lsusb | grep -i asus
Bus 001 Device 002: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device

So I have to assume that my laptop is supported.
I'm going to see if I can compile with verbose mode on and see what output I get.
I've also noticed people posting about booting into windows and monitoring stuff on Wireshark. I'm more than happy to do that as I still have my windows partition about, but I would need a little guidance as Wireshark has always been a bit alien to me.

So running rogauracore with verbose mode on nets the below output. I can't see anything that would indicate an issue.
➜  rogauracore git:(master) ✗ sudo ./rogauracore brightness 0
parse speed 0
args:
color1 48 7 172
color2 41 64 127
color3 0 0 192
color4 10 172 41
brightness 0
single_static
constructed 1 messages:
message 0: 5a ba c5 c4 00 00 00 00 00 00 00 00 00 00 00 00 00
Initialising libusb
Initialised libusb.
Found 4 USB devices.
Checking device 1d6b:0003, address 1
Checking device 0b05:1866, address 2
Found ROG Aura Core keyboard.
Opened USB device.
Auto detach kernel mode set.
Got configuration descriptor.
Found 3 interfaces on the USB device.
Claimed interface 0.
Successfully sent all messages.

The below line wasn't giving me confidence that the keyboard device was being opened, so I made a small patch
# Before
Found ROG Aura Core keyboard.

# After
Found ROG Aura Core keyboard model 0b05:1866, address 2

So far everything looks correct to me.

Hi, Strix Scar III is my machine (G731GW). Mind trying the changes in #26? They use a special command for rainbow. The brightness command should now be the same as in master, however.

Sorry @JoshDreamland for the late reply.
I did write out a reply but for some reason it hasn't been submitted.
I tried out the changes in #26 and unfortunately it did not work, I get the same results. I've enabled verbose mode in your patch and I'm posting the output here to see if that proves useful at all.
I would be happy to do some packet sniffing under windows if that would help, but I would need a little bit of hand holding as that is quite new to me.
➜  rogauracore git:(retool) ✗ sudo ./rogauracore brightness 0
Reading argument 1 (brightness)
parse brightness 0
Parsed as 0
args:
[unspecified][unspecified][unspecified][unspecified][unspecified][unspecified][unspecified][unspecified]single_static
constructed 1 messages:
message 0: 5a ba c5 c4 00 00 00 00 00 00 00 00 00 00 00 00 00
Initialising libusb
Initialised libusb.
Found 5 USB devices.
Checking device 1d6b:0003, address 1
Checking device 0b05:1866, address 3
Found ROG Aura Core keyboard.
Opened USB device.
Auto detach kernel mode set.
Got configuration descriptor.
Found 3 interfaces on the USB device.
Claimed interface 0.
Successfully sent all messages.

Do any of the other commands work for you? sudo rogauracore black is another way of doing what you want, if the single_static message is understood by your keyboard.

Alternatively, if you have access to a Windows installation, you could do the same.

Could you point me towards that issue? Maybe I can leave some comments there.
I still have the default windows install around from ASUS so I'm more than happy to do some packet capture; I'm just not exactly sure how to do that. I'm assuming it involves wireshark but i've never quite got to grips with it.
Any basic steps to getting these packet captures would be greatly appreciated.

The issue I was referring to is #23. The tool is also of no use on CJ's hardware, so I was thinking maybe it used a different protocol.
That said, while I wasn't paying attention, someone by the name of Luke showed up and posted a ton of Wireshark dumps in #33. Turns out that on Luke's machine, this tool works intermittently. I'm now thinking there is interference between asus-wmi and rogauracore, sometimes ending with only rogauracore functioning (as on Will's machine), and sometimes ending with only asus-wmi functioning (possibly what's happening on your machine, Luke's machine, or even CJ's machine).
I'll need more information before I can draw that conclusion. Do you have asus-wmi installed?

Do you have asus-wmi installed?

I wish it was that, but unfortunately I do not have asus-wmi installed to my knowledge. I wasn't actually aware it was a thing until your comment.

It's a kernel module. lsmod | grep asus should list it if it's installed. Otherwise, modprobe asus-wmi would load it. If you actually don't have it installed, try installing it. It may support your keyboard natively.

Looks like asus_wmi is enabled.
$ lsmod | grep asus
asus_nb_wmi            28672  0
asus_wmi               32768  1 asus_nb_wmi
sparse_keymap          16384  1 asus_wmi
asus_wireless          20480  0
wmi                    32768  3 asus_wmi,wmi_bmof,mxm_wmi
video                  49152  2 asus_wmi,i915

Before turning to rogauracore I was trying to use the built in LED controls to turn the backlight off, but that wasn't working so I have I am assuming that my device is not supported by asus-wmi?

Safe to assume. It also doesn't support my device, but it doesn't interfere with rogauracore on my device, either. For me, it doesn't recognize any of the special keys on my keyboard except the volume keys, but it can control my display backlight, so between rogauracore and asus_wmi, I'm fully covered.
If you're comfortable doing so, I'd suggest blacklisting that module just long enough to see if rogauracore works without it. It's technically possible to screw something up doing this, so make sure you can boot into a plain TTY or have a rescue CD handy before you go blacklisting modules (you'll need to boot up and revert this change if something stops working). Anyway, to do this, just create a file in modprobe.d, eg, /etc/modprobe.d/asus.conf, and add blacklist asus_wmi to it. That should cause asus_wmi to not be loaded next reboot, which would tell us with certainty whether the module was interfering with rogauracore.
After you're done, just delete that new config file and things will go back to the way they are now. I'd recommend reverting it unless it turns out asus_wmi is doing more harm than good.

I've been meaning to get back to this issue for a while and do some more debugging. I really have no idea why (i haven't updated rogauracore) but this has just randomly started working for me.
Maybe some underlying system update has made it work? I wish I could provide more information, and I will if I can - but this may well of resolved itself?

It looks like the docs were updated with a new(?) command to "wake up" the keyboard.
sudo ./rogauracore initialize_keyboard

This worked perfectly for me and I am now able to use rogauracore to control my keyboard.


Solution for raised hands order

https://platform-euhack21.bemyapp.com/#/projects/607f14e20e05120019f18de7

Should the PR go to another branch than master?


Debian

Thanks for writing up these best practices! Indeed the raised topics are the same for Debian and derivates / the .deb|dpkg world.
A few more issues on how to make our lives easier are mentioned in @alexm's talk at YAPC::EU 2016 (numbers and URLs are partly outdated):

https://perl-team.pages.debian.net/docs/yapc-europe-2016/from_debian_with_love.pdf
https://www.youtube.com/watch?v=BrdwNvly_XY

I'm also happy to provide some text for the Debian paragraph near the bottom, I'm just not sure what you're looking for exactly :)

Thanks! I will add a link to that.
I thought it would be useful to have some links to the places where the debian packages are hosted, and which tools you are using.
Some links in the PDF are indeed outdated. Could you provide new links?

Sure. Let's go through the PDF:

Slide 27: https://anonscm.debian.org/cgit/pkg-perl/ → https://salsa.debian.org/perl-team/modules/packages/
Slide 29: PET is dead. tracker's team view is kind of a bit of a substitute: https://tracker.debian.org/teams/pkg-perl/
Slide 32: Git repo: http://anonscm.debian.org/cgit/pkg-perl/packages/libFOO-BAR-perl.git → https://salsa.debian.org/perl-team/modules/packages/libFOO-BAR-perl
Slide 34: https://pkg-perl.alioth.debian.org/ → https://perl-team.pages.debian.net/
Slide 35: https://pkg-perl.alioth.debian.org/docs/yapc-europe-2016/ → https://perl-team.pages.debian.net/docs/yapc-europe-2016/ and same for other two links
Slide 37: https://pkg-perl.alioth.debian.org/howto/RFP.html → https://perl-team.pages.debian.net/howto/RFP.html

The general problem with documenting Debian is that there is no common maintainership (the Debian Perl Group maintains 3/4 of the packaged CPAN distributions) and also no shared view on all of them and no required VCS etc. So the slides talk mainly of the Debian Perl Group and our packages …
As for tools, dh-make-perl is still the central one to convert CPAN distributions to debian packages, and we use dpt (in the pkg-perl-tools package) a lot: https://tracker.debian.org/dh-make-perl | https://tracker.debian.org/pkg-perl-tools and https://salsa.debian.org/perl-team/modules/packages/dh-make-perl | https://salsa.debian.org/perl-team/modules/packages/pkg-perl-tools .
Does this help? Anything specific you would like to me add?
(Maybe @alexm also has idea …)

Ok, I have added the links, and added more suggestios from @alexm`s presentation.
Thanks!

FWIW, I think that it may be useful to have a web page version of the presentation that is up to date, so here it is: https://perl-team.pages.debian.net/from-debian-with-love.html

On Mon, 25 Nov 2019 05:58:19 -0800, Alex Muntada wrote:

FWIW, I think that it may be useful to have a web page version of
the presentation that is up to date, so here it is:
https://perl-team.pages.debian.net/from-debian-with-love.html

Great, thanks @alexm!


Can not parse subcommand flatten

interactive-clap = "0.2.8"
interactive-clap-derive = "0.2.8"
#[interactive_clap(flatten)]
/// Specify a build command args:
build_command_args: build_command::BuildCommand,

error[E0609]: no field build_command_args on type &commands::deploy::InteractiveClapContextScopeForContract
--> cargo-near/src/commands/deploy/mod.rs:29:57
|
29 |         let file_path = build_command::build::run(scope.build_command_args.clone())?.path;
|                                                         ^^^^^^^^^^^^^^^^^^ unknown field
|
= note: available field is: contract_account_id
error[E0560]: struct commands::deploy::InteractiveClapContextScopeForContract has no field named build_command_args
--> cargo-near/src/commands/deploy/mod.rs:90:13
|
90 |             build_command_args,
|             ^^^^^^^^^^^^^^^^^^ commands::deploy::InteractiveClapContextScopeForContract does not have this field
|
= note: all struct fields are already assigned

fixed by #154 and #155


[Potential Bug]: find_buy_offer problem resp. Egosofts unlogic

Describe the Bug
find_buy_offer don't find trades.
I try to transfer ore from a station to a warehouse (which is not possible with egosofts unlogic)
the only mule which possible can do this is distrimule, but the find_buy_offer logic is endless crap and sometimes he found a trade and sometimes he does not.
the egosoft crap hide trade offers just after the trade reservation
To Reproduce
station (warehouse) with an buy and sell offer of the same ware
try to transport ware to that station with more than 1 transporter at the same time!
Possible solution
stop using find_buy_offer in scripts which uses static destinations
write your own logic which iterates over the targets and "manually" checks for free cargo space of specified ware.
the egosoft bullshit functions are not usable for such a usecase
Additional context
this 3 logs are all from the same time (with few seconds difference)
so no changing in the buy/sell setting at source/target station
miner 1
ScriptStart
gate distance from ship to source station: 9
source station #Sanctum Verge Factory
source station #Sanctum Verge Factory
this is the wareBasket
[ware.ore]
these are the sell offers
[trade.{0x86caL}]
Ore 94875
these are the customers
#Nopileos' Fortune VI Warehouse
these are all customer buy orders
miner 2
ScriptStart
gate distance from ship to source station: 1
source station #Sanctum Verge Factory
source station #Sanctum Verge Factory
this is the wareBasket
[ware.ore]
these are the sell offers
[trade.{0x86caL}]
Ore 94875
these are the customers
#Nopileos' Fortune VI Warehouse
these are all customer buy orders
miner 3
ScriptStart
gate distance from ship to source station: 3
source station #Sanctum Verge Factory
source station #Sanctum Verge Factory
this is the wareBasket
[ware.ore]
these are the sell offers
[trade.{0x86caL}]
Ore 99675
these are the customers
#Nopileos' Fortune VI Warehouse
these are all customer buy orders
Ore 78
static storage setting value. If no source ratios are above this, no trades will happen
0
source cargo ratio for Ore: 99.675
target cargo ratio for Ore: 0
found a trade: Ore 4800
supplyTarget for needFound2 block component #Nopileos' Fortune VI Warehouse

Both supply mule and Station mule will move mined wares. There is no chance that I will ever replace find_buy_offer with my own logic, as it will be a performance nightmare.

mimic support has typically worked fine as well.
Are you saying mimic support doesn't work for the distribution mule?
I would strongly recommend you do not attempt to replace find_buy_offer; if you're seeing some issue I am nearly 100% certain that it can be fixed in a different way. If find_buy_offer is broken then every vanilla trade script would quit working, and it will be fixed in a future release.

@Vectorial1024 Do you have any good well-researched bug report I could look at? Some mules have certainly gotten a lot more attention than others for mimicking behavior, and I admittedly have not spent a lot of time making sure mules and civ fleets work together (especially after mimic was added to vanilla). I myself haven't kept up playing over the recent several months, so it's possible that various changes have accumulated that are now causing intermittent issues.

hm my english must be worser than i thought....
to my initial problem:
the problem is, that if you have a station on which you buy AND sell a ware at the same time, egosofts unlogic remove the buy offer instantly if a reservation is added.
and what i saw so far, the buy offer comes back after the ware is completly sold.
thats why always only 1 transporter/miner can transport the ware to that station (warehouse), because after his ware reservation the buy offer is hidden
and thats why  find_buy_offer is crap and every mule script which uses that has the same problem.
mimic problem:
the only way to get such a system working is with the ingame "repeat order" feature.
but the repeat order feature does not work with mimic. so you have to manually add orders to all transporter/miners you want to use on the same route.
mimic works fine with mwe so far, but mwe uses find_buy_offer :)
but its ok, i changed the code of the distrimule, replaced find_buy_offer and now all miners on that route works as expected.
@Vectorial1024
"There should be great performance nightmare for the game to read, understand, and execute the extra code that you might have decided to write to replace find_buy_offers."
You know that a lot of movement features etc are written in that ugly script language?
I didn't wrote a functional identical replacement for find_buy_offer, i only wrote a replacement for the usecase in distrimule.
Greetings

Also, can you make a fork of this repo and push your changes to distribution mule, just in case I decide to take a deeper look, as I'm curious what you came up with.


Add pyproj.itransform function

An added function "itransform" similar to pyproj.transform, that enables transformation using generators and iterators. I needed that functionality in a project of mine, i wanted to read a file line by line, transform and write back to file, so a generator function seemed nice.
I feel it is more natural to process multiple points as tuples of (x,y,z) instead of separate arrays of coordinates.
I added a stride-version "_transform_sequence" function in _proj.pyx, using the underlying proj4.transform to accelerate itransform.

Thanks, i will commit it right away!

For test/test_itransform.py, please use the print functions for Python 3 compatibility.
You could throw in the from __future__ import print_function, with_statement.  The with statement won't work in Python 2.4, but I assume there are less concerns with the tests.

I just submitted PR #55 that requests pyproj to stop supporting Python 2.4 and 2.5.  I thought this might be of interest to you.

Very nice, this is indeed a welcome change! I will convert the code to support python 2.6+

Just changed itransform function to drop support for python 2.4 & 2.5 as proposed on #55

Should i close this request and build a fresh branch?

Github's merge can usually work with merging commits into your branch that have already been merged.  Sometime it GH doesn't know what to make of it.  Experienced user of git could probably take what you've done an squash it into one commit.   It is probably easier and cleaner if you just make a new PR on a fresh branch.

Reopening this as an updated pull request


Add a new option "loudness". When enabled, track_gain + normalisation…

…Pregain will be applied to the incoming packet values. If disabled, incoming packet values will remain pristine.

Basically, you want to disable normalization?

I'd like to make it optional, as it is in the mobile apps. I had a read through https://artists.spotify.com/faq/mastering-and-loudness and right now I think that's the best to do. And the audio quality is better in my system.


The bot do not login on facebook

Expected Behavior

the bot do not log in so get an error
Actual Behavior

<EMAIL_ADDRESS>start C:\Users\robbi\Desktop\miscord-master
node index.js

ERR! login Error retrieving userID. This can be caused by a lot of things, including getting blocked by Facebook for logging in from an unknown location. Try logging in with a browser to verify.
Error:
{ error: 'Error retrieving userID. This can be caused by a lot of things, including getting blocked by Facebook for logging in from an unknown location. Try logging in with a browser to verify.' }
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: node index.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
Steps to Reproduce the Problem

Specifications

Platform: windows
Version (can be found in package.json): 2.5.2
Node.js version (node -v): 9.5.0

You have literally written on your screenshot:
Try logging in with a browser to verify.

Have you considered doing that?
Also, what is your main language?

no do change the the bot inex.js yea ve do at to me all day

look to me say the error so be other github put all in code yea

@Bjornskjald ok I download it for and i get the bot get the back work


PR for  NAM-21 NAM-22 NAM-24

Awesome, looking good thanks Bruce.
Only outstanding is to update the working of the actual permission (according to spec) and then after we've received the DB from NWU, you must update "/Database Scripts/NAM24 - Permissions for Site Owners.sql" according to their custom roles for project & course sites.


Add extra_params to authHeader

This is required e.g. for signing parameters sent
in a POST body.

I need this, too. The author of this repo needs to actually maintain it, or hand it over to someone else who will.


Speed selection is incorrect.

I took my "non-working" into work and tested it with my Kvaser and Vector hardware.
Setting 500 kbps on the Arduino is actually transmitting at 250 kbps.
On both an Arduino Uno R3 with SeeedStudio CAN Shield v1.0 and an Arduino Nano w/standalone SPI CAN board

After further digging it looks like my CAN_BUS_SHIELD has an 8MHz oscillator. I will use one of the forks that have accounted for this.


[Tuning] Skip Thread-Binded Tasks

For tasks like cumsum where it has been scheduled before tuning pass, we need to skip this task instead of triggering a failure for lack of support. This PR introduced a similar check as in DefaultGPUSchedule pass to skip such tasks.
CC: @sunggg @jwfromm

Agreed, let me also send to unity for suggestions.


🐛 Fixed sitemaps with no content

Closes #14981

Taxonomy-specific sitemaps were invalid xml when there was no data
These invalid empty sitemaps were referenced in the index sitemap causing SEO tools to report errors

Hi again @jbfriedrich and thanks for sending over this PR. Thank you for taking the time to update the tests, that makes a huge difference when reviewing PRs.
Ths has now been merged 🎉 and will appear in the next release of Ghost - usually Fridays.
I'm not sure if you found these bugs through hacktoberfest, but I've added the accepted label to this PR as well to make sure it counts.
I've noticed another PR you have open so will head to that one next!


Expandable props unnecessarily required

Launching the documentation page via npm install && npm start results in several errors related to the Expandable renderer at http://localhost:3000/#/examples/basic-tree:
Warning: Failed prop type: The prop `onChange` is marked as required in `Expandable`, but its value is `undefined`.

Warning: Failed prop type: The prop `node.deepness` is marked as required in `Expandable`, but its value is `undefined`.

Warning: Failed prop type: The prop `index` is marked as required in `Expandable`, but its value is `undefined`.

It seems that onChange should be marked optional, but I don't know what to make of the other two missing props.

On a related note, there seems to be an inconsistency between the docs and source on what is passed to the onChange prop. The description of onChange from the docs reads:

to be invoked with the updated node and the update type

but in the "Basic Tree" example, it seems to be called with all of the nodes in the updated tree:
https://github.com/diogofcunha/react-virtualized-tree/blob/831ba2df74c4c09fd78e847aa250cfb4c367623c/demo/src/examples/Basic/index.js#L41-L43

Hi @eulertour
Those props are throwing because of the function getRenderedComponentTree that is used to get the stringified output, it's not important as it is specific to the example.
Those 3 props are required and the component wont work if they are not supplied.


Incompatible with F5 v14+

This project cannot be imported to F5 BIG-IP v14 and higher. Any chance it's going to be updated for compatibility, or any chance a future release of F5 will allow for backwards compatibility for projects that are still tcl based?
Thanks Bill.

@smilam there is work to bring this functionality native to BIG-IP at some point. contact me at<EMAIL_ADDRESS>for more info.


Enhancement/app split resolution

Separated the Client and Server into independent applications.
Client and Server each have their own package.json and tsconfig.json.
The developer should create a .env file in both the ./client and ./server folders.
The root (core) folder contains a package.json only to support concurrently and allow developers to run the client and server via one npm script if desired.
Updated all import paths.
Deleted miscellaneous unused files.
~Log4JS is not currently functional - appears to be lacking TS types.~ Log4js is restored in later commits

Fixes #196 #197 #214
Type of change

[x] Other 🗒 Enhancement

How Has This Been Tested?

[x] Witnesses.

Checklist:

[x] I have performed a self-review of my own code.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[ ] Any dependent changes have been merged and published in downstream modules.
[ ] I have reviewed the Security Best Practices Document.
[ ] I have followed the Naming Conventions Guide for my changes.
[x] I have ensured that my pull request title is descriptive.

Copying this over from #213:
As outlined in issue #214, we ran into some issues with our linting and formatting GitHub Actions workflow with this PR. Since we needed to shuffle some things around to fix this problem anyway, I took the opportunity to handle some dev-experience debt that we've been talking about for a while.
Changes:
1. updated the workflow so that it properly targets the client and server directories separately

also updated the client directory's tsconfig to include all client files in order to resolve some eslint parsing errors. This may need some revisiting in the future.

2. updated the workflow to fail on errors rather than auto-fix issues and apply them itself

the workflow is now named Linting Workflow

This also caused some sub-issues, as it seems that the old workflow was disguising several eslint rules that we had set to warn - mainly the rule disallowing use of console methods (log, error, etc). Since the new workflow fails even on warnings - which I agree with for reasons mentioned in this article - I had to make some changes to the code. I attempted to make them as unobtrusive as possible:

commented out several console.log calls that triggered the no-console rule

added underscores to variables that began triggering the no-unused-vars rule once the console logs using them were commented out and added an option to the eslint rules to inform it that it should ignore variables matching this pattern

Got it up and running. Looks great guys.


deftest fails with nested macros

When writing tests for complex data structures it can be convenient to write tests that only pass in the relevant data, and have a wrapper that sets up the structures.
We can't use a function for this purpose because judge/deftest is a macro and we want to test against the the value of the parameter, not the name of the parameter.
Using our own wrapping macro causes an error: error: expected integer key for buffer in range [0, 1878), got -4.
I think line 11 in init.janet:
(def pos (tuple/sourcemap (dyn *macro-form*)))
doesn't work with nested macros, although I don't know why it would return a negative number.
Example:
(import judge)

(defn somefunc [n] (+ n 1))

(defn complexcalculation [n] n)

(defmacro- testwrapper [actual expected]
 ~(judge/test (somefunc ,(complexcalculation actual)) ,expected))

(testwrapper 1 2)

Expected output:
1 passed

Actual output:
# src/example.janet
error: expected integer key for buffer in range [0, 1878), got -4
  in get-form-length [/project/.jpm/jpm_tree/lib/judge/rewriter.janet] on line 37, column 20
  in get-form [/project/.jpm/jpm_tree/lib/judge/rewriter.janet] on line 98, column 12
  in <anonymous> [/project/.jpm/jpm_tree/lib/judge/runner.janet] on line 143, column 36
  in _thunk [src/example.janet] (tailcall) on line 10, column 1
  in dofile [boot.janet] (tailcall) on line 2934, column 7
  in source-loader [boot.janet] on line 2945, column 15
  in require-1 [boot.janet] (tailcall) on line 2965, column 18

0 passed

Note:
testwrapper expands as expected:
(judge/test-macro (testwrapper 1 2) (judge/test (somefunc 1) 2))

Hey! I’m away from my computer today so I can’t test this, but does https://github.com/ianthehenry/judge#custom-testing-macros work for you? I’m just realizing there’s no private equivalent but the macro is pretty trivial to adapt if you look at the source.

D'oh - my bad! Yes, (defmacro* works, thanks.


Ensure copied annotations are fixed (fixes #600)

Case where pages from a main input without /AcroForm key are duplicated was omitted

Can you provide a verbal description of how you generated the new test files? The fix looks right, but I want to make sure the tests are right, and a description could save me some detective work.

Once you provide your description, I'll download and check the test files to make sure they look right, or you can just include in your description, "I modify file X by ...., then ran this command to get the output file, then checked the output file to make sure it ...". To answer your other question, I expect that this will be more fully addressed with the pages work, but this is based on comments on #600 and the pages tag since this issue was paged out of my brain. In any case, I intend to accept this PR with the requested information.

The input 'annotations-no-acroform.pdf' is 'form-fields-and-annotations.pdf' with the /AcroForm entry removed from the root dictionary and run through 'fix-qdf'. The output files where generated using
qpdf --qdf --static-id --no-original-object-ids  annotations-no-acroform.pdf --pages . 1,1 -- annotations-same-file.out.pdf
qpdf --qdf --static-id --no-original-object-ids minimal.pdf--pages annotations-no-acroform.pdf 1,1 -- annotations-foreign-file.out.pdf

In the output files the /Annots arrays for the the duplicated pages ((5 0) and (6 0) / (4 0) and (5 0) respectively)  do not share any common objects.

Thanks. I'll review by pulling these down and looking at them, and if all is good, I'll go ahead and merge.


FR: Use hermetic docker-credential-helpers for auth

Today, when pulling an image, rules_oci calls docker-credential-xxx from a script, which requires the credential helper to be discoverable from PATH. Similarly, when pushing an image, rules_oci invokes crane which also requires the credential helper to be discoverable from PATH.
It would be nice to be able to use hermetic/managed credential helpers.
A related FR: instead of only relying on config file, it would be nice to be able to use an env var to ship a full configuration for auth.

I can see how this could be beneficial, but doing so would make rules_oci's auth mechanism a lot more complex then it currently is.

A related FR: instead of only relying on config file, it would be nice to be able to use an env var to ship a full configuration for auth.

We already support number of ways to configure auth file globally via env or an attribute in oci_pull, have you seen https://github.com/bazel-contrib/rules_oci/blob/main/docs/pull.md#configuration?

If you refer to DOCKER_CONFIG, yeah I know that env var. I was thinking an env var with full auth file content. But anyway this is less important.


add proxy between follower and lader

LGTM

Current coverage is 43.52% (diff: 68.30%)

No coverage report found for master at d82a7c9.

Powered by Codecov. Last update d82a7c9...3ae959b


Historical GFS forecasts via pvlib

I feel forever new to the world of pvlib/python, but I appreciate all the time that is put into it. I have found myself using pvlib to query the GFS model for solar/weather forecasts. I noticed that in using this method via pvlib and python, I can only go up to a few days back when getting a forecast.
Does there exist a way to pull historical GFS forecasts going back in time?  There is a great possibility that I have a fundamental misunderstanding in how pvlib gets the GFS data and cleans it into a nice polished formatted dataframe. But if there exists a way to get that kind of data going back in time, I would love to learn.  Thank you for your help.

See https://github.com/pvlib/pvlib-python/issues/402#comment-355345988


Add compound assignment operators of float16

When T is float16, I want to use the following code.
cuda.elementwise(
    'T grad, T lr', 'T param',
    'param -= lr * grad',
    'sgd')

LGTM. It is not directly relevant to this PR but where do we define float16::operator+ etc.?

float16::operator+ is not defined.
float16 is castted to float32 automatically when we use float16 arithmetic operation.
Because the old CUDA dose not support float16 arithmetic operation.
The CDUA7.5 provides half arithmetic operation.
http://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH____HALF__ARITHMETIC.html#group__CUDA__MATH____HALF__ARITHMETIC
I created Issue #1224.


Bal new command from a template doesnt copy icon file from template module

Description:
When we execute bal new command with a template (ex :- bal new sampleapp -t choreo/circuit_breaker) generated ballerina.toml has the fields from the template module's ballerina.toml.  But when the template module's ballerina.toml defines icon path it should copy the icon in the path too. Otherwise the generated module will fail to build.
Steps to reproduce:

bal new sampleapp -t choreo/circuit_breaker
Check ballerina.toml

[package]
org = "choreo"
name = "sampleapp"
version = "1.0.3"
export = ["sampleapp"]
distribution = "slbeta6"
keywords = ["Type/RestApi","Category/Service","Internal/http"]
icon = "docs/icon.png"

It has icon field. But there is no file in the specified file path. Ideally bal new command should copy icon file from the original module if icon field is present.
Affected Versions:
Ballerina Swan Lake Beta 6.2
Related Issues (optional):
https://github.com/wso2-enterprise/choreo/issues/11505

This is fixed in version 2201.0.0 via https://github.com/ballerina-platform/ballerina-lang/pull/35113
Discussed a temporary solution to fix the build error in choreo scripts.


Mobile maps are not able to load the data

These maps have been created with CARTOframes.
You can check the issue opening this blog post with your mobile phone.
cc @CartoDB/rt-managers

cc @jesusbotella

As far as I see, it throws this error on my iPhone X:
CartoRuntimeError: [WebGL] WebGL parameter 'gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS' is below the requirement: 8 < 16

So I guess that my mobile phone (and many others, I guess) doesn't meet the needed requirements for CARTO-VL.

😬 Do you think we can do something to solve it?

We hit this at work this week. It was something of a show stopper on a flagship product. It was recently introduced in 1.4.1. Luckily we use Carto-vl thure the js bindings, so we were able to revert to the 1.4.0 version. WItch works just fine for us.

Hi folks! Thanks for also reporting @Eh2406 ! I'm pasting a message from your team at SEMCOG Jacob, and hopefully that can provide @jesusbotella and others with some context for the problem:

We did a bit of poking around, and determined that pinning our CARTO VL version to 1.4.0 makes our map load just fine on our iOS devices.  It looks like it was the 1.4.1 release that broke VL on iOS.  The CARTO VL compatibility tester map also runs smoothly when we open it in a JSFiddle and change the version to 1.4.0.

Jacob dug this out of the GitHub logs: https://github.com/CartoDB/carto-vl/pull/1387

I can’t speak for other users of CARTO VL, but our map runs quite well on iOS devices with MAX_VERTEX_TEXTURE_IMAGE_UNITS == 8.  For now, we’re going to pin our map to 1.4.0 for next week’s presentation.

After reviewing https://github.com/CartoDB/support/issues/2119 it looks like @VictorVelarde decided on setting MAX_VERTEX_TEXTURE_IMAGE_UNITS to 16 after internal deliberation. It sounds like setting this value to 8 may allow CARTO VL maps to work on even very new iOS devices. I, of course, don't know the downside of setting MAX_VERTEX_TEXTURE_IMAGE_UNITS below 16, but if there's minimal impact elsewhere, I think that would be a welcome change. Thanks!

Hi,
First, regarding to mobile devices, we have to assume that CARTO VL has not a broad compatibility, due to its WebGL requirements. We've had some issues in the past (eg with some Huawei devices) , and we are currently not going to work on expanding that support.
Having said that, we decided to set that threshold to 16 having in our mind a desktop user (where most <= 5 years old computers are included), and that guarantees there's no problem there. But we can reconsider that value if it allows a significant amount of devices to be effectively included.
So I propose to lower that threshold to 8, as you were suggesting, to run some tests and, if everything is ok, then to create a patch to the library. And @Eh2406 it would be very useful for us to validate with you the approach, so we might contact you soon about it.

Agree @VictorVelarde 👍

If everything goes fine, we're gonna release a patch very soon, and that will be hopefully integrated in CF beta-4

:wave: @VictorVelarde, @jesusbotella When this change is complete, will this be incorporated into a new release of CARTO VL, or a hotfix in the current release?

hi @jdgodchaux,
On one hand, it will be a patch version in CARTO-VL. So a new v1.4.2 is going to be released. If the client is using JavaScript, they will have just to check they pick the updated the reference (from npm or cdn reference).
On the other hand, regarding to Kuviz visualizations in CARTOframes: I have checked an example, which was embedded in this blog post and CARTO VL is being referenced using 'minor', pointing to v1.4. That means that it will get the fix for free, without requiring any change in the kuviz, nor a new CARTOframes version.
Just to be sure, we'll have to check that no reference exists in CARTOframes using CARTO VL 'patch' versions. (cc/ @Jesus89)

Awesome, thanks @VictorVelarde !!

Just for the record, the percent commented by @alejandraarri corresponds to the MAX_VERTEX_TEXTURE_IMAGE_UNITS parameter, which seems to affect to quite a few IOS devices. But the overall percent we support is indeed lower for mobile, as there are other limiting parameters besides that (specially the OES_texture_float extension one).

Hey all, I just tried to see if I could get the maps to display in my mobile browser (chrome, iphone se) and got this when I scrolled down to the map and it just started loading:

I briefly saw the basemap, tabs for widgets/legend, and then got that.

@andy-esch is that the only CARTO VL viz you can't open?
Can you see for example https://carto.com/developers/carto-vl/examples/#example-check-for-browser-support ?

I went through the examples one by one. They worked until I got to "Add multiple source layers". I reloaded the page and tried loading that one again, which was successful. I kept going through trying new examples and they'd randomly work or not work. I don't see a pattern to the failures :/


fix: add rustup to nix shell for building yazi

By adding rustup to the nix flake, I was able to build yazi with these steps:
nix develop
scripts/build.sh yazi-x86_64-unknown-linux-gnu

Thanks for the PR!
It seems there's already rustToolchain, why do we need rustup?
https://github.com/sxyazi/yazi/blob/64c5e854578b04907717b0f6b3e5e5246d6fd236/nix/shell.nix#L5

Ahh, did not see that!
What prompted this is building with scripts/build.sh. The build failed because it requires rustup. When I added this to the nix file, it built.
But I agree, rustToolchain is probably sufficient for development.

That script is expected to be used in CI, not used for users directly. If you want to build Yazi, please follow the user documentation https://yazi-rs.github.io/docs/installation


broken resposive mobile

in devtools when push mobil button to see the web how it shows up then it happens this 👇

This was fixed on #200. Check that you are using the last version of the repository and close this issue if all is OK:

yep, you`re right 👌


Make React app filter do OR instead of AND search

This filter should work the same in the:

[ ] React app (#2203)
[x] Django app.

When filtering for e.g. to funds or two leads etc. you get "No submissions available".
We would like the filter to find e.g. all submission that belong to any of the funds selected.

@frjo Is something pending in this issue? I think it should be fixed with PR #2519.


Output clean error page on health check route

Hi,
I've made a couple of tweaks to the application health route.

Rather than depending on Tailwind CDN, I've inlined the CSS.

Exceptions thrown by the DiagnosingHealth event will be captured and a health flag set. If debug mode is enabled, the error will be re-thrown. If debug mode is disabled, the error will be reported and the exception message passed down to the health page.

Based on this, the application health page will then show an error, rather than just outputting a '500 | Server Error' page as it would by default. This still throws a 500 server error so can be picked up by monitoring tools.

I hope you'll give this some consideration! Thanks.

Can you revert the CDN changes?

Hi @taylorotwell - I've made this change. Cheers.


EBR memory barriers

Hey - I was wondering about the full memory barriers (atomic_thread_fence with memory_order_seq_cst) in the EBR library.
Thinking about it, isn't it true that ebr_enter and ebr_exit essentially have acquire/release semantics?  Could you get away with simple acquire/release memory ordering, instead of a full memory_order_seq_cst?
It would seem that in ebr_sync, when scanning all threads, if a LOAD-acquire is used to read each local epoch, this would "synchronize-with" all release operations in ebr_exit, guaranteeing a "happens-before" relationship with the thread doing ebr_sync and all threads that have exited a critical section.
So, doesn't this imply that EBR could get away with simple acquire/release memory ordering, rather than full memory barriers with memory_order_seq_cst?

Not really. In addition to acquire/release semantics, ebr_enter() and ebr_exit() need stronger ordering gurantees. Consider the ebr_enter() case: acquire-fence would not prevent re-ordering of store to t->local_epoch and, for example, it might occur after some loads (e.g. accessing your data structure) inside the critical path. The critical path can start only after that store to the local-epoch becomes globally visible. Otherwise, the writer has an inconsistent view.

Resolved.


en/2.0.x/tutorial/database "Error: No such command 'init-db'." fix

https://flask.palletsprojects.com/en/2.0.x/tutorial/database/#id5
on the line
from . import db
That's not what is on the project github, and results in Error: No such command 'init-db'.
The line used on the github is
from flaskr import db
And that works, for some reason.
It doesn't seem to make any sense, but it took me like over an hour to find.
Environment:

Python version: 3.9.5
Flask version: 2.0.1

I can't reproduce this issue. I believe the imports are absolute instead of relative in the repo because of how we run the tests, but that shouldn't affect anything assuming you have followed the tutorial exactly. Are you sure you installed the project with pip install -e .?
You can use https://discord.gg/pallets to get help with your code.

I can't reproduce this issue. I believe the imports are absolute instead of relative in the repo because of how we run the tests, but that shouldn't affect anything assuming you have followed the tutorial exactly. Are you sure you installed the project with pip install -e .? I changed the imports to be relative to match the docs, installed it, and export FLASK_APP=flaskr; flask init-db worked as expected.
You can use https://discord.gg/pallets to get help with your code.
No, I was not installing the project with pip.  I was following the tutorial and making the file from scratch.

I would recommend keeping the GitHub repo absolute rather than relative. The way the docs page referenced the current folder with . because referring to the flaskr folder as the GitHub repo did worked for me.
I am new, so although I am sure I followed the tutorial exactly, but I am probably wrong in that.

I can't reproduce this issue. I believe the imports are absolute instead of relative in the repo because of how we run the tests, but that shouldn't affect anything assuming you have followed the tutorial exactly. Are you sure you installed the project with `pip install -e’

I did not install the project with pip, I followed the tutorial and built the files and folders from scratch following the described file structure.
when I have problems with something I check against what’s in the GitHub repo.

The tutorial instructs you to install the project as you start building it.


Arm64 builds

It would be very handy to have an Arm64 build, especially for use on a Raspberry Pi. The CNCF provides builds via https://cncf.ci/ that could used as a baseline.

With the release of Amazon's m6g instances, it would be really nice to have aarch64 builds available so we can take advantage of the cost savings without manually having to compile Envoy.

I'm going to work on this in next few weeks. Need to setup CI environment with AWS arm64 instances.

here a workflow for building envoy of istio.
https://github.com/querycap/istio-envoy-arm64
could merge it to here too?

Amazon also release new t4g instances. Graviton2 expansion:) I also think, that it would be really nice to have aarch64

let's keep only one issue on arm64. I know this one came first, but #109 has more recent activity so closing in favor of that. please follow it and 👍 accordingly!


[docs] Demo VirtualElementPopper crashes

[ ] I have searched for similar issues in this repository and believe that this is not a duplicate.

Steps to Reproduce

Visit https://mui.com/components/popper/#virtual-element
??
demo VirtualElementPopper crashes

Your Environment

Tech
Version

MUI
v5.1.0

netlify deploy
https://618a5d8bbfb7fd0007698380--material-ui-docs.netlify.app

Browser
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36

@Dar-win I'm unable to reproduce on MacOS. What error do you get? Any stack trace?


Serial tally

Hello I am curently using a Ross Vision switcher. I am currently taking the serial tally from the switcher and converting it to UDP with a serial to network converter. I am not sure if this is a acceptable method for TallyArbiter to accept TSL 3.1 As far as I understand that is what the switcher is outputting as far as the serial tally protocol. If there an way to confirm the data is connecting to TA correctly other then the test page? I mean to see the actual data hitting TA. Or is using a serial to network adaptor not correct? Thank you.

Sure you just need to use the TSL 3.1 UDP source type in TA. Make sure you are setting it up to listen on whatever port the UDP device is sending. Also remember they must be on the same subnet in order to receive the UDP traffic.

Hello thank you. I have tried as mentioned above i have even gone to the extent of using  a serial debug software and wire shark to make sure the data is getting to the computer running TA. The data is flowing and I can see the ASCII of all the names of the cameras and sources on the switcher but I don not see camera 1 going to program is TA while testing. I just want to confirm that once serial data gets into the IP domain it is just header data and ASCII. TA should not care about the baud rate and parity. only the serial to IP converter just needs to know what it is decoding to send with more or less telnet data. Right? Is there a way to confirm that the data is being interpreted by TA correctly? Is there some way to debug the incoming data stream? Thank you

Share your TA config file here, maybe we can help.
You could also try another Tally testing program. Ross Dashboard has one.


TraceFilter creates span names from URIs

Spans created by TraceFilter have their span names generated from the respective request's full URI including path variables. This results in requests to the same endpoint to have different span names.
For example:
http://localhost:8080/users/abc and http://localhost:8080/users/def would result in http:/users/abc and http:/users/def.
As a result the different spans can not be grouped. Also, zipkin server has problems handling big numbers of span names - at least with a cassandra backend.
It seems more reasonable to put a wildcard in the place of the path variable. In the example above the spans could both be named http:/users/* or something similar.
This would also be more in line with the recommendation in the Spring Cloud Sleuth documentation regarding span naming:

The name should be low cardinality (e.g. not include identifiers).

cc @adriancole

FWIW the more important part is usability vs whether a data store can handle a large amount of names. The span name is a grouping label for users, so thousands or millions of choices would neither help in UX, nor help group..
Most tools default to the http method name. To refine further would be a search by tag. Closed set of choices are important for interop, too. For example, here's the guidance of names for Google StackDriver Trace. an open-ended name would quickly overrun 128 bytes

Name of the span. Must be less than 128 bytes. The span name is sanitized and displayed in the Stackdriver Trace tool in the Google Cloud Platform Console. The name may be a method name or some other per-call site name. For the same executable and the same call point, a best practice is to use a consistent name, which makes it easier to correlate cross-trace spans.

In most discussions, where the http method isn't used (ps http method is almost always used as a default), a URI template is preferred. Depending on how many chars you have, you could still prefix by http method (helpful in post vs get). Bear in mind the implicit lowercasing.
"get /things/{thingId}"

ps I remain unconvinced the http prefix is helpful, as I think that's more a UI hack than a good naming convention. It could be misleading in https as well. Maybe that's why others don't use it. IMHO, it would be better to raise an issue on the UI to allow an overlay that shows which spans are http than hack the name.

also PS, what I mentioned above is where there's no good name specified by the user. a naming annotation or otherwise mapping would be the best option for good names.

We had a chat about this with @adriancole and the amount of work needed to be put here is far greater than the revenue coming out of it (at least for now). We're putting this task to icebox.

Thanks for the update!
BTW: the same happens with outgoing HTTP requests as the AbstractTraceHttpRequestInterceptor creates span names in the same way.
We disabled client tracing for now (setting spring.sleuth.web.client.enabled and spring.sleuth.web.async.client.enabled to false).
Regarding the TraceFilter: as a quick workaround we disabled it like this. That way we still get the spans for the controller methods as created by TraceHandlerInterceptor.

Yeah we name the spans consistently so no wonder.
Cool! Glad to know that you've found a workaround :)

I'm closing this for now and we'll reopen it if necessary.

I would also like to pitch in on this discussion.
We are running into an issue when using Feign and Sleuth, that (due to a very long path variable) the X-Span-Name header is so big that the receiving-end rejects the request (400 bad-request). While when I manually execute the request without the X-Span-Name header the request executes fine.
Is this something to consider in this issue, or should I open a new one?

Yeah that sounds like a different issue. Please provide more details there and let's try to fix it!

Hi
Is it possible to reopen this question ?
As we try to build endpoints as much as possible closed to rest principle, we end up with an infinite number of different uri (containing many path variable).
The pb is zipkin ui is working more than slowly when it tries to load all span for a component leading us to not using this nice tools whereas it provide really added value.
I put in place @s-spindler workaround but the issue is some controller method are marked as cacheable and do not appear inside zipkin ui (we configure sleuth to sample nothing)
I know this is not an obvious fix, if someone got an idea on how to implement it I can think about that.
Christophe.

interesting timing as we recently had a request for documentation on span
naming. Indeed the universe of span names should be capped
https://github.com/openzipkin/openzipkin.github.io/issues/70#issuecomment-290880552

Until then I might have an idea...
You could create a wrapper over ZipkinSpanListener. Before calling the report method you could create a new span basing on the passed span to the report method. You could use the SpanBuilder to alter then name of the span too in whatever way you need.
Does it make any sense? I'm not sure if it will work as you expect but most likely it can be treated as some workaround until we figure out sth better.

Yeah wrapping in this way is a good workaroud (centralizes the logic)
On 2 Apr 2017 10:27, "Marcin Grzejszczak"<EMAIL_ADDRESS>wrote:
Until then I might have an idea...
You could create a wrapper over ZipkinSpanListener. Before calling the
report method you could create a new span basing on the passed span to the
report method. You could use the SpanBuilder to alter then name of the span
too in whatever way you need.
Does it make any sense? I'm not sure if it will work as you expect but most
likely it can be treated as some workaround until we figure out sth better.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/spring-cloud/spring-cloud-sleuth/issues/500#issuecomment-290960364,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAD616P8AGtlqILh3YulxWVI2McXFUBEks5rrwd1gaJpZM4LoRkY
.

I would also like to have this conversation to find a common solution to this problem for many people... Is there a suggested way to have smaller values for Sleuth created spans that are more aligned with the OpenZipkin project view of span.names being reused for ease of collection and exposure to tracing UI tools?


support -Dkey=value SysConfig

Signed-off-by: slievrly<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
support -Dkey=value parameter
startup parameter > -D parameter > configCenter parameter > default value
Ⅱ. Does this pull request fix one issue?
fix #1377
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #1379 into develop will increase coverage by 0.02%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             develop    #1379      +/-   ##
=============================================
+ Coverage      45.76%   45.78%   +0.02%
  Complexity      1653     1653
=============================================
  Files            343      343
  Lines          12322    12322
  Branches        1549     1549
=============================================
+ Hits            5639     5642       +3
+ Misses          6053     6051       -2
+ Partials         630      629       -1

Impacted Files
Coverage Δ
Complexity Δ

...server/store/file/FileTransactionStoreManager.java
47.03% <0%> (+1.04%)
19% <0%> (ø)
:arrow_down:

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 69f1f2f...3017c0f. Read the comment docs.


created universal controller that reconciles all resources related to…

…ed on standard RESTful API definitions

@ca7alindev Ready for review?

@ca7alindev Ready for review?

ready


Incomplete upgrade of vmss agent pool

Is this a request for help?: Yes

Is this an ISSUE or FEATURE REQUEST? (choose one): ISSUE

What version of acs-engine?:
Version: v0.21.1
GitCommit: 132dab3a5
GitTreeState: clean

Orchestrator and version (e.g. Kubernetes, DC/OS, Swarm)
Kubernetes 1.10.6 -> 1.11.2
What happened:
While upgrading a cluster with a vmss agent pool, the upgrade command failed.
It seems that there are two problems:

After upgrading the master, acs-engine has an authentication problem and exits before upgrading the vmss agent pool.
The upgrade of the vmss agent pool updates the vmss model and tags, but does not actually upgrade the existing vmss instances.

What you expected to happen:
I expected the upgrade command to upgrade all nodes in the cluster.
How to reproduce it (as minimally and precisely as possible):
I created a cluster with custom vnet, one master and a vmss agent pool with two nodes, running k8s 1.10.6. Then I ran the upgrade command to upgrade to k8s 1.11.2:
$ acs-engine upgrade --subscription-id xxxx --resource-group mhy-test-k8s-1 --deployment-dir _output/mhy-test-k8s-1 --location westeurope --upgrade-version 1.11.2 --auth-method client_secret --client-id xxxx --client-secret xxxx --debug
INFO[0000] validating...
DEBU[0000] Resolving tenantID for subscriptionID: xxxx
DEBU[0003] Already registered for "Microsoft.Compute"
DEBU[0003] Already registered for "Microsoft.Storage"
DEBU[0003] Already registered for "Microsoft.Network"
INFO[0003] Name suffix: 42855177
INFO[0003] Gathering agent pool names...
INFO[0003] VM k8s-agentpool1-42855177-vmss_0 in VMSS k8s-agentpool1-42855177-vmss has a current tag of Kubernetes:1.10.6 and a desired tag of Kubernetes:1.11.2. Upgrading this node.

INFO[0003] VM k8s-agentpool1-42855177-vmss_1 in VMSS k8s-agentpool1-42855177-vmss has a current tag of Kubernetes:1.10.6 and a desired tag of Kubernetes:1.11.2. Upgrading this node.

INFO[0003] Master VM name: k8s-master-42855177-0, orchestrator: Kubernetes:1.10.6 (MasterVMs)

INFO[0003] Upgrading to Kubernetes version 1.11.2

INFO[0003] Master nodes StorageProfile: ManagedDisks
INFO[0003] Prepping master nodes for upgrade...
INFO[0003] Resource count before running NormalizeResourcesForK8sMasterUpgrade: 10
INFO[0003] Evaluating if agent pool: master, resource: [concat(variables('masterVMNamePrefix'), copyIndex(variables('masterOffset')))] needs to be removed
INFO[0003] Evaluating if extension: [concat(variables('masterVMNamePrefix'), copyIndex(variables('masterOffset')),'/cse', '-master-', copyIndex(variables('masterOffset')))] needs to be removed
INFO[0003] Evaluating if extension: [concat(variables('masterVMNamePrefix'), copyIndex(variables('masterOffset')), '/computeAksLinuxBilling')] needs to be removed
INFO[0003] Resource count after running NormalizeResourcesForK8sMasterUpgrade: 10
INFO[0003] Total expected master count: 1
INFO[0003] Master nodes that need to be upgraded: 1
INFO[0003] Master nodes that have been upgraded: 0
INFO[0003] Starting upgrade of master nodes...
INFO[0003] masterNodesInCluster: 1
INFO[0003] Upgrading Master VM: k8s-master-42855177-0
INFO[0003] fetching VM: mhy-test-k8s-1/k8s-master-42855177-0
INFO[0003] found nic name for VM (mhy-test-k8s-1/k8s-master-42855177-0): k8s-master-42855177-nic-0
INFO[0003] deleting VM: mhy-test-k8s-1/k8s-master-42855177-0
INFO[0003] waiting for vm deletion: mhy-test-k8s-1/k8s-master-42855177-0
INFO[0166] deleting nic: mhy-test-k8s-1/k8s-master-42855177-nic-0
INFO[0166] waiting for nic deletion: mhy-test-k8s-1/k8s-master-42855177-nic-0
INFO[0192] deleting managed disk: mhy-test-k8s-1/k8s-master-42855177-0_OsDisk_1_d2e861bd33ae47a4a85afecabba802af
INFO[0252] Master offset: 0

INFO[0252] Master pool set count to: 1 temporarily during upgrade...

INFO[0252] Starting ARM Deployment (master-18-09-05T14.52.24-1865577621). This will take some time...
INFO[1036] Finished ARM Deployment (master-18-09-05T14.52.24-1865577621). Succeeded
INFO[1036] Error validating upgraded master VM: k8s-master-42855177-0
FATA[1036] Error upgrading cluster: No Auth Provider found for name "azure"

The current state:
$ kubectl get nodes
NAME                                 STATUS    ROLES     AGE       VERSION
k8s-agentpool1-42855177-vmss000000   Ready     agent     21m       v1.10.6
k8s-agentpool1-42855177-vmss000001   Ready     agent     23m       v1.10.6
k8s-master-42855177-0                Ready     master    27m       v1.11.2

I restarted the upgrade command:
$ acs-engine upgrade --subscription-id xxxx --resource-group mhy-test-k8s-1 --deployment-dir _output/mhy-test-k8s-1 --location westeurope --upgrade-version 1.11.2 --auth-method client_secret --client-id xxxx --client-secret xxxx --debug
INFO[0000] validating...
DEBU[0000] Resolving tenantID for subscriptionID: xxxx
DEBU[0002] Already registered for "Microsoft.Compute"
DEBU[0002] Already registered for "Microsoft.Storage"
DEBU[0002] Already registered for "Microsoft.Network"
INFO[0003] Name suffix: 42855177
INFO[0003] Gathering agent pool names...
INFO[0003] Master VM name: k8s-master-42855177-0, orchestrator: Kubernetes:1.11.2 (UpgradedMasterVMs)

INFO[0003] Upgrading to Kubernetes version 1.11.2

INFO[0003] Master nodes StorageProfile: ManagedDisks
INFO[0003] Prepping master nodes for upgrade...
INFO[0003] Resource count before running NormalizeResourcesForK8sMasterUpgrade: 10
INFO[0003] Evaluating if agent pool: master, resource: [concat(variables('masterVMNamePrefix'), copyIndex(variables('masterOffset')))] needs to be removed
INFO[0003] Evaluating if extension: [concat(variables('masterVMNamePrefix'), copyIndex(variables('masterOffset')),'/cse', '-master-', copyIndex(variables('masterOffset')))] needs to be removed
INFO[0003] Evaluating if extension: [concat(variables('masterVMNamePrefix'), copyIndex(variables('masterOffset')), '/computeAksLinuxBilling')] needs to be removed
INFO[0003] Resource count after running NormalizeResourcesForK8sMasterUpgrade: 10
INFO[0003] Total expected master count: 1
INFO[0003] Master nodes that need to be upgraded: 0
INFO[0003] Master nodes that have been upgraded: 1
INFO[0003] Starting upgrade of master nodes...
INFO[0003] masterNodesInCluster: 1
INFO[0003] Master VM: k8s-master-42855177-0 is upgraded to expected orchestrator version
INFO[0003] Expected master count: 1, Creating 0 more master VMs
INFO[0003] Deploying the agent scale sets ARM template...
INFO[0003] Starting ARM Deployment (agentscaleset-18-09-05T15.07.07-954170151). This will take some time...
INFO[0055] Finished ARM Deployment (agentscaleset-18-09-05T15.07.07-954170151). Succeeded
INFO[0055] Upgrading VMSS k8s-agentpool1-42855177-vmss
INFO[0055] No VMs to upgrade for VMSS k8s-agentpool1-42855177-vmss, skipping
INFO[0055] Completed upgrading all VMSS
INFO[0055] Cluster upgraded successfully to Kubernetes version 1.11.2

DEBU[0055] output: wrote _output/mhy-test-k8s-1/apimodel.json

The current state:
$ kubectl get nodes
NAME                                 STATUS    ROLES     AGE       VERSION
k8s-agentpool1-42855177-vmss000000   Ready     agent     23m       v1.10.6
k8s-agentpool1-42855177-vmss000001   Ready     agent     25m       v1.10.6
k8s-master-42855177-0                Ready     master    29m       v1.11.2

In the Azure portal I can see that the two vmss nodes are now not the latest model:

I could manually scale up the vmss:

Then cordon, drain and delete the original two nodes with kubectl, and finally get an upgraded cluster:
$ kubectl get nodes
NAME                                 STATUS    ROLES     AGE       VERSION
k8s-agentpool1-42855177-vmss000002   Ready     agent     21m       v1.11.2
k8s-agentpool1-42855177-vmss000003   Ready     agent     21m       v1.11.2
k8s-master-42855177-0                Ready     master    1h        v1.11.2

Delete the original vmss instances from the Azure portal:

Anythinge else we need to know:

Hi @jackfrancis, yes I actually did the upgrade twice with the same result. First time was with one node in the vmss, but then I repeated it with two nodes. (Actually I had a similar problem when I tested an upgrade back in January. That time I was using an AvailabilitySet for the agent pool, and the upgrade command failed after each node in the cluster, also with an authentication error. But a lot has happened since then, so maybe it's not relevant.)
I think the main "special" features of the cluster I set up are:

Use of a pre-created resource group and custom vnet.
The servicePrincipalProfile SP is scoped to the resource group,
Use aadProfile.adminGroupID to grant admin privileges to members of an AD security group. The aadProfile.serverAppID SP's manifest therefore specifies "groupMembershipClaims": "SecurityGroup".

I have a script that creates the cluster, here are some excerpts that outline the steps:
    # create resource group
    az group create --name="${RES_GROUP}" --location="$LOCATION"

    # create a service principal for the Kubernetes cluster
    az ad sp create-for-rbac --name="${SP_NAME}" --role='Contributor' --scopes="/subscriptions/${SBSCR}/resourceGroups/${RES_GROUP}" > "$SPJSON"

    # create the custom vnet
    az network vnet create \
       --name "${VNET}" \
       --resource-group "${RES_GROUP}" \
       --address-prefixes "$VNET_CIDR" \
       --subnet-name "${SUBNET}" \
       --subnet-prefix "$VNET_CIDR"

# generate the ARM deployment templates using acs-engine (the apimodel file has been
# generated from a template with actual values inserted for this cluster)
acs-engine generate "${DEPLOYD}/${KUBENAME}.json"

# deploy kubernetes cluster
az group deployment create \
   --name "$DEPLOY" \
   --resource-group "${RES_GROUP}" \
   --template-file ./_output/${KUBENAME}/azuredeploy.json \
   --parameters ./_output/${KUBENAME}/azuredeploy.parameters.json

This is the apimodel used by the acs-engine generate command above:
{
    "apiVersion": "vlabs",
    "properties": {
        "orchestratorProfile": {
            "orchestratorType": "Kubernetes",
            "orchestratorVersion": "1.10.6",
            "kubernetesConfig": {
                "serviceCidr": "<IP_ADDRESS>/16",
                "dnsServiceIP": "<IP_ADDRESS>",
                "clusterSubnet": "<IP_ADDRESS>/21",
                "enableRbac": true,
                "enablePodSecurityPolicy": true,
                "etcdDiskSizeGB": "512",
                "dockerEngineVersion": "17.03.*",
                "kubeletConfig": {
                    "--max-pods": "64",
                    "--authentication-token-webhook": "true"
                },
                "addons": [
                    {
                        "name": "cluster-autoscaler",
                        "enabled": true,
                        "config": {
                            "minNodes": "2",
                            "maxNodes": "5"
                        }
                    }
                ]
            }
        },
        "masterProfile": {
            "count": 1,
            "vmSize": "Standard_D2_v3",
            "dnsPrefix": "mhy-test-k8s-1",
            "vnetSubnetId": "/subscriptions/xxxxxxxx/resourceGroups/mhy-test-k8s-1/providers/Microsoft.Network/virtualNetworks/mhy-test-k8s-1-vnet/subnets/mhy-test-k8s-1-subnet",
            "vnetCidr": "<IP_ADDRESS>/8",
            "firstConsecutiveStaticIP": "<IP_ADDRESS>",
            "storageProfile" : "ManagedDisks"
        },
        "agentPoolProfiles": [
            {
                "name": "agentpool1",
                "count": 2,
                "vmSize": "Standard_D2_v3",
                "vnetSubnetId": "/subscriptions/xxxxxxxx/resourceGroups/mhy-test-k8s-1/providers/Microsoft.Network/virtualNetworks/mhy-test-k8s-1-vnet/subnets/mhy-test-k8s-1-subnet",
                "storageProfile" : "ManagedDisks",
                "OSDiskSizeGB": 50,
                "availabilityProfile": "VirtualMachineScaleSets"
            }
        ],
        "linuxProfile": {
            "adminUsername": "devop",
            "ssh": {
                "publicKeys": [
                    {
                        "keyData": "kkkkkkkk"
                    }
                ]
            }
        },
        "servicePrincipalProfile": {
            "clientId": "xxxxxxxx",
            "secret": "yyyyyyyy"
        },
        "aadProfile": {
            "serverAppID": "xxxxxxxx",
            "clientAppID": "yyyyyyyy",
            "tenantID": "zzzzzzzz",
            "adminGroupID": "gggggggg"
        }
    }
}

Also maybe I should mention that when I ran the acs-engine upgrade command, I used the servicePrincipalProfile SP for authentication (--client-id and --client-secret).

Same issue: https://github.com/Azure/acs-engine/issues/2560

I ran into a similar problem with a different cause: in my case the upgrade failed due to a drain timeout on one of the nodes:
ERRO[0264] There are pending pods when an error occurred: Drain did not complete within 1m0s

ERRO[0264] pod/xxx

ERRO[0264] Error draining VM in VMSS: Drain did not complete within 1m0s
FATA[0264] Error upgrading cluster: Drain did not complete within 1m0s

But the tags on the VMSS were updated to the new version, so when retrying the update:
INFO[0132] No VMs to upgrade for VMSS k8s-agentpool2-36147952-vmss, skipping
INFO[0132] Completed upgrading all VMSS
INFO[0132] Cluster upgraded successfully to Kubernetes version 1.12.2

even though the nodes are still on 1.12.1:
$ kubectl get nodes
NAME                                 STATUS                     ROLES    AGE   VERSION
...
k8s-agentpool2-36147952-vmss000000   Ready,SchedulingDisabled   agent    26d   v1.12.1
k8s-agentpool2-36147952-vmss000001   Ready                      agent    25d   v1.12.1

Updating the orchestrator tag on the vmss manually back to 1.12.1 and retrying the upgrade seems to work, but clearly the tag is being updated prematurely here.

Same problem here, like mhyllander described. Upgrades fails after the upgrading any master node during validation:

INFO[0163] Starting ARM Deployment (master-18-12-05T11.27.18-1386552021). This will take some time...
INFO[0538] Finished ARM Deployment (master-18-12-05T11.27.18-1386552021). Succeeded
INFO[0538] Error validating upgraded master VM: k8s-master-12658618-0
FATA[0538] Error upgrading cluster: No Auth Provider found for name "azure"

After repeating upgrade for every master (every time same error for the master upgrades), acs-engine reports upgrade done, but all VMs  in all VMSS are not upgraded yet. The VMSS in the portal show the new K8s version, but all vm instances still run on previous k8s version.
The upgrade can manually be finalized by using the upgrade functionality on the VMSS instances in the Azure portal.

same here, "No VMs to upgrade for VMSS" after successful master upgrade for acs-engine 0.26.1 upgrading from v1.10.9 to v1.11.5

Are any of the vmss upgrade failures here due to vmss master node pool? (<-- that is currently not functional)

Not in my case, we only use vmss for the agent pool.

masters here are not vmss either.  but some more info:
I just scaled up the VMSS with an az vmss scale command and the new nodes all are of the upgraded version... the VMs that were running at upgrade time are still the old version.

Our master pool is also not VMSS but AvailabilitySet.
Specialities are: Private cluster, custom VNET, K8s AAD integration.
@navicore: We were able to "finalize" the upgrade of the"old nodes" in Azure portal. If you have critical workload on these nodes consider to drain the nodes in k8s first. Then in Azure portal browse to the VMSS Instances page, select all affected Instances (tick checkboxes) and then click on Upgrade. This will reboot and upgrade these VMs to the new version that was previously set with acs-engine upgrade.

@chreichert that worked.  I was able to finish the upgrade for each instance via the portal.  Thanks!


Pass failing CI

Currently 2/6 CI tests are failing
Opam Lint (macos and ubuntu). These two need to be fixed

Can you please assign me this issue @pitag-ha , I've started working on this

It seems like opam-dune-lint might not be the correct choice for the CI, since it's dependencies (like dune version <3.0.0) clash with our current dependencies. I should have cross checked this earlier, that's why the CI is failing.
I'm looking for another tool to check dependencies, but in the meantime, maybe we should remove this job from the CI?

I'm looking into another CI option right now, to check the dependencies, do you have any suggestions for this @pitag-ha ?
Even though dune build already checks some versions, I'm still trying to find something this

To be honest, I'd remove the opam-dune-lint for now and add it back once it's compatible with more recent dune versions. It's already great that we now have a CI to check that the project builds and is formatted correctly!
Does that sound good to you?

To be honest, I'd remove the opam-dune-lint for now and add it back once it's compatible with more recent dune versions. It's already great that we now have a CI to check that the project builds and is formatted correctly!
Does that sound good to you?

Yea, that sounds good, i'll delete opam dune lint and close this issue, then continue on the medium music task
but will continue looking for a replacement in the background!


sysbench client IP address bug

bug fix, gets the correct client IP address now
built a state check into the server executor as well
fixes the bug from this error during QoS VC check: https://msazure.visualstudio.com/One/_backlogs/backlog/CRC-VirtualClient/Features/?workitem=17132374

sorry for the messy PR! this fixes the bug with minimal changes