change at 4.19.1 makes includeAll is finding duplicates

Search first

[X] I searched and no similar issues were found

Description
Granted our change log is pretty janky due to some not great decisions when we started out with this repo, but it was working with 4.19.0.  The update with 4.19.1 is now raising an exception that we have duplicate changelogs defined. Previously the final changelog lookup would skip over the existing changelogs that were defined.
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
   xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:pro="http://www.liquibase.org/xml/ns/pro"
   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd
      http://www.liquibase.org/xml/ns/pro
      http://www.liquibase.org/xml/ns/pro/liquibase-pro-4.1.xsd">
    <includeAll path="changelog/0.0/"/>
    <includeAll path="changelog/0.1/"/>
    <includeAll path="changelog/0.2/"/>
    <includeAll path="changelog/0.3/"/>
    <includeAll path="changelog/0.4/"/>
    <includeAll path="changelog/0.5/"/>
    <includeAll path="changelog/0.6/"/>
    <includeAll path="changelog/0.7/"/>
    <includeAll path="changelog/0.8/"/>
    <includeAll path="changelog/0.9/"/>
    <includeAll path="changelog/1.0/"/>
    <includeAll path="changelog/1.1/"/>
    <includeAll path="changelog/1.2/"/>
    <includeAll path="changelog/1.3/"/>
    <includeAll path="changelog/1.4/"/>
    <includeAll path="changelog/1.5/"/>
    <includeAll path="changelog/1.6/"/>
    <includeAll path="changelog/1.7/"/>
    <includeAll path="changelog/1.8/"/>
    <includeAll path="changelog/1.9/"/>
    <includeAll path="changelog/"/>

</databaseChangeLog>

Steps To Reproduce

Create a change log with a specific folder defined
Create a change log that also includes that folder and at least one other folder

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
   xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:pro="http://www.liquibase.org/xml/ns/pro"
   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd
      http://www.liquibase.org/xml/ns/pro
      http://www.liquibase.org/xml/ns/pro/liquibase-pro-4.1.xsd">

    <includeAll path="changelog/1.0/"/>
    <includeAll path="changelog/"/>

</databaseChangeLog>

Actual Behavior
####################################################
##   _     _             _ _                      ##
##  | |   (_)           (_) |                     ##
##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##
##  | |   | |/ _` | | | | | '_ \ / _` / __|/ _ \  ##
##  | |___| | (_| | |_| | | |_) | (_| \__ \  __/  ##
##  \_____/_|\__, |\__,_|_|_.__/ \__,_|___/\___|  ##
##              | |                               ##
##              |_|                               ##
##                                                ##
##  Get documentation at docs.liquibase.com       ##
##  Get certified courses at learn.liquibase.com  ##
##  Free schema change activity reports at        ##
##      https://hub.liquibase.com/                 ##
##                                                ##
####################################################
Starting Liquibase at 20:12:35 (version 4.19.1 #7641 built at 2023-02-28 18:08+0000)
Liquibase Version: 4.19.1
Liquibase Open Source 4.19.1 by Liquibase
Validation Error:
     85 changesets had duplicate identifiers
          changelog/1.8/changelog-00.sql::1.8.0::joe.shmo
          changelog/0.8/changelog-1.sql::raw::includeAll

Expected/Desired Behavior
Go back to how it was or document a fix moving forward?
Liquibase Version
4.19.1
Database Vendor & Version
postgresql
Liquibase Integration
Github Action
Liquibase Extensions
None
OS and/or Infrastructure Type/Provider
Ubuntu
Additional Context
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR (Thank you!)

It's not caused by includeAll. We're not using includeAll, but some of our change sets are also broken

Hello @bmoregeo , I believe that @hylkevds comment is right, it's not related to include all but to a performance fix introduced to how we load changesets. In fact allowing duplicated changesets to be processed was a bug and not a feature, but the bug lived so long that seems it became a feature - and as such it should be on a major release and with better documentation, sorry for that.
Anyway, just to confirm that we are hadling the correct issue before assuming more stuff: if you remove  <includeAll path="changelog/"/>  does it work?  Of even better, if you remove all the other includes and keep just  <includeAll path="changelog/"/> , does it fixes the duplicate warnings?

@filipelautert we just stumbled over this while trying to update from 4.19.0. We've had duplicated includes by accident in our case. The discussed strict option you talked about has not landed in 4.20.0 or has it?
In our case it is easy to fix by removing the redundant include, so it's not a big issue, but it took some time to figure out why it used to work in 4.19.0.

@bodewig not yet, it still in our dev queue. Hopefully it will be released in the next version.

This ticket requires manual testing. Depending on developer tests and implementation, we may also need to add a functional test.

I have the same issue but I'm not sure I understand what the problem is since for me it occurs on an empty new database.
Here is my folder structure:

And here is how I am specifying how to load them:

Here is the error I get:

I checked all the migrations for duplicate id fields and none are duplicated.
Could someone help me understand what exactly the problem is here?

Same here with Quarkus 3.2.2 that uses Liquibase 4.20.0, also on empty database (e.g. fresh mariadb testcontainer).
I don't see an actual duplication (still checking though).
Going back to 4.19.0 works around the problem.

Hi,
As far as I can tell, this issue does not only apply to includeAll, but also to the regular include.
Up to 4.19.0 the following was allowed:

changelog-main.xml includes changelog-1.xml and changelog-2.xml
changelog-1.xml defines a changeset (let's call it 001)
changelog-2.xml includes changelog-1.xml

From 4.20.0 on the startup fails, as 001 is recognized as a forbidden duplicated entry.
So I wonder if the fix of this issue will also restore the old behavior in regard of this situation. In my opinion this is a regression.
Best regards
Nils

Hi,
Any news or plans on this topic? With the current Spring Boot version (3.2.0) a downgrade of Liquibase to 4.19.0 is no longer possible, due to a ClassNotFoundException (e.g., liquibase.UpdateSummaryEnum). So this issue became a blocker for us.
Best regards
Nils

@nils-christian @famod thanks for the examples, let me see if I manage to reproduce it and find a fix.

@nils-christian @famod I created PR https://github.com/liquibase/liquibase/pull/5296 as a possible solution for this problem.
adding --allowDuplicatedChangesetIdentifiers=true to command line orliquibase.allowDuplicatedChangesetIdentifiers=trueto properties file would restore the old behavior. What do you think about it?

Sounds good to me, @filipelautert. Thank you.
Who would be responsible for adding this property to org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties as well?

@nils-christian as this is a liquibase global parameter, it should work if you start springboot with parameter -Dliquibase.allowDuplicatedChangesetIdentifiers=true  .  It is possible to test it using the following package for this build:
<dependency>
  <groupId>org.liquibase</groupId>
  <artifactId>liquibase-core</artifactId>
  <version>fix-3881-by-adding-a-new-flag-SNAPSHOT</version>
</dependency>

And you will need to add github repository to your maven settings as explained here -> https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry .
<activeProfiles>
    <activeProfile>github</activeProfile>
  </activeProfiles>

  <profiles>
    <profile>
      <id>github</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
        </repository>
        <repository>
          <id>github</id>
          <url>https://maven.pkg.github.com/liquibase/liquibase</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
        <repository>
          <id>github</id>
          <url>https://maven.pkg.github.com/liquibase/liquibase-pro</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <servers>
    <server>
      <id>github</id>
      <username>your_gh_yusername</username>
      <password>the_token</password>
    </server>
  </servers>
</settings>

Hi @filipelautert,
Unfortunately, I just realized that the issue is a little bit deeper than we originally thought and that the fix does not solve it. If we modify my above example and let the changeset create a table named "A" we get an error during the execution, as the table exists already. This means the regression does not only affect the duplication check but also the actual execution.

4.19.0: Example works.
4.19.1: ValidationFailedException due to duplicates.
fix-3881-by-adding-a-new-flag-SNAPSHOT with -Dliquibase.allowDuplicatedChangesetIdentifiers=true: Changesets are executed multiple times.

So I think the regression is a little bit more serious than I originally thought.
Best regards,
Nils

Hi @filipelautert,
Yes, this looks better. The example works now as expected, thank you very much.

Hi @mdimond - we added a new flag that enables the old behavior. For command line you can use
New global flag: --allow-duplicated-changeset-identifiers=true , or -Dliquibase.allowDuplicatedChangesetIdentifiers=true as a command line parameter for Springboot .
Right now it's on master branch and it will be out in the next release (in 1-2 weeks).

@filipelautert Just so I am clear I can add the following to the defaults file:
liquibase.allowDuplicatedChangesetIdentifiers: true and it should work like a charm?

@filipelautert Just so I am clear I can add the following to my properties file:

@mdimond yes, you are right.

Hi @mdimond - we added a new flag that enables the old behavior. For command line you can use New global flag: --allow-duplicated-changeset-identifiers=true , or -Dliquibase.allowDuplicatedChangesetIdentifiers=true as a command line parameter for Springboot . Right now it's on master branch and it will be out in the next release (in 1-2 weeks).

Hi @filipelautert: Can you estimate when this release will happen? :)

@RiVogel hopefully by today or tomorrow!

Hello! Was this fix included in 4.25.1? I tried today to execute h2 tests with liqubase migrations and -Dliquibase.allowDuplicatedChangesetIdentifiers=true command line option. It failed with Validation Failed: changesets had duplicate identifiers

Hi @muzuro - yes, this has been included in 4.25.1 . If you are executing liquibase from the command line please try to use flag --allow-duplicated-changeset-identifiers=true instead of -D...

@filipelautert  I am actually executing spring boot tests with gradle. So command line looks like:
`gradle -Dliquibase.allowDuplicatedChangesetIdentifiers=true :project:test'.
I have tried to create reproduce project but it works even without new property, so I am little confused why it don't works at main project

@filipelautert I don't think a global parameter is a great idea for those who are using the springboot integration of liquibase.
This means I have to add a command line param in 3 places: On my local machine, in my CI/CD environment and my runtime environment. Unless I made a mistake it seems setting liquibase.allowDuplicatedChangesetIdentifiers in application.properties or yaml equivalent doesn't work.
on a side note:

Why was this breaking behavior introduced in a minor version?
I've tried getting rid of the duplicate changeset identifiers by changing the structure of my changelog.

I have this folder structure:
- changesets
  - init

I'm including the init folder first:
  - includeAll:
      relativeToChangelogFile: true
      path: changesets/init

and after that I want to introduce the changesets directory:
  - includeAll:
      relativeToChangelogFile: true
      path: changesets

Obviously we can see how recursion would cause duplicate identifiers here, but setting min and maxDepth to 0 for the latter causes an error to be thrown regarding an empty directory.

We can also specify LIQUIBASE_ALLOW_DUPLICATED_CHANGESET_IDENTIFIERS env variable. My gradle tests worked only with env variable, -D option didn't worked ¯_(ツ)_/¯

My problem is the 4.19.1 above treat<PHONE_NUMBER>00-1 and<PHONE_NUMBER>00-2 as the same identifier as everybody reported here. I add -Dliquibase.allowDuplicatedChangesetIdentifiers=true in the command line and it fix the error during create new database schema but failed when upgrade existing schema due to the Changesets are executed multiple times. Any fix on this issue? Thanks.


Understanding Garbled Text in vocab.json of Multimodal Models: Causes and Explanations

I noticed that the vocab.json file in the multimodal model appears to contain garbled text, for example:
"Ġnegot": 11642,
"Ġpointers": 27454,
"çŃĸçķ¥": 104238,
"Ġdelights": 95675,
"ĠArrayAdapter": 49640,
"Ġfv": 61654,
"åĲĳç¤¾ä¼ļ": 111834,
"nowledge": 51186,
"çļĦä»»åĬ¡": 108530,
"ĠØ§ÙĦØ·ÙĦØ§Ø¨": 140123,
"Ġacc": 1029,
".crt": 93869,
"(save": 33546,

Could someone explain the reason behind this garbled text and the underlying principles?

https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct/tree/main


Chrome userAgent styles for input[type="date"] etc change display style to inline-flex

I'm not familiar with this repository, and I can't ascertain the bootstrap attitude toward userAgent styles. Regardless, Chrome OSX 42.0.2311.90 changes the display style of html5 time elements and assumes monospace. Possibly no action should be taken, but maybe bootstrap should treat this input type differently?
input[type="date" i], input[type="datetime-local" i], input[type="month" i], input[type="time" i], input[type="week" i] {
  align-items: center;
  display: -webkit-inline-flex; /* Dangerous? */
  font-family: monospace;
  overflow: hidden;
  padding: 0px;
  -webkit-padding-start: 1px;
}

Probably don't need to do much here since we override much of those styles with .form-control anyway. Thanks for the heads up though!

Interesting note: Their display can't be totally overridden; their calculated display is always some kind of flex. Setting display: block just makes it compute to flex (instead of inline-flex).


chore(test): add retainer api test script

Change enable =  true/false ,  after https://github.com/emqx/emqx/pull/5769 merged.


idleinhibit windowrule not working

Hyprland Version
Hyprland, built from branch main at commit 9ec656a37df103edc111e8e48cdfe89528dfe92e dirty (makefile: make binaries 755 instead of 711). Tag: v0.30.0-40-g9ec656a3  flags: (if any)
Bug or Regression?
Bug
Description
After adding the windowrule:
windowrulev2 = idleinhibit focus,class:(org.qutebrowser.qutebrowser)
(or any other mode for idleinhibit, including non existent modes (which btw doesn't raise any errors))
nothing keeps swayidle from firing after given timeout.
Setting a different rule like 'dimaround' for testing works.
How to reproduce
add the above mentionend windowrule for whatever window class or title:
windowrulev2 = idleinhibit focus,class:([window])
set your idle handler (in my case swayidle) to a short timeout for testing:
swayidle -w 5 [your_lock_command]
Crash reports, logs, images, videos
No response

same here windowrulev2 = idleinhibit always, fullscreen:1 not working

Same here...
I've try windowrulev2 = idleinhibit fullscreen, fullscreen:1 but swayidle isn't stop.

works for me. What's your swayidle ver?

Facing a similar issue too. My swayidle version is swayidle.x86_64 1.8.0-2.fc38
To check I opened my game on a different workspace and ran swayidle -w timeout 5 swaylock.
It ended up locking the screen after 5 seconds.
windowrulev2 = idleinhibit fullscreen, fullscreen:1
hyprctl clients
Window 55c14b845f90 -> Hollow Knight:
	mapped: 1
	hidden: 0
	at: 0,0
	size: 1536,864
	workspace: 1 (1)
	floating: 1
	monitor: 0
	class: Hollow Knight
	title: Hollow Knight
	initialClass: Hollow Knight
	initialTitle: Hollow Knight
	pid: 30356
	xwayland: 1
	pinned: 0
	fullscreen: 1
	fullscreenmode: 0
	fakefullscreen: 0
	grouped: 0
	swallowing: 0
	focusHistoryID: 2

idleinhibit is not dynamic, your wr will not work. That is expected.
Although fair point it should be.

Using hyprland 0.30.0-1 and swayidle 1.8.0-1 (both from Arch Extra repo).
The rule I have for fullscreen works as anticipated:
windowrulev2 = idleinhibit fullscreen,class:(.*)
But the rules I have for focused windows do not. Example:
windowrulev2 = idleinhibit focus,class:(mpv)
Additionally, changing 'focus' to 'always' seems to have no effect and neither does changing 'class' to 'title'.
hyprctl clients for mpv is as follows:

Window 5556323ce280 -> No file - mpv:
mapped: 1
hidden: 0
at: 1920,48
size: 1920,1032
workspace: 7 (7)
floating: 0
monitor: 1
class: mpv
title: No file - mpv
initialClass: mpv
initialTitle:
pid: 56668
xwayland: 0
pinned: 0
fullscreen: 0
fullscreenmode: 0
fakefullscreen: 0
grouped: 0
swallowing: 0

Going to try the sway-audio-idle-inhibit-git package as a workaround for now.

forgot to mention, it now is since like 3 days ago: 49597688e975c23b4f3bb53e77617ed3cd1e4937

Yep works for me. Thanks a lot orz

@vaxerski one thing i'm noticing while playing around with rules since it hasn't been behaving for me and i'm actually looking into it more... is that the rules i set up seem to only apply for idleinhibit on the monitor my mouse is on. I have a rule set up for firefox when i have videos playing, but it only inhibits idle when my mouse is on the monitor with that firefox window. If I have my mouse on my main monitor, it doesn't inhibit idle.

@khaneliman from my testing it seems that Firefox only requests inhibition when it's focused, and unregisters the cookie when it's not. Chromium keeps the cookie alive as long as media is playing.

I thought the idleinhibit rules were specifically for specifying my own scenarios and not to rely on the application.

Thanks @vaxerski , works perfectly fine when playing content.
Also, thanks in general for this whole project, no, eco-system. Been using Hypr* for a while and I love the progress. Got to leave a tip for your good work.
Can I close this, or should I leave this open for now? This is resolved for me


Namespace aliases

Using namespace aliases gets false positive errors:

src/test.php:4 PhanUndeclaredClassMethod Call to method __construct from undeclared class \foo\bar
src/test.php:4 PhanUndeclaredClassMethod Call to method test from undeclared class \foo\bar

Simplified code example, file test.php
<?php
use bar as foo;
include 'bar.php';
(new foo\bar)->test();

bar.php
<?php
namespace bar;
class bar {
    public function test()
    {
        echo 'works',PHP_EOL;
    }
}

Slightly simpler demo of the issue:
<?php
namespace NSA {
    class CA {}
}
namespace NSB {
    use NSA as Alias;
    $v = new Alias\CA();
}

This doesn't seem to be restricted to direct aliases, but also indirect aliases.
<?php

namespace Foo\Bar {
    class Baz {}
}

namespace A {
    use Foo\Bar;

    var_dump(new Bar\Baz);
}

PhanUndeclaredClassMethod Call to method __construct from undeclared class \A\Bar\Baz


implementing in capacitor with angular

hi, is there a tutorial on how i can implemented this plugin in angular? from the demo version that you provided, it's using vue.
somehow i try to implemented it in my apps and build it to iOS, but it got this error :
⚡  WebView loaded
⚡  [log] - begin init biometric..
⚡  [error] - Error during biometric auth: {"code":"UNIMPLEMENTED"}
here's my code snippet :
import { registerPlugin } from '@capacitor/core';
import { BiometricAuthPlugin } from '@aparajita/capacitor-biometric-auth';
const BiometricAuth = registerPlugin<BiometricAuthPlugin>('BiometricAuth');

  initBiometric() {
    console.log('begin init biometric..');
    BiometricAuth.checkBiometry()
      .then((result: any) => {
        console.log('auth biometry', result);
      })
      .catch((error: any) => {
        // Handle any errors
        console.error('Error during biometric check:', error);
      });
  }

  ngOnInit() {
    this.initBiometric();
  }

Thanks!

Don't call registerPlugin.
import { BiometricAuth } from '@aparajita/capacitor-biometric-auth';

whoa, now it works as it should. Thanks!
one thing, how can i check if the authenticated process is success?
  initBiometric() {
    console.log('begin init biometric..');
    // const name = getBiometryName;
    console.log('biometric name', name);
    BiometricAuth.checkBiometry()
      .then((result: CheckBiometryResult) => {
        console.log('check biometry', result);
        if (result.isAvailable) {
          BiometricAuth.authenticate().then((res) => {
            console.log('success?', res);
          });
        }
      })
      .catch((error: any) => {
        // Handle any errors
        console.error('Error during biometric check:', error);
      });
  }

when i call authenticate(), my console that write success is undefined.
Thanks!

You should expect no more or less than exactly what the docs say:

If authentication succeeds, the Promise resolves. If authentication fails, the Promise is rejected with a BiometryError

You should expect no more or less than exactly what the docs say:

If authentication succeeds, the Promise resolves. If authentication fails, the Promise is rejected with a BiometryError

my bad, got it! Thanks, really appreciate it


Use Standard Dependency Workflow

Summary
Use the standard dependency workflow. Resolves #254.

This PR should provide a generally equivalent result as dep-server as guided by https://github.com/paketo-buildpacks/rfcs/blob/main/text/ruby/0005-ruby-dependencies.md.
That being said, I'm really curious about our whole approach to this.

Should we have a separate curl buildpack just for installing curl?
Ruby is only supported on base and full. Full already has curl on the run image.

Should we check for the previous existence of curl on the path before installing curl?
Should we add curl to the base run image?

How might we extend curl installation to the wildcard stack? The approach in this PR does not scale to arbitrary stacks. Should we move the compilation included in this PR into the buildpack?
Remind me why curl is needed for passenger? It's not immediately obvious.

Note that the retrieval step is rather inefficient in that it downloads the source tarball three times:

To verify the ASC signature
To retrieve the checksum
To search for licenses
I chose to optimize for simpler code rather than worrying about efficiency. Curl is only released a few times a year, so it's hardly a huge impact.

Note that this PR does include jammy compilation, but the buildpack will need to be marked with (A) jammy compatibility and (B) integration tested on jammy.

@sophiewigmore I'm tempted to recreate<EMAIL_ADDRESS>with the new dependency workflow so that we get immediate jammy support.
We could throw away the recreated bionic dependency or swap it in for the current one.
What do you think?

Should we have a separate curl buildpack just for installing curl?

I think that's overkill, as we haven't found any other buildpack that requires curl at runtime.

Ruby is only supported on base and full. Full already has curl on the run image.

Should we check for the previous existence of curl on the path before installing curl?

I'd rather not rely on curl being present in the stack, as in the general case it won't be present. The full stack is the exception - it provides everything for everyone for the purposes of getting started. It has too many packages to be a viable stack for production.

Should we add curl to the base run image?

I'd prefer not to add curl to the base stack run image. It increases the surface area for security concerns significantly, and as mentioned above no other Paketo buildpack requires it at run-time.

How might we extend curl installation to the wildcard stack? The approach in this PR does not scale to arbitrary stacks. Should we move the compilation included in this PR into the buildpack?

Yes, in principle. If/when we add * stack support for the Ruby buildpack, we will have to add compilation logic for all the components (including MRI) to the relevant buildpacks. I don't think we have to solve that yet, though.

Remind me why curl is needed for passenger? It's not immediately obvious.

I don't remember and I haven't looked into it :)

Can we use a package manager to install curl? We could add a script that would execute on launch container startup, for example. apt-get install curl -y would have nice behavior in that it would do nothing if curl was already installed.

How would this work? The stacks do not have permission to execute arbitrary apt commands, by design, so we can't do this in the buildpack. Doing it in the stack is the same question as you ask above - should we add curl to the base stack run image?

I agree 100% with every response @robdimsdale  gave, however, I appreciate you asking these types of questions @joshuatcasey  to make sure we're doing the right thing.
Curl is needed to start passenger at launch- so it needs to be installed for base-stack purposes. We could probably get away with only installing curl if the stack doesn't include it, but it's probably easier to keep the logic as is

Note that the retrieval step is rather inefficient in that it downloads the source tarball three times
What's the main reason we couldn't reuse the same tarball?

We could probably get away with only installing curl if the stack doesn't include it, but it's probably easier to keep the logic as is

Yes, easier and also less logic to handle (less to test; less tech. debt to incur, etc)

This code works with the validator script (generates good metdata, compilation produces an artifact and checksum file)
The compiled  bionic-target dependency works successfully in the buildpack
I am wondering how you decided that the Jammy and Bionic variants need to be separately compiled. How do we know that the same dependency won't work for both?

Also if you add jammy support, then you need to add integration testing for jammy. It's not overly difficult to add, but I do not want to ship a dependency we haven't tested with the buildpacks.

I am wondering how you decided that the Jammy and Bionic variants need to be separately compiled. How do we know that the same dependency won't work for both?

I haven't explored this, but given we're compiling with the --with-openssl flag, I'd bet we're dynamically linking against openssl/libssl which we know is not ABI-compatible between bionic and jammy.

@robdimsdale ah I think you're right. I think the build I saw succeed must have passed due to some cached Docker volume magic.

I didn't test to see if a single dependency would work for both bionic and jammy, but I was aware that they have different versions of libssl so I didn't even try.
As for the dependency testing - I just forgot about that part. I see dep-server does have some tests so I'll bring those over. I'll add that test now.

Created #291 to add jammy compatibility

I'm confused as to whether we still download the source tarball three times in the retrieval step - I couldn't see evidence of that but I don't see any changes either. I could be missing something though.

It still downloads three times. The source tarball is <5MB and it's only released a few times a year (maybe 5 or 6) so I didn't optimize.

It still downloads three times. The source tarball is <5MB and it's only released a few times a year (maybe 5 or 6) so I didn't optimize.

Yeah, I'm not concerned about optimizing either. I just couldn't see where we were doing three separate downloads. I see it now though:

In retrieval/main.go - curlTarballPath, err := downloadToFile(sourceURL)
In compile/entrypoint for Jammy: curl "${upstream_tarball}" --output ...
As above but for Bionic.

@paketo-buildpacks/ruby-maintainers I'm happy with this but I'll leave it another couple of days for any of you all to take a look and share thoughts/feedback. If there's no feedback I'll merge it by the end of the week.

@sophiewigmore In addition to shipping jammy dependencies, we'd also have to declare the buildpack itself is jammy-compatible (via the top-level [[stacks]] key in buildpack.toml).
Phrased another way, until we add that in, the jammy dependencies are unused.
This gives us the option of adding the dependencies now and validating jammy support at a later date. I wouldn't want to wait too long, however, as adding the jammy dependencies will increase the size of the buildpack with no benefit until we add jammy support to the buildpack.

Thats reasonable! @robdimsdale

Will approve once Ryans comments are addressed

@sophiewigmore @robdimsdale That's exactly the plan for #291 , to get that in place right after this PR is merged.


Refine on overall form only working when user is trying to submit the form

Discussed in https://github.com/ciscoheat/sveltekit-superforms/discussions/156

Originally posted by VelizarDemirev May 22, 2023
I have a little example here: https://stackblitz.com/edit/sveltekit-superforms-testing-iqknt7?file=src%2Flib%2Fvalidator%2Fvalidator.ts
There I have a refine on the overall object and its only validating when user is trying to submit the form and not on every change of the form itself. It would be cool if this is also working.

This will be fixed in 1.0.

Fixed in v1.0.0-rc.1


Have travis cache node_modules

For faster builds.
I don't think (?) it will mess anything up, because it will still run npm install, just with the node_modules folder already the same as last build.
https://blog.travis-ci.com/2013-12-05-speed-up-your-builds-cache-your-dependencies

woo. down to 1 min 45 sec


Update v2.0 migration guide

Closes #3434

@aaronsteers I moved away from the original bulleted list in favour of headers in order to benefit from anchors. I suspect anchors will come in handy when fielding migration questions in Slack post 2.0 😅

@aaronsteers I moved away from the original bulleted list in favour of headers in order to benefit from anchors. I suspect anchors will come in handy when fielding migration questions in Slack post 2.0 😅

This is much better. The bulleted list was me trying to get a bunch of thoughts down quickly. Your iteration is much better now. 😄


Add support for not building the ingress controller and using the default OSS version

Currently, the reference architecture is designed such that you have to build the ingress controller from scratch. With this change, you can now opt to use the default ingress controller as installed from helm without building.

Fixed in 70db8b82db3b81b5f7edfa0c9e464a64aa26fde4

Closing out, fixed as noted above. Additionally, the ingress-repo-only project uses a JWT to pull plus or oss depending on the user choices. This will also be refactored in #81


Add consistency check to Angular UI

Added consistency check to Angular UI
This Implementation checks the Repository for consisteny. A REST call enables to get informations about the state of the Repo. In the UI a button makes it possible to call this URL and check the Result.

Start and end date: 2017-09-04 to 2017-09-21

Contributor: Latife Sen @Senle & Ruzica Jozin @ruzjozin

Supervisor: Oliver Kopp @koppor

[ ] Ensure that the commit message is a good commit message

[ ] Change in CHANGELOG.md described

[ ] Tests created for changes

[ ] Screenshots added (for UI changes)

Filename endings should be in lower case (PNG -> png)
Please fix conflicts.

Did you actually implent something in the UI? There are only some changes in the backend here...

We implemented a Button in the ui
Am 14.11.2017 12:24 schrieb "Lukas Harzenetter"<EMAIL_ADDRESS>
Did you actually implent something in the UI? There are only some changes
in the backend here...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/OpenTOSCA/winery/pull/37#issuecomment-344229174, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AaaqVHA-4OBteLXsTPGs-l1ETtfnBcbAks5s2Xh8gaJpZM4Pf2bo
.

But I cannot see the button in the commit. Can you update the commit please?
On Tue, Nov 14, 2017 at 8:02 PM +0100, "senle"<EMAIL_ADDRESS>wrote:
We implemented a Button in the ui
Am 14.11.2017 12:24 schrieb "Lukas Harzenetter"<EMAIL_ADDRESS>
Did you actually implent something in the UI? There are only some changes

in the backend here...

—

You are receiving this because you authored the thread.

Reply to this email directly, view it on GitHub

https://github.com/OpenTOSCA/winery/pull/37#issuecomment-344229174, or mute

the thread

https://github.com/notifications/unsubscribe-auth/AaaqVHA-4OBteLXsTPGs-l1ETtfnBcbAks5s2Xh8gaJpZM4Pf2bo

.

—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.

We probably missed out the Ui part in the pull request and did not commit
it, we could try reimplementing it from scratch and provide the Solution
again on git repository
Am 14.11.2017 20:02 schrieb "Latife Sen"<EMAIL_ADDRESS>
We implemented a Button in the ui
Am 14.11.2017 12:24 schrieb "Lukas Harzenetter"<EMAIL_ADDRESS>
:

Did you actually implent something in the UI? There are only some changes
in the backend here...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/OpenTOSCA/winery/pull/37#issuecomment-344229174, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AaaqVHA-4OBteLXsTPGs-l1ETtfnBcbAks5s2Xh8gaJpZM4Pf2bo
.

Does git reflog help to discover the commits you did for the UI? Oh, I see, no commit done at all.
I think, reimplementing is too much effort. We then have to staff other persons for that.


[Enhancement][Accessibility] When Listbox is closed, Up/Down should also highlight last/first option

downshift version: 2.2.3
node version: 8.11.3
npm (or yarn) version: npm, 5.6.0

Enhancement description:
According to ARIA 1.1 guidelines related to the Combobox, when Listbox is closed and you hit Up / Down as focus is on the Input, the Listbox should open, and the highlighted option should be last / first item. More on that here.
At the moment, the scenario just opens the Listbox, without highlighting anything.
Since I am using Downshift for a prototype in the Stardust project, I managed to fix it from our side, but I believe this accessibility enhancement should also be implemented here, in the source.
Suggested solution:
If Listbox is not open and Up/Down is pressed, highlight last/first option after opening the Listbox.
Now working on a PR with a proposed solution. Updating some unit tests to reflect the changes.

I'm pretty sure that if you set the defaultHighlightedIndex to 0 that's the behavior you'll get.

https://github.com/paypal/downshift/pull/590
Related to your answer, if I do that, the dropdown will always open with first item highlighted.
I only want for it to 1) open with first highlighted when I press Arrow Down and 2) open with last highlighted when I press Arrow Up.
When opened at click / text input, behaviour should remain the same. Do you agree?

:tada: This issue has been resolved in version 3.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ReferenceError: select2_15f2d1c9 is not defined

I have this error, I don't know how to solve it:
jquery.js:3783 jQuery.Deferred exception: select2_15f2d1c9 is not defined ReferenceError: select2_15f2d1c9 is not defined
at HTMLDocument. (http://localhost:8080/mjg_aux_configuracion/index:1049:80)
at mightThrow (http://localhost:8080/assets/1f85442c/jquery.js:3489:29)
at process (http://localhost:8080/assets/1f85442c/jquery.js:3557:12) undefined
jQuery.Deferred.exceptionHook @ jquery.js:3783
jquery.js:3793 Uncaught ReferenceError: select2_15f2d1c9 is not defined
at HTMLDocument. (index:1049:80)
at mightThrow (jquery.js:3489:29)
at process (jquery.js:3557:12
This is my code in _columns.php:
)'filterType' => GridView::FILTER_SELECT2,
'filter' => ArrayHelper::map(
Mjg_aux_tipo_configuracion::find()->all(),
'idtipoconfiguracion',
function ($model) {
return $model->descripcion;
}
),
'filterWidgetOptions' => [
'pluginOptions' => ['allowClear' => true],
],
'filterInputOptions' => ['placeholder' => 'Tipo...'],
But it happens to me everywhere.

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.


Add prototype-patching operator modules

(Recapping some offline discussion between @blesh, @IgorMinar, @robwormald and myself)
In order to allow exporting a minimal Observable and to increase composition of operators, while maintaining nice chaining syntax, we propose exporting each operator as an easily-importable module that will have a side effect of patching the Observable prototype.
import {Observable} from '@reactivex/rxjs';
// Observable.prototype.map = undefined
import {map} from '@reactivex/rxjs/map';
// Observable.prototype.map = function (...) {...}

With TypeScript 1.8, there will be support for this type of module to re-open and extend types, so we can not have to stub out all types on the Observable class like we do now. In anticipation of this change, we should go ahead and add interfaces for all operators, with optional methods. The Observable class will implement all operator interfaces instead of manually stubbing out methods on the class itself.
It's not ideal for an import to have side effects, and to mutate a shared object. In this case, I think the mutation is not likely to cause issues for people, since most folks will only import operators in one place inside an application. And if folks are only importing operators from rxjs, there's no risk of method name collision.
Eventually, when JS has sugar like function bind to make extension-like functions more composable, there should be a breaking change to remove the side effect of the imports.

CC @blesh @robwormald

It's obvious how this will benefit browser end-users, but what about the node users? While updating window in browsers is (mostly) acceptable, updating global in node is not. However, I would expect node users to mostly import the whole kitten-kaboodle and not care about size.
Also: What are alternatives we've considered?

I think from the outside, the story doesn't really change for a node user:
before:
//Rx.ts
import {Observable} from './Observable'
import {map} from './operators/map'
//etc

Observable.prototype.map = map;

export {Observable}

after:
//Rx.ts
import './operators/map'
import {Observable} from './Observable'
//etc

export {Observable}

browser user who wants the whole mess:
import {Observable} from 'rxjs/Rx';

browser user who only wants map
import {Observable} from 'rxjs/Observable'
import 'rxjs/operators/map'

node user who wants the whole mess
var Rx = require('rxjs') //package.json maps to main: Rx.js

I just tested that and it appears to work fine. Barring that, index.js could do what we're doing today, as browers don't typically understand the index concept.

@robwormald what is the status on this?

About 20 minutes away

On Nov 30, 2015, at 12:07 PM, Ben Lesh<EMAIL_ADDRESS>wrote:
@robwormald https://github.com/robwormald what is the status on this?
—
Reply to this email directly or view it on GitHub https://github.com/ReactiveX/RxJS/issues/750#issuecomment-160743939.

:+1:

Closed by @robwormald in d17a42faa8fd9d0a5ee0f7a1945cc0bf644ad71b


Trying to install dlib in Windows to use along with python

Expected Behavior
Trying to install dlib in windows to use along with face detection modules.
Current Behavior
Throws error and cannot use along with python. I tried to build it to using this video which was the only one that worked to build. https://www.youtube.com/watch?v=BKGkA_K1KPA. I was able to successfully build dlib and the dlib is located in my site-packages folder.
When i try pip install, it says already installed and i cannot import in python(in Anaconda prompt) and jupyter notebook.
It is not a path issue as I have added all relevant paths. I dont want to install older versions of dlib using .whl file (https://pypi.org/simple/dlib/) or through conda-forge (19.9) as I have a requirement to use 19.13.1 or higher for my project
After building dlib using cmake and Visual Studio are there additional steps to make it work with python.
Steps to Reproduce
I am unsure of how to reproduce the problem. I downloaded 19.5.0 zip file from this repo and i extracted in my site-packages. I built using cmake and successfully created a project in VS as shown in the video above. But when i go into my Anaconda Prompt inside python, it is saying dlib module cannot be found.

Version: 19.5.0
Where did you get dlib: <!-- This repo
Platform: <!--Windows 10 64-bit | Python 3.6.0  |  Anaconda 4.5.11
Compiler:  Cmake 3.6.3 x64

Update:
I was able to successfully install version 19.8 using .whl file. Where can i find a .whl file for the latest versions 19.13.1 - 19.15? It would be really useful as this method is the only one that works for me as using conda to install v19.10 downgrades other required packages.

The instructions in that video are just wrong.  Please read the official dlib instructions: http://dlib.net/compile.html


Parse-time specification of start non-terminal

I'm working on a grammar for a query language that has several entities that can recursively use each other. As an example, imagine SQL and entities like an entire subquery, a projection item, a constraint in the WHERE clause - any of those entities can contain the other entities inside. The parser needs to be able to parse a string given what kind of entity it is, i.e. I ultimately need a method that parses any valid select query, another method that parses any valid projection item, another one that parses a constraint and so on - I think I'll need at least 7 such entities.
I currently see two options on how to do that.

Create mutliple parsers, each time specifying the same grammar but different start non-terminal. This has the disadvantage of compiling the grammar and creating the parser each time, which is a problem considering just one parser takes quarter of a second to build and with 7 the startup time increases too much.
Create a grammar with a special starting non-terminal that determines the type of entity that the parsed string should represent based on some short prefix, like here (just an illustration, I didn't even check this is a valid grammar):

start: "!select" select
     | "!projection" projection
     | "!where" where
// bellow is what the actual grammar might look like
select: "select" projection+ "where" where
projection: "column" | select
where: "constraint" | "exists(" select ")"

The above is most likely what I'll end up doing, but it's ugly and I will have to account for this artificially added prefix in determining the position of parse errors in user supplied inputs.
A better solution I could imagine is the ability to supply the start non-terminal when calling the parse method. I don't know much of the theory behind the other parser frontends, but for LALR this should be possible just by initializing the parser state stack with a state determined by mapping the name of the start non-terminal supplied by the caller.
This is probably too big of a change for me to attempt to do myself any time soon. Is this something that you would like lark to have one day? Do you see any better workaround, or is the input prefix hack the best one can do?

Upon some reflection, I think what you're asking is possible, and shouldn't be too difficult to implement (if and when I find the time to do it). However I'm not 100% certain that's the case, as I might be forgetting some hidden obstacle.
The API I envision for such a feature, is to specify ahead-of-time a list of possible start symbols, and later on to be able to choose between them. So:
parser = Lark(..., start=['rule1', 'rule2', 'rule3')
parser.parse('text', start='rule1')
parser.parse('text', start='rule2')

Just to make sure, will that work for your purposes?
Also, did you consider using Earley? While slower for big chunks of texts, it is much faster to initialize, and you could easily implement multiple start symbols there yourself.

That API seems great, I didn't think it would be necessary to initialize the parser with a set of possible start symbols, but it's certainly not a problem for my usage.
As for Earley, while long startup time is somewhat of an issue, parsing time is still orders of magnitudes more important.
Thank you for your response, I'm glad such a feature sounds reasonable for you. I'll see which one of the two workarounds I will use in the meantime.

This feature sounds useful also for, e.g., testing the correct operation of atransformer for certain sub-parts of the grammar. Currently, I create a separate Lark instance for each test which, although relatively easy to implement with pytest fixtures, is quite wasteful/slow.
Maybe a better API would be
parser = Lark(..., start='rule2', start_choices=['rule1', 'rule2', 'rule3'])
parser.parse('text')  # will use rule2
parser.parse('text', start='rule1')  # will dynamically switch to start with rule1

to ensure this feature remains optional and to not complicate parse calls for the "default" usage?

@erezsh, you are the most amazing open source software author I've ever had the please to encounter. :) Every time I reported a problem with lark (of which there really aren't many), you reacted incredibly fast either with a fix or a code review, but I really didn't expect this barely important feature request to be satisfied this fast... Lark is now officially my favorite Python library, I already wanted to dedicate my next PyCon SK talk to it, I'll definitely do it now.
I tested your solution on my 10kB grammar and it works great!

Thanks, @petee-d, I'm happy you had such a good experience with Lark! And I'm flattered to receive such compliments. This feature request just had the right balance of being small and simple enough, but also a little tricky, which is my favorite combination. Also, I think it's an improvement on Lark's API.
If you do end up talking about Lark, let me know if you have any questions for me. And if possible, please send me the link afterwards, so I can brag about it :)

Just to tame the expectations, the conference is like 9 months away. :)
I certainly don't want to rush you or anything, but do you have plans to get the multiple start token changes to pip any time soon? If not, I might end up using it in production by commit ID, but that's not ideal. :smile:

Heh, no problem. Well, now that it's tested and seems to be working, I can merge it into master. But then I usually wait a couple of weeks at least, to see if it breaks anything before pushing a new version to pip.

That's awesome, it might take a couple of weeks to get my thing to production anyway and I can do with a commit reference until then.

(pushed to master)


certstream docker

Status
In Progress
Description
certstream allows a firehose access to the cert transperacy

@Ni-Knight can you attach the content pr?


Ask Users to Submit Solutions When they got an Accepted

Ask Users to Submit Solutions When they got an Accepted

Done.


backup: add --dry-run/-n flag

What does this PR change? What problem does it solve?
This PR is a follow-up of #2308 and #3210 as both PRs seem to be stale.
I used the changes by @rmmh and @erincerys and did the following changes:

simplified the dry run backend quite a lot (but is now only working for backup dry runs)
changed the tests accordingly and separated the integration test for the dry run backup run

Was the change discussed in an issue or in the forum before?
closes #1542
Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[x] I have added tests for all changes in this PR
[x] I have added documentation for the changes (in the manual)
[x] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

Just added this patch to the restic package for Solus, was rather surprised this functionality wasn't already in it. Works as intended.

Just tried the --dry-run with backup with my restic  version
restic 0.12.0 compiled with go1.15.8 on linux/amd64
My cmdline was: restic backup --dry-run -r $RESTIC_REPO $RESTIC_SRC -p $RESTIC_PASSWORDFILE
and get:
unknown flag: --dry-run
Do you have any hints?
Iodok

@Iodok The patch hasn't been merged in and is awaiting changes. The process for building Restic is fairly trivial, you can apply the patch separately or wait until it has been merged in and a future release occurs with the change in it.

Works as intended. Please merge for inclusion in next release :-)

I've added a short paragraph describing the use cases solved by this PR.

I've rebased the PR before merging.


APT source whitelist request for elasticsearch-2.2

  {
    "alias": "elasticsearch-2.2",
    "sourceline": "deb http://packages.elastic.co/elasticsearch/2.2/debian stable main",
    "key_url": "https://packages.elastic.co/GPG-KEY-elasticsearch"
  },

IIRC, we wanted to use the specific version of ES -- head was 2.3 and 2.x downloaded that version, we still had 2.2 in production). We wanted to introduce this after a production incident where it worked OK on 2.3, but failed on 2.2


fix(worlds): replace deprecated GzScene3D plugin

FIX: #24

@beniaminopozzan Is this backwards compatible with gz-garden?

@frede791 yes it is.
The GzScene3D plugin was deprecated in Ignition Fortress https://github.com/gazebosim/gz-sim/blob/gz-sim7/Migration.md#gazebo-sim-5x-to-6x

@beniaminopozzan I've updated my apt package to gz-harmonic and tried running the default.sdf file but it doesn't appear to load. Any ideas why?

@frede791
I can't tell. I'm running both Garden and Harmonic built from source and I don't have issues.
How are you running the simulation? Does Harmonic work on main?

@beniaminopozzan I found some time to look at this again. I think it might have just been my build. It got all three worlds to run.


beaglebrew_setup.sh not updated for systemd

A systemd startup script has been added but beaglebrew_setup.sh has not been updated to install and activate it.

Fixed in f9b7a98b52eb292bd8dbfed1ceb24d36f960e31b


feat: add waitForTappable

Added but it got below error..., but it is actually https://github.com/flutter/flutter/blob/master/packages/flutter_driver/lib/src/common/deserialization_factory.dart#L59 . Maybe my test app had wrong flutter SDK built one..
[HTTP] --> POST /wd/hub/session/14c867e1-8c43-4ad0-bb11-117a22ca8439/execute/sync
[HTTP] {"script":"flutter:waitForTappable","args":["eyJmaW5kZXJUeXBlIjoiQnlUZXh0IiwidGV4dCI6IlRhcCBtZSEifQ==",1000]}
[debug] [FlutterDriver@7ea1 (14c867e1)] Calling AppiumDriver.execute() with args: ["flutter:waitForTappable",["eyJmaW5kZXJUeXBlIjoiQnlUZXh0IiwidGV4dCI6IlRhcCBtZSEifQ==",1000],"14c867e1-8c43-4ad0-bb11-117a22ca8439"]
[debug] [FlutterDriver] Executing Flutter driver command 'execute'
[debug] [FlutterDriver] >>> {"command":"waitForTappable","finderType":"ByText","text":"Tap me!","timeout":1000000}
[debug] [FlutterDriver] <<< {"isError":true,"response":"Uncaught extension error while executing waitForTappable: DriverError: Unsupported command kind waitForTappable\n\n#0      DeserializeCommandFactory.deserializeCommand (package:flutter_driver/src/common/deserialization_factory.dart:68:5)\n#1      FlutterDriverExtension.deserializeCommand (package:flutter_driver/src/extension/extension.dart:425:18)\n#2      FlutterDriverExtension.call (package:flutter_driver/src/extension/extension.dart:371:31)\n#3      BindingBase.registerServiceExtension.<anonymous closure> (package:flutter/src/foundation/binding.dart:597:32)\n<asynchronous suspension>\n","type":"_extensionType","method":"ext.flutter.driver"} | previous command waitForTappable
[debug] [FlutterDriver@7ea1 (14c867e1)] Encountered internal error running command: Error: Cannot execute command waitForTappable, server reponse {
[debug] [FlutterDriver@7ea1 (14c867e1)]   "isError": true,
[debug] [FlutterDriver@7ea1 (14c867e1)]   "response": "Uncaught extension error while executing waitForTappable: DriverError: Unsupported command kind waitForTappable\n\n#0      DeserializeCommandFactory.deserializeCommand (package:flutter_driver/src/common/deserialization_factory.dart:68:5)\n#1      FlutterDriverExtension.deserializeCommand (package:flutter_driver/src/extension/extension.dart:425:18)\n#2      FlutterDriverExtension.call (package:flutter_driver/src/extension/extension.dart:371:31)\n#3      BindingBase.registerServiceExtension.<anonymous closure> (package:flutter/src/foundation/binding.dart:597:32)\n<asynchronous suspension>\n",
[debug] [FlutterDriver@7ea1 (14c867e1)]   "type": "_extensionType",
[debug] [FlutterDriver@7ea1 (14c867e1)]   "method": "ext.flutter.driver"
[debug] [FlutterDriver@7ea1 (14c867e1)] }
[debug] [FlutterDriver@7ea1 (14c867e1)]     at FlutterDriver.executeElementCommand (/Users/kazuaki/GitHub/appium-flutter-driver/driver/lib/sessions/observatory.ts:151:11)
[debug] [FlutterDriver@7ea1 (14c867e1)]     at runMicrotasks (<anonymous>)
[debug] [FlutterDriver@7ea1 (14c867e1)]     at processTicksAndRejections (internal/process/task_queues.js:95:5)
[debug] [FlutterDriver@7ea1 (14c867e1)]     at /Users/kazuaki/GitHub/appium-flutter-driver/driver/lib/commands/execute/wait.ts:20:3
[HTTP] <-- POST /wd/hub/session/14c867e1-8c43-4ad0-bb11-117a22ca8439/execute/sync 500 1513 ms - 2109

added this in 1.2.0, hope this will work in a proper flutter version...


Pro 2487

@michelleinez you might have to review the linter errors with eslint src since the compilation is taking warnings as errors. We want to enforce this warnings since it ensures we don't have any feature half done (like an unused variable).


Updates bcftools to latest version

Update BCFtools to use 1.20
https://github.com/samtools/bcftools/releases
Would like to adopt the --write-index functionality (introduced in 1.18), so we don't have to follow bcftools commands with a subsequent tabix command

The released log looks additive (i.e. I would not expect any of our current workflows to be broken by this change, as we are using a limited number of features in 1.16 (August 2022), none of which have been removed, a couple have additional CLI flags available, but no backwards-incompatible changes)
Also ditches the miniconda build, just doesn't seem necessary to delegate this installation to another tool, which needs to be installed itself
A specific job failing due to use of commands which are not in our containerised version of bcftools: https://batch.hail.populationgenomics.org.au/batches/457521/jobs/29
Edit: added a few more names to this - I don't anticipate any breaking changes, but this tool is very generic, so an update could affect all our workflows
Here's a run using this build (built on this Dockerfile, version 1.20, in images-dev): https://batch.hail.populationgenomics.org.au/batches/457715

If you're going to build bcftools from source, which I'd generally be in favour of, I'd strongly recommend building from a release tarball rather than a git checkout, and running configure.
Bioconda's build enables a few features (the polysomy command, which needs GSL; filtering via Perl syntax) that you'd need to install more prerequisites to duplicate, but we probably don't use those.
It might be worth doing this via a multi-stage docker build so that the compilers and development packages aren't in the eventual bcftools image.

the --write-index is a major plus! I use core functions inbcftools in several parts of my pipeline, but I think upgrading is fine (and can always use the older version by specifying the flag if needed).

It might be worth doing this via a multi-stage docker build so that the compilers and development packages aren't in the eventual bcftools image.

Pushed a 3-stage version:

install required packages for installation and running as a base
required for compiling only, copy and build release
also from base, copy compiled software

I've taken the liberty of pushing to your branch to add bcftools's plugin commands to the image and remove the unneeded development packages from the final image.
Now that it's using a multi-stage build, the compiler stage does need to be so optimised so could use several RUN commands instead of … && … as we don't care how many layers it has. That would allow more caching during the development cycle, which would make the cycle a bit faster… 🤔

This comment/commit chain is a decent tracking of the build improvements, but the final image has been reimplemented in #177


Missing GHIElectronics.NETMF.Hardware.dll

Also not found in GHI Electronics 4.3 SDK directory

@heartlandcoop-prichards did you try an older version of the SDK? I think this was written when 4.1 or 4.2 was the latest one.
https://old.ghielectronics.com/support/netmf/sdks
Maybe the renamed it in the new version?


Error in run_regression

Hi, I tried following your first vignette (edit: using my own data) and ran into an error at the run_regression step. I'm getting this error:
AttributeError: 'numpy.ndarray' object has no attribute 'toarray'.
I noticed that if I don't run a previous step (adata_snrna_raw.raw = adata_snrna_raw) then it runs fine but then my gene filtering doesn't go through. It seems like the matrix is already dense, so it errors on .toarray?
Similarly, on these previous steps gene filtering steps, if I remove .toarray it works, but otherwise gives me the same error:
adata_snrna_raw.var['n_cells'] = (adata_snrna_raw.X.toarray() > 0).sum(0)
adata_snrna_raw.var['nonz_mean'] = adata_snrna_raw.X.toarray().sum(0) / adata_snrna_raw.var['n_cells']

Please advise. Thanks!

I tried this to convert my dense array back to sparse:
from scipy import sparse
adata_snrna_raw.X = sparse.csr_matrix(adata_snrna_raw.X)
adata_snrna_raw.raw = adata_snrna_raw

This gets me past the original error in run_regression, but now I get this error during plotting
ValueError                                Traceback (most recent call last)
/tmp/ipykernel_2773/1926523747.py in <module>
     29                    export_args={'path': results_folder + 'regression_model/', # where to save results
     30                                 'save_model': True, # save pytorch model?
---> 31                                 'run_name_suffix': 'mouse' + number_id})
     32
     33 reg_mod = r['mod']

~/.local/lib/python3.7/site-packages/cell2location/run_regression.py in run_regression(sc_data, model_name, verbose, return_all, train_args, model_kwargs, posterior_args, export_args)
    248         for tr in mod.validation_hist.values():
    249             deriv = np.gradient(tr, 1)
--> 250             new_n_epochs.append(np.max(np.arange(deriv.shape[0])[(deriv < 0)]))
    251         new_n_epochs = np.min(new_n_epochs) + 1
    252

<__array_function__ internals> in amax(*args, **kwargs)

~/.conda/envs/cellpymc/lib/python3.7/site-packages/numpy/core/fromnumeric.py in amax(a, axis, out, keepdims, initial, where)
   2753     """
   2754     return _wrapreduction(a, np.maximum, 'max', axis, None, out,
-> 2755                           keepdims=keepdims, initial=initial, where=where)
   2756
   2757

~/.conda/envs/cellpymc/lib/python3.7/site-packages/numpy/core/fromnumeric.py in _wrapreduction(obj, ufunc, method, axis, dtype, out, **kwargs)
     84                 return reduction(axis=axis, out=out, **passkwargs)
     85
---> 86     return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
     87
     88

ValueError: zero-size array to reduction operation maximum which has no identity

I saw #49, but it I don't think my issue is with the sample_name_col. I've tried both the replicate ("Sample_ID") as well as the name of the biological replicate ("Number"):
Code:
print(adata_snrna_raw.obs["Sample_ID"])
print("\n")
print(adata_snrna_raw.obs["Number"])
print("\n")
print(adata_snrna_raw.obs["Number"].value_counts())

Output:
index
AAACCCAAGTAACAGT-1-5G-1    5G-1
AAACCCACAAGTTCCA-1-5G-1    5G-1
AAACCCACAGCGATTT-1-5G-1    5G-1
AAACCCACATGGGCAA-1-5G-1    5G-1
AAACCCAGTAAGCGGT-1-5G-1    5G-1
                           ...
TTTGGTTGTGGTCTCG-1-5W-2    5W-2
TTTGTTGAGAACTCCT-1-5W-2    5W-2
TTTGTTGAGTGAGTTA-1-5W-2    5W-2
TTTGTTGGTCCTGGGT-1-5W-2    5W-2
TTTGTTGGTGTTGAGG-1-5W-2    5W-2
Name: Sample_ID, Length: 45133, dtype: category
Categories (5, object): ['5G-1', '5G-2', '5H-1', '5W-1', '5W-2']

index
AAACCCAAGTAACAGT-1-5G-1    43
AAACCCACAAGTTCCA-1-5G-1    43
AAACCCACAGCGATTT-1-5G-1    43
AAACCCACATGGGCAA-1-5G-1    43
AAACCCAGTAAGCGGT-1-5G-1    43
                           ..
TTTGGTTGTGGTCTCG-1-5W-2    43
TTTGTTGAGAACTCCT-1-5W-2    43
TTTGTTGAGTGAGTTA-1-5W-2    43
TTTGTTGGTCCTGGGT-1-5W-2    43
TTTGTTGGTGTTGAGG-1-5W-2    43
Name: Number, Length: 45133, dtype: int64

43    45133
Name: Number, dtype: int64

I am running this on my own data (which is actually also mouse brain). I'm relatively new to using scanpy and python in general so there might be something obvious I'm missing. I was trying to use the default workflow with .raw by copying over with this command adata_snrna_raw.raw = adata_snrna_raw as described in the tutorial.
Since when I opened this issue, I've been able to run cell2location on single Visium sample without filtering genes but run out of GPU memory when trying multi sample, so my hope is that if I can successfully filter the genes, then I can run multiple Visium samples.

I am still not sure about the source of your problem. Can you please post the call to run_regression function?
I would strongly recommend doing gene selection as we do in our regression notebook. How many genes are you using? (32k genes would unnecessarily limit data size that fit on the GPU - to about 10k locations per 32GB GPU)
Re changing how sparse matrices are handled. We are changing this soon (weeks) so both parts of the workflow will be implemented with https://pyro.ai/ backend and https://scvi-tools.org/ interface.

Yes, my problem is when I do gene selection, run_regression errors out. I start with 31k genes and the filter gets me down to 12.8k.
#Size before gene selection
print(adata_snrna_raw.raw)

Raw AnnData with n_obs × n_vars = 45133 × 31040
    var: 'gene_ids-2G-2', 'n_cells_by_counts', 'mean_counts', 'log1p_mean_counts', 'pct_dropout_by_counts', 'total_counts', 'log1p_total_counts'

adata_snrna_raw[:,(np.array(np.log10(adata_snrna_raw.var['nonz_mean']) > nonz_mean_cutoff)
         | np.array(np.log10(adata_snrna_raw.var['n_cells']) > cell_count_cutoff2))
      & np.array(np.log10(adata_snrna_raw.var['n_cells']) > cell_count_cutoff)].shape

(45133, 12851)

# select genes based on mean expression in non-zero cells
adata_snrna_raw = adata_snrna_raw[:,(np.array(np.log10(adata_snrna_raw.var['nonz_mean']) > nonz_mean_cutoff)
         | np.array(np.log10(adata_snrna_raw.var['n_cells']) > cell_count_cutoff2))
      & np.array(np.log10(adata_snrna_raw.var['n_cells']) > cell_count_cutoff)]
adata_snrna_raw.raw = adata_snrna_raw
# converting to sparse since run_regression expects sparse matrix
from scipy import sparse
adata_snrna_raw.X = sparse.csr_matrix(adata_snrna_raw.X)
adata_snrna_raw.raw = adata_snrna_raw

# Run the pipeline:
r, adata_snrna_raw = run_regression(adata_snrna_raw, # input data object]

                   verbose=True, return_all=True,

                   train_args={
                    'covariate_col_names': ['celltypecl'], # column listing cell type annotation
                    'sample_name_col': None, # column listing sample ID for each cell

                    # column listing technology, e.g. 3' vs 5',
                    # when integrating multiple single cell technologies corresponding
                    # model is automatically selected
                    'tech_name_col': None,

                    'stratify_cv': 'celltypecl', # stratify cross-validation by cell type annotation

                    'n_epochs': 100, 'minibatch_size': 1024, 'learning_rate': 0.01,

                    'use_cuda': True, # use GPU?

                    'train_proportion': 0.9, # proportion of cells in the training set (for cross-validation)
                    'l2_weight': True,  # uses defaults for the model

                    'readable_var_name_col': 'gene_ids-2G-2', 'use_raw': True},

                   model_kwargs={}, # keep defaults
                   posterior_args={}, # keep defaults

                   export_args={'path': results_folder + 'regression_model/', # where to save results
                                'save_model': True, # save pytorch model?
                                'run_name_suffix': '_mouse_' + number_id})

reg_mod = r['mod']

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/tmp/ipykernel_2773/1405199328.py in <module>
     29                    export_args={'path': results_folder + 'regression_model/', # where to save results
     30                                 'save_model': True, # save pytorch model?
---> 31                                 'run_name_suffix': 'mouse' + number_id})
     32
     33 reg_mod = r['mod']

~/.local/lib/python3.7/site-packages/cell2location/run_regression.py in run_regression(sc_data, model_name, verbose, return_all, train_args, model_kwargs, posterior_args, export_args)
    248         for tr in mod.validation_hist.values():
    249             deriv = np.gradient(tr, 1)
--> 250             new_n_epochs.append(np.max(np.arange(deriv.shape[0])[(deriv < 0)]))
    251         new_n_epochs = np.min(new_n_epochs) + 1
    252

<__array_function__ internals> in amax(*args, **kwargs)

~/.conda/envs/cellpymc/lib/python3.7/site-packages/numpy/core/fromnumeric.py in amax(a, axis, out, keepdims, initial, where)
   2753     """
   2754     return _wrapreduction(a, np.maximum, 'max', axis, None, out,
-> 2755                           keepdims=keepdims, initial=initial, where=where)
   2756
   2757

~/.conda/envs/cellpymc/lib/python3.7/site-packages/numpy/core/fromnumeric.py in _wrapreduction(obj, ufunc, method, axis, dtype, out, **kwargs)
     84                 return reduction(axis=axis, out=out, **passkwargs)
     85
---> 86     return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
     87
     88

ValueError: zero-size array to reduction operation maximum which has no identity

Hi @edward130603
We are finalising a major revision of cell2location including backend (scvi-tools & pyro) and user interface. Please have a look at the new installation instructions and a new tutorial. Scvi-tools counters the issue we are discussing here. Would be good to get any thoughts or feedback on the new interface in discussions: https://github.com/BayraktarLab/cell2location/discussions/65.

Thanks. I will try it out soon.


ttylog: 0.29 -> 0.31

Semi-automatic update. These checks were performed:

built on NixOS
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog -h got 0 exit code
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog --help got 0 exit code
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog help got 0 exit code
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog -V and found version 0.31
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog -v and found version 0.31
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog --version and found version 0.31
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog version and found version 0.31
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog -h and found version 0.31
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog --help and found version 0.31
ran /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin/ttylog help and found version 0.31
found 0.31 with grep in /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31
found 0.31 in filename of file in /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31

cc "@wkennington"

Failure on x86_64-darwin (full log)
Partial log (click to expand)
Package ‘ttylog-0.31’ in /Users/graham/nix-borg/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-ndnd/pkgs/tools/misc/ttylog/default.nix:18 is not supported on ‘x86_64-darwin’, refusing to evaluate.

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31
shrinking /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/sbin/ttylog
gzipping man pages under /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/share/man/
strip is /nix/store/b0zlxla7dmy1iwc3g459rjznx59797xy-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/sbin
patching script interpreter paths in /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31
checking for references to /tmp/nix-build-ttylog-0.31.drv-0 in /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31...
moving /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/sbin/* to /nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31/bin
/nix/store/fip4dfisnx3d9wg45s8bqip4rdnica0j-ttylog-0.31

Success on aarch64-linux (full log)
Partial log (click to expand)
these paths will be fetched (0.01 MiB download, 0.02 MiB unpacked):
  /nix/store/d51m5754x6xwwxx7yvwqw5j67vcvisvl-ttylog-0.31
copying path '/nix/store/d51m5754x6xwwxx7yvwqw5j67vcvisvl-ttylog-0.31' from 'https://cache.nixos.org'...
/nix/store/d51m5754x6xwwxx7yvwqw5j67vcvisvl-ttylog-0.31


Attention Transfer

Issue #15

add activation based attention transfer loss.

How does it sound to move the train and evaluate to a common folder. I see it being almost similar in every implementation that we have. So for a new implementation we would just have to write the loss and some other utils files?

Sounds good, will send a PR soon. :+1:

Yea cool, am merging this as of now.

But some papers might need modifications to the train function as well. Like mine which was merged today.

Sounds good, will send a PR soon. 👍

My PR which was merged today had a slightly different train function. Do look at that when you are shifting.


Jest has a hard coded in-memory per-project cache of transformed files. This creates a memory leak during test runs, which we can't do much about. It does have a pretty high impact on test performance though, as even starting up just a couple of test projects at once can easily lead to a GB being stored in this cache.
The overwhelming majority of all the memory in the cache is taken up by transpiled TypeScript compilers, each taking about 20MB. This is because the config-loader, which is imported by backend-common, eagerly loads in typescript-json-schema, which then in turn eagerly loads the compiler. Breaking that chain should lower memory pressure significantly during test runs, and we might even see some speedups :grin:
I'll keep up a separate investigation of whether we can bring in some changes to how jest handles its caching across projects, in a way that somehow makes it possible to share cache instances between test projects.
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Verified this a bit now too, working as intended. Not having any huge impact on test speed as far as I can tell, but the digging will continue :grin:
These are from about the same point quite early on in a repo-wide test run, before:

After:

Well it not being significantly slow yet, probably just shows it hasn't yet hit thrashing limits in your particular situation right

Should still be a potentially massive impact on more constrained systems or larger builds. Good job

Yep and since we're running with Lerna we're isolating the test run for each project in a process anyway. Part of the goal here is to avoid using Lerna when running tests to avoid the overhead and allow for more cross-project (package) optimizations


Implement 'autoplay' functionality

Sometimes if I let Spotify run for a long time period I come to the end of my playlist, especially if it's really short. Therefore I have in my Spotify Desktop Client the option enabled to play similar songs on the end of the playlist.

I noticed this was not working when using librespot, would it be possible to implement this?
Regards.

This doesn't seem to be communicated to the player, so it'll have to be an option inside librespot. I suppose you need to turn off repeat in order for this to work. Right?

Exactly, repeat has to be disabled this to work.

Stole the idea and implemented it in librespot-java!

@devgianlu was there any reverse engineering required, or are you just pulling the queue again once the local queue ends?

I am using the hm://radio-apollo/v3/stations/ endpoint to create a station for the given context and they I play it like a standard station.

FWIW: There is an endpoint for this, didn't look into it in detail though.
hm://autoplay-enabled/query

@ashthespy Is there anything more to it? Doing GET hm://autoplay-enabled/query returns 400.

@devgianlu Sorry, no I didn't have time to dump more packets and investigate. But it seems to follow the format of hm://autoplay-enabled/query?uri=spotify%3Auser%3A where the uri is of the current playlist.

@devgianlu @ashthespy it's pretty simple. You just send a request to the autoplay endpoint as follows:
hm://autoplay-enabled/query?uri=spotify:user:sashahilton00:playlist:5fFTfhV...jqkezuVT
You'll then get a response, which is just a URI to a station for that playlist:
spotify:station:user:sashahilton00:playlist:5fFTfhV...jqkezuVT
Use the normal endpoint to get the JSON payload for the station:
hm://radio-apollo/v3/stations/spotify:station:user:sashahilton00:playlist:5fFTfhV...jqkezuVT
Then you'll get a JSON payload, which can then just be played like a station normally is. Makes sense that it's a toggle in the client, since the only thing it does is wait for the queue to empty, then makes the above requests and starts playing the radio for the given playlist.

My implementation is obsolete then. What if autoplay is disabled? Does it still make the request?

Haven't checked, but given it's a client toggle, I imagine if it's disabled it doesn't, and just stops playing once playlist/album is finished

Anyone tested this? I keep getting 204.

I have the same as @sashahilton00 - the endpoint responds with the station uri in plain old bytes.

Any status updates on this one? (Such a feature would be amazing indeed!)
One possible workaround is of course to use something like shairport ( https://github.com/mikebrady/shairport-sync ) as, this way, the stream is managed by the user device (phone) and autoplay just works.


Add INSTA_GLOB_FILTER

Closes #274.
Although, I haven't actually tested this, just compiled it.
Documented in https://github.com/mitsuhiko/insta-website/pull/10.

This is a good idea. I will implement this, but I want to use slightly different formats for the matcher and add it to cargo-insta. See #276.


🔧 modprobe nf_conntrack

Fix https://github.com/rancher/k3s/issues/364

Thank you for submitting this PR @warmchang! After some discussion we would like to move all of the modprobe commands which are currently happening for the the systemd setup to https://github.com/rancher/k3s/blob/master/pkg/agent/syssetup/setup.go.
We can either accept this PR as is and I can update syssetup/setup.go later, or if you would like to update this PR for those changes that would be awesome.

@erikwilson I updated the PR, moved all of the modprobe commands from k3s.service to syssetup/setup.go.
Please review it.


Set up ESLint

Set up ESLint with Airbnb style guide

I'll be trying out the steps outlined in this article.


Having validateAll throw an exception is a bad idea

Versions:

VueJs: 2.3.3
Vee-Validate: 2.0.0-rc.3

Description:
Because the validateAll methods throws an exception, I'm forced to have .catch(() => { }) littered through my code otherwise the exception isn't caught and I get an uncaught error. The exception isn't interesting to me because the error messages are rendered in my template automatically using the errorBag. I shouldn't be forced to deal with this error.
The purpose of this method is to validate all fields. It should only throw an exception if there was an unexpected problem when trying to run validation. A field not being valid isn't an error. it's an expected outcome. So why are people forced to have a (possibly empty) catch block in there code for expected outcomes?

Because its a promise based validation, should you use then for all cases and check the result, I don't think that is better.
What I can do is provide an option to handle thrown calls, so it would catch it for you.

Yes, that is what you should do. Why shouldn't you do it that way?

For the users who don't do anything in the catch callback, your argument is valid, for those who want to do other things, why should they check the result each time so to them the current behavior is reasonable.
Regardless of use case we can just provide an option when installing the plugin, so I think that is a fair way to handle both cases.
Something like this:
Vue.use(VeeValidate, {
    softRejct: true
});

By default it would be false, so the users should catch their calls, otherwise they can just set the option and don't catch it.

Okay, if that's the way you want to go, then I don't have an issue. But here is a counter example to the point you just raised.
Lets say I have a catch block to do something when validation fails (an expected outcome). Instead of just doing
.then((result) => {
  if (result === false) {
    // Validation errors
  }
})

You now need to actually inspect the exception and check it is an expected exception rather than an unexpected one. Put another way, you need to check if there is a real error happening or a fake error. It seems like there is no less work to with a catch block. But forcing people to have a catch block make them do more work.
Like I said, I think your solution is fine. But I think using exceptions for expected outcomes of running validation is an anti-pattern. It masks real errors.

I'm convinced, you are right about the issue with masking, it would make debugging faulty rules or future changes harder.

validateForm(scope) {
        this.$validator.validateAll(scope)
        .then(() => {
           alert('success')
        })
        .catch(() => { })
      }

Hi @logaretm why i get this error when i'm handling my promises?

@pachecoder Sorry I didn't see your comment, does it still occur with version rc.6?
Closing since rc.6 is released sometime ago ...

@logaretm Sorry, my problem was gone, i uninstall vee-validate, later run this command: npm install vee-validate@prev --save --force. I think was the deprecated version of the package.

prev tag installs Vue 1.0 version, which is the deprecated version indeed. glad it worked.

@rstuart85 @logaretm
Since validateAll() returns a promise, couldn't we use .done() and .fail() or would that present the same problem that caused you to get rid of .catch()?


Update branding to 3.0.1

aspnet/AspNetCore-Internal#3153

F:\workspace\_work\1\s\src\Framework\ref\Microsoft.AspNetCore.App.Ref.csproj(177,5): error MSB3073: The command "tar -czf F:\workspace\_work\1\s\artifacts\installers\Release\aspnetcore-targeting-pack-3.0.1-ci.tar.gz ." exited with code 9009.

Either the targeting pack is not written anymore or its path changed. Both would be an unintended side effect of my changes.

That's unrelated to this change.  @JunTaoLuo and I think it might be an agent issue.

@JunTaoLuo and I think it might be an agent issue.

Well, exit code 9009 means "file not found". If it's an agent issue, that would mean tar isn't found. @MattGal have the agents in NetCorePublic-Pool / BuildPool.Windows.10.Amd64.VS2019.Open moved to an older Windows build? (tar is now available by default but that's fairly recent.)
@BrennanConroy thanks, this makes more sense than my thought the targeting pack itself wasn't found. The command creates the .tar.gz file from files in its current directory.

This is ready to go once tar is found on the agents again

:up::date: to include a more complete dotnet/core-eng#7970 workaround

may actually build this time 🤞

Success modulo a missing New-Item -ItemType Directory .\.tools\ -ErrorAction SilentlyContinue ❕ ❕


loss become nan during training

hello!
I run your code and find the loss becomes nan after 40 epoch. I find it is caused by that values of all embeddings become nan.  Do you find this during your research? Is there any bug? or just by accident?

Hi,
I haven't encountered this in my experiments. Can you post details of config and model_config files, used for the training? Can you also post a screenshot of the output from the training process, just before a loss becomes nan (e.g. screenshot showing output for epochs 35 till 42 or similar).

Hi, I haven't encountered this in my experiments. Can you post details of config and model_config files, used for the training? Can you also post a screenshot of the output from the training process, just before a loss becomes nan (e.g. screenshot showing output for epochs 35 till 42 or similar).

Thank you. Sorry for that I didn't save the log. The config and model_config are the same with you. We retrained the model for several times. We find it is the image_loss become nan. And the total loss kept to be 0.2. We also find that there is no batch zise expanding during training. We suspect it may be caused by pytorch version. We use pytorch 1.8 but we notice you use 1.9.1. Before using pytorch 1.8, we also tried to use pytorch 1.7, but there would be an error: the positive/negative mask value must be bool type. Therefore, we think   it is the different pytorch version try the positive/negative mask differently caused the problem.  We are now trying to replace the pytorch version to 1.9 or 1.10. It there any new findings, we will tell you. Thanks.

Here is my config.

He is a screen shot of the newest training we tried.

If the loss is close to the margin (0.2) and the number of active triplets is equal to the initial batch size and does not decrease (initial batch size = 8 and the number of active triplets is 8) this indicates some problem in the training process. Likely all embeddings collapse to zero and the network is not training. After a few epochs, all embeddings become zero and this causes NaNs.
The expected behaviour is that the number of active triplets starts decreasing from epoch 1. Then, when it decreases below a threshold (when there's less than 70% of active triplets), the batch size is automatically increased (until it reaches batch_size_limit=160).
I suggest to try training the unimodal model first (point cloud only model):
python train.py --config ../config/config_baseline.txt --model_config ../models/minkloc3d.txt
If it trains correctly, and evaluation at the end of the training gives expected results, it means there's likely some issue with training images.
I'll try to clone the github repo later and run the training again, to verify that the github code works correctly.

Also ensure that you are using the latest version of the code. Some time ago there were some changes done in the repo, and older versions (like 3 months old or so) may not work correctly.

Thank you! The problem is solved by replacing the code you released 2 months ago with the latest version. Thank you so much.

Issue is solved.

Issue is solved, closing.


autoconf warnings

libtoolize: linking file 'm4/lt~obsolete.m4'
configure.ac:32: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.
configure.ac:32: You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead,
configure.ac:32: and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.

Lots of warnings about gtk-doc.make using non-portable constructs. e.g.
docs/libpsl/Makefile.am:85:   'gtk-doc.make' included from here
gtk-doc.make:206: warning: GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion

Lots of warnings about gtk-doc.make using non-portable constructs.

This can be fixed with the -Wno-portability flag:
diff --git a/configure.ac b/configure.ac
index 2653141..0465e20 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@

 AC_INIT([libpsl], [0.14.0]<EMAIL_ADDRESS>[libpsl], [https://github.com/rockdaboot/libpsl])
 AC_PREREQ([2.59])
-AM_INIT_AUTOMAKE([1.10 -Wall no-define foreign])
+AM_INIT_AUTOMAKE([1.10 -Wall -Wno-portability no-define foreign])

 # Generate two configuration headers; one for building the library itself with
 # an autogenerated template, and a second one that will be installed alongside

The deprecation warning is pulled in via gettext... changing m4/intl.m4 and m4/po.m4 fixes it.
This vanishes when I specify gettext 0.19.1 in configure.ac (0.19.8 installed here).
But this would break autoreconf on systems with a lower gettext version.
For now, I remove -Wall from automake options, since 'foreign' already sets -Wno-portability.

Gettext 0.19.1 came out over 2 years ago. Are there any systems using libpsl that are using such old libraries?
Maybe we can write an ugly conditional in configure.ac to check the gettext version and use the right one


Adding time-dependent MG to PyBird

This PR is to implement time-dependent MG (e.g. nDGP gravity) into the existing PyBird code.

I'm not confident about this first attempt at adding the internal numerical computation of growth in nDGP in commit 44f5d28.
It uses scipy.integrate.odeint(func, y0, t, args=(self.param1, self.param2)). I'm not sure if func needs to be a function within the GreenFunction class, and if I should instead have self.func, self.y0, self.t etc.

Made a first attempt at adding self.MG type flag and associated self.Omega_rc parameter to init for GreenFunction class following example of self.quintessence flag and self.w parameter in commit 1db231c.
May need to think about the if/else logic here so that we don't allow clustering quintessence and nDGP at the same time. Also will need to modify the if/else logic when we add other MG models beyond nDGP with different parameters.

Can someone confirm the LCDM limit of mu2(a) and mu22(a) is 0 not 1?


Patch for /trunk/src/prettify.css

I have simply enabled line numbering on all lines instead of every 5th line.

I feel that the project owner and members should seriously consider making this
change.

The Obsidian theme already has line numbering enabled on all lines of code.

In my opinion,line numbering should be enabled by default on all lines of code
and instructions should be given to the end users on the "getting started" page
regarding how to revert to the convention of displaying line numbers for every
fifth line.

I understand that showing line numbers after every fifth line may be aimed at
reducing the clutter but I feel that displaying all line numbers is of greater
importance.

The getting started page should instruct users on how to do so:

simply change the following line in css: "list-style-type: decimal !important"
to "list-style-type: none"

NOTE: I have just changed "list-style-type" from "none" to "decimal !important"

Original issue reported on code.google.com by umangmathur10051992 on 9 Aug 2013 at 5:33
Attachments:

prettify.css.patch

this is mentioned in the FAQ: https://github.com/google/code-prettify#how-can-i-put-line-numbers-on-every-line-instead-of-just-every-fifth-line


Leaf duplicating when sheared

When you shear a leaf block (any type) it drops 2 spruce leaf blocks, this makes infinite leaf blocks possible
how to reproduce:
get a shear
place down some leaves
shear them
you will now have double the amount of leaves you started with
this may be because shearing leaves will drop an extra item, even if you are in creative mode. So when you destroy leaves in survival it drops one item for the block break and one for the shear itself

@SpongePowered/developers  Check this, I suspect this is the problem, since this Mixin shouldn't work if I am correct. https://github.com/SpongePowered/SpongeCommon/blob/master/src/main/java/org/spongepowered/common/mixin/core/block/MixinBlockLeaves.java

target = "net/minecraft/block/BlockLeaves.destroy (Lnet/...
should be
target = "Lnet/minecraft/block/BlockLeaves;destroy(Lnet/...

You should be able to take care of this @modwizcode

Determined to be a forge bug, here's an existing bug report for the issue. https://github.com/MinecraftForge/MinecraftForge/issues/1308. Per policy I think we wait for forge to fix this rather than override forge.

That issue seems irrelevant actually, I've created a new forge PR that should handle the issue.

Shouldn't this stay open until the Forge version is bumped?

I'm confused, does lex have ticket control over sponge or did github automatically close this ticket from a project outside SpongePowered? That seems odd.

It was GitHub. The Forge PR says

closes SpongePowered/Sponge#283

so GitHub automatically closed it when it was merged.

Also it was written by someone who did have permission to close it.

I think lexmanos has ticket control. Take a look at [here] (https://github.com/SpongePowered/Sponge/commit/9b1d2c83beae2197920fba779291ac0acf35cb7a#commitcomment-7691966) which is a comment on the first commit, you'll find that there's a "Owner" marker on the top right on his comment.


Document removed functions from django.db.models

These were functions removed here:
cf5b67d3a053831ce5a3ef24acb7059fc1f29469
But I couldn't find a notice in the 1.9 release notes that these
have been removed.

Hi @nikolas, thanks for your contribution but we don't mention undocumented function removal as we don't consider them part of the public API.

Actually, sometimes do mark the removal of Private API's (there are others in the release notes). We should mention that they're private though.


Capture the console.log errors

I'm using Behat + phantomJS, and would like to see the errors thrown to the console.log.
CasperJs allows binding to this event:
casper.on('remote.message', function(resource) {
  this.log('LOG:' + resource);
});

This is provided by phantomjs
Would it be possible to have something similar in Behat? I can try to code it, but preferred to get some guidance on what's the proper why.

@amitaibu can you please post the final code

Sorry, I no longer have the code that used it, but it seems evaluateScript was what I've used.

@amitaibu
My solution was to set up a listener in the apps javascript:
testing = {
    errors: []
};
window.onerror = function(error, url, line) {
    testing.errors.push(error + ". Line: " + line);
};

And then in behat, in afterSuite, afterStep or whenever you feel is convenient,
$context->getSession()->evaluateScript("testing.errors");

The issue about doing it in a generic way in Mink is that pages can be reloaded at any time (especially when using a JS-enabled browser as this could be triggered by JS rather than a Mink action) and any JS API highjacking would be lost at this point. It would be almost impossible to make it reliable.
The solution of @DWmodem is much easier, even though it forces your app to have some JS code doing the error collection part (which solve most issues about page reloads, as injecting the code is part of the page load, so the only remaining issue is the fact that issues from previous page loads are lost).
So I'm in favor of marking this as "Won't fix".

Agreed.

OK, then closing this as you agreed with me


README documentation is outdated

It seems that what README is saying now (examples of translation from Java to EO) is not the actual information. I see different output in XMIR/phi. Moreover, would be great to add a section to the README explaining the meaning of every object in the jeo package. Well, at least the most important ones, like jeo.frame, jeo.label, jeo.annotation, etc.
The best way to explain them, I believe, would be as if they are real objects providing some functionality. We should just explain how they would work, if they would receive control from a virtual machine.

@volodya-lombrozo please, help

@yegor256 I suggest removing the section that describes transformation examples then, and add one more section about jeo objets. This new section would describe meaning of each jeo object as you said.

@volodya-lombrozo yes, makes sense


Update the changelog and release notes for 12.14.60/65

We missed a few important things in the release notes and we needed to call out the yum_repository work in a way that it could be cmd-F'd in the changelog.

Thanks, Tim.

I'm going to remove the .65 changelog portion of this for now since it looks like that won't be the new build


Updated Description for Compute Policy

Updated Description for Compute Policy: Unattached disks should be encrypted. This policy checks specifically for unattached disks that are not attached with CMK: Customer Managed Key. Customers are always in doubt about this policy just because the description is missing the CMK thing.

@praskumamsft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@praskumamsft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@praskumamsft These files reflect the built-ins and are generated from source once the updated built-ins are published to GitHub (https://github.com/azure/azure-policy). That particular built-in has not been updated, so this update is incorrect. As such, I'm going to close this PR.
@MicrosoftDocs/azure-cxp-triage #please-close

@praskumamsft These files reflect the built-ins and are generated from source once the updated built-ins are published to GitHub (https://github.com/azure/azure-policy). That particular built-in has not been updated, so this update is incorrect. As such, I'm going to close this PR.
@MicrosoftDocs/azure-cxp-triage #please-close


Minor fix for NPM package publishing

Steps for package publishing release process:

Create new branch to work on, like this versionFix
Do CR
Agree that it is ready to publish
Publish first using yarn release
Do final review on branch, and get 2 approvals, as a new commit is made by yarn release increasing the version number
Merge to master
Publish release notes