Improve error when signal isn't passed down correctly to a sub-CAF

Thank you (again!) for this great project. It's a lifesaver if you need to timeout Promise-based code. 🙏
I just wanted to document a potential improvement. We have code that uses CAF to add timeouts around async code. Within one CAF function we pass signal down to sub-CAF functions. This lets us separate async logic but still have it elegantly timeout.
But! If you forget to pass signal down to a sub-CAF function that expects it, a fairly unhelpful error is show:

Code example
// within a CAF function, call a sub-CAF function, but we forgot to pass `signal`
yield this.getAndSyncUsers(syncRequest, conversationMembers.members, seenUsers);

// signature for the sub-CAF function, but we forgot to accept `signal`
static getAndSyncUsers = CAF(function *getAndSyncUsers(
  syncRequest: SyncRequest,
  users: Array,
  seenUsers: Object,
) {
  // ...implementation...
});

Thanks for the helpful suggestion. Will keep this in mind for the next update. :)


Move this repository into the lostRSEs organisation

It might make sense to move this into https://github.com/lostRSEs so that it's all kept together and doesn't rely on me being available to do owner-things.

Actually @jezcope you might be the only one able to do that?

This has now been done, and all the relevant URLs updated.


ClientClosedError: The client is closed

Hi, I followed the example in the doc
import {createClient} from 'redis'
import {redisCacheAdapter} from 'cachified-redis-adapter

const redis = createClient({
  /* ...opts */
})
const cache = redisCacheAdapter(redis)

await cachified({
  cache,
  key: 'user-1',
  getFreshValue() {
    return<EMAIL_ADDRESS>  },
  /* ...opts */
})

However, I got the error ClientClosedError: The client is closed
Where should I call the  await redis.connect();?

Hi @HuyAms!
You're most likely running into that error because you haven't connected to the redis client before trying to use the cache.
A quick way just to get the cache working would be testing it out like this:
const client = createClient({
     /* ...opts */
 });

client
   .connect()
   .then(() => console.log("redis is connected"))
   .catch((error) => console.error(error));

const cache = redisCacheAdapter(client);

and then using that cache with cachified.
Ultimately how you set up and connect to your redis client is dependent on your application and preferences.
Hope this helps!


Configuration files

Description
It should be able to use config files to load configuration details into the application
Preferred file format would be TOML as it's safe and can handle complex data structures
Loading Procedure

Parse command line arguments
Check if it has a --conf argument
If so load that provided file into memory
If not look for default conf file in config/default.toml path (skip when --conf presents)
Parse other command line arguments
Merge them up

When config/default.toml not presented

Application will try to load default values from the program

Invalid TOML file

When a provided .toml file was corrupted, it will immediately stop the program and panic an error

PR #10


Handle more errors with short URL oauth create

From httplib2/__init__.py
class Http(object):
    """An HTTP client that handles:

    - all methods
    - caching
    - ETags
    - compression,
    - HTTPS
    - Basic
    - Digest
    - WSSE

    and more.
    """

    def __init__(
        self,
        cache=None,
        timeout=None,
        proxy_info=proxy_info_from_environment,
        ca_certs=None,
        disable_ssl_certificate_validation=False,
        tls_maximum_version=None,
        tls_minimum_version=None,
    ):


Field with a IP or ID of goflow instance.

Hello everyone.
I'm setting up an environment where I have a few GoFlow2 instances.
One of the metrics we use is to identify the origin of the flow.
We already know who created the flow, but we don't know who collected it.
This is important to us. We need to know which collector the equipment is connected to, since we use IP anycast.
I tried using mapping, but without success.
If anyone can give me some light, I would be immensely grateful.
formatter:
  fields:
    - goflow_source
    - src_addr
    - dst_addr
    - bytes
    - sampler_address
  protobuf:
    - name: goflow_source
      index: 100
      type: string

ipfix:
  mapping:
    - field: 8
      destination: src_addr
    - field: 12
      destination: dst_addr
    - field: 1
      destination: bytes
    - field: 130
      destination: sampler_address
    - destination: goflow_source
      type: const
      value: "<IP_ADDRESS>"

netflowv9:
  mapping:
    - field: 8
      destination: src_addr
    - field: 12
      destination: dst_addr
    - field: 1
      destination: bytes
    - field: 130
      destination: sampler_address
    - destination: goflow_source
      type: const
      value: "<IP_ADDRESS>"

sflow:
  mapping:
    - field: 8
      destination: src_addr
    - field: 12
      destination: dst_addr
    - field: 1
      destination: bytes
    - field: 130
      destination: sampler_address
    - destination: goflow_source
      type: const
      value: "<IP_ADDRESS>"

Hi @giovaneh,
Unfortunately there is currently no possibility to add a constant value out of the box. You will need to edit the code.
This said, it's a good idea and will likely consider it for a future enhancement.


[Bug]: Collapse crashes while downloading the latest pre-load package for Genshin Impact

Affected Version
Collapse 1.80.15 Stable
Bug Behavior
When I try to download the pre-load package for v4.8.0 Genshin Impact, it would download for few seconds and the app becomes unresponsive then immediately crashes.
Other functions of the app work as expected with no problem.
I found two Error level logs in the windows Event Viewer:
Log Name:      Application
Source:        .NET Runtime
Date:
Event ID:      1026
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:
Description:
Application: CollapseLauncher.exe
CoreCLR Version: 8.0.624.26715
.NET Version: 8.0.6
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IndexOutOfRangeException: Arg_IndexOutOfRangeException
   at System.IO.StreamWriter.WriteLine(String)
   at Hi3Helper.LoggerBase.WriteLog(String, LogType)
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_1(Object state)
   at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
   at System.Threading.Thread.StartCallback()

Log Name:      Application
Source:        Application Error
Date:
Event ID:      1000
Task Category: Application Crashing Events
Level:         Error
Keywords:
User:
Computer:
Description:
Faulting application name: CollapseLauncher.exe, version: <IP_ADDRESS>, time stamp: 0x66470000
Faulting module name: KERNELBASE.dll, version: 10.0.22621.3880, time stamp: 0xdb9989e8
Exception code: 0xe0434352
Fault offset: 0x000000000005fabc
Faulting process id: 0x0x2A10
Faulting application start time: 0x0x1DAD6D11C355EBD
Faulting application path: C:\Program Files\Collapse Launcher\app-1.80.15\CollapseLauncher.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 814b56b1-e23e-47e9-8630-26fb833b8ae4
Faulting package full name:
Faulting package-relative application ID:

These are all the details I am willing to provide.
I tried updating .NET and ran sfc /scannow and DISM /Online /Cleanup-Image /RestoreHealth. The issue continues.
Expected Behavior
The app should download the pre-load package.
Steps to reproduce

Open the app
Switch the game to Genshin Impact if not already selected
Start the download for pre-load package for v4.8.0
Wait few seconds to watch the app crash

Related Issues
No response
Screenshot(s)
No response
Additional Information
No response

Try go to settings then clear the log files then run again. If it still crashes, send us the log file.
Go to settings, open _logs folder, and send us the latest file

The problem is gone after getting the update for version 1.80.16 and clearing the logs.

Thanks for letting us know. There were some fixes for logger function so it might be that one.
Closing this issue~


Extend OS Installation Options for Machines

Summary
Add support for multiple boot modes concerning how operating-system is installed on the Machine.

Installation of the OS directly on the disk.
Installation of the OS in memory for the session.
Preserving specific bind mounts post-boot.

Progress Tracker:

[x] Develop the initial version of the on-disk installation mechanism. @5kt
[x] Enhance the installer by integrating it with the initrd. @5kt
[x] Publish updated operating system images that include the new initrd. @hardikdr
[ ] Design and implement APIs for incorporating the installer into the Metal Operator.

Motivation
Better flexibility in deployment scenarios.

A possible enhancement in the APIs could look following, it's open for discussion:
ServerClaim:
apiVersion: metal.ironcore.dev/v1alpha1
kind: ServerClaim
metadata:
  name: example-serverclaim
spec:
  power: "On"
  ...
  bootPolicy: NetworkBootOnce   # Options: NetworkBootOnce / NetworkBootAlways / None
status:
  conditions:
    - type: NetworkBootedOnce
      status: "True"
      reason: Network boot was performed once.

bootPolicy Field in ServerClaim: Add a spec.bootPolicy field with the following values:

NetworkBootOnce: Set PXEBootOnce signal for the first boot, and delete the associated ServerBootConfig after the server successfully boots.
NetworkBootAlways: Always set a PXEBootOnce signal during power cycles and retain the ServerBootConfig.
None: Do not set any boot-related signals, and do not create a ServerBootConfig.

ServerBootConfig Lifecycle:

Delete ServerBootConfig after the first boot for NetworkBootOnce.
Retain ServerBootConfig indefinitely for NetworkBootAlways.
Skip creation of ServerBootConfig for None.

Tracking Boot State:

Add a NetworkBootedOnce condition in ServerClaim.status to track if the network boot was successfully performed.

cc @5kt @defo89 @stefanhipfel @afritzler


Indescript "Invalid Watch" error when applying despite watch definitions being in-spec

Describe the bug
Terraform can plan two watches I am implementing but give weird indesript "Got invalid watch" errors when attempting to apply. As far as I can tell they are in spec and all the resources they require exist.
Source:
resource "xray_watch" "dev" {
  name        = "dev-watch"
  description = "all development repos"
  active      = true

  dynamic "watch_resource" {
    for_each = local.dev_repos
    content {
      type      = "repository"
      name      = watch_resource.value.name
      repo_type = watch_resource.value.repo_type
    }
  }

  assigned_policy {
    name = xray_security_policy.dev-env.name
    type = "security"
  }
}

Plan
  # module.terraform-jfrog-xray.xray_watch.dev will be created
  + resource "xray_watch" "dev" {
      + active      = true
      + description = "all development repos"
      + id          = (known after apply)
      + name        = "dev-watch"

      + assigned_policy {
          + name = "dev-env"
          + type = "security"
        }

      + watch_resource {
          + bin_mgr_id = "default"
          + name       = "xxx-dev-remote-external"
          + repo_type  = "remote"
          + type       = "repository"
        }
      + # ~150 other [watch_resources]
    }

Error
│ Error: {"error":"Got invalid watch"}
│
│   with module.terraform-jfrog-xray.xray_watch.dev,
│   on ../../terraform-jfrog-xray/watches.tf line 62, in resource "xray_watch" "dev":
│   62: resource "xray_watch" "dev" {
│
╵

Versions of tf + providers:
terraform_1.7.5_linux_amd64.zip
jfrog/project v1.5.2
jfrog/platform v1.7.4
jfrog/artifactory v10.8.0
jfrog/xray v2.8.1
Expected behavior
I'd expect it to apply properly or at least give me a clue as to what is going wrong here.

@eelginUPS The error message comes directly from Xray API so something in the resource configuration is triggering this.


tx.query fails

The regular query for existing/successful tx returns a redirected 403.html html source as response.data

Upon 3rd-party testing with same params on Postman, request returned valid and success API status. Something wrong with the codebase?

Given that tx.c2b returns tx status, this can be addressed locally by storing info from response.data. Rather than querying the API we can check the status of the received tx.
If success: report success
If fail: try again, display and store msg
Problem: Current codebase returns success (Promise resolve is executed) but the request is redirected into a 403.html. Hence, response.data contains the HTML  for a "Page forbidden" server response

FIX: Upon inspection, it seems like axion.config.data object was interfering with how server expected params in URL. When params were serialized in url, request was successful. Hence, the solution was to append data to the serialized url obj prop.
Solved in 479ac22


Returns API Error when there is no error

Example request:
client.request_gdsp( ["MSFT"], ["IQ_COMPANY_NAME"] )

response is:
#<CapitalIQ::RequestResult Headers=["IQ_COMPANY_NAME"], Rows=[{"Row"=>["Microsoft Corporation"]}], NumCols=1, Seniority="", Mnemonic="IQ_COMPANY_NAME", Function="GDSP", ErrMsg="", StartDate="", NumRows=1, CacheExpiryTime="0", SnapType="", Frequency="", Identifier="MSFT", Limit="">

which is identified as an Error by the gem because ErrMsg is not nil
I started to get this error today so this may be new CapIQ behavior

Proposed fix is to change the following in function has_errors? in request_result.rb:
!self.ErrMsg.blank?

instead of
!self.ErrMsg.nil?

blank? is no available because ActiveRecord is not a dependency in this project. I fixed the error in an alternative way and published a new version - please update the gem. Thanks for your help.


New releases of semantic-release throwing typescript error

General Support Request
See the following requested dependency updates
 Minor Update New backwards-compatible features.
❯◯ semantic-release devDep  23.0.2  ❯  23.1.1  https://github.com/semantic-release/semantic-release#readme

 Major Update Potentially breaking API changes. Use caution.
 ◯ @semantic-release/npm devDep     11.0.3  ❯  12.0.1  https://github.com/semantic-release/npm#readme

When updating to these new versions, you will see the following error
><EMAIL_ADDRESS>types
> tsc

node_modules/mime/dist/src/Mime.d.ts:5:5 - error TS18028: Private identifiers are only available when targeting ECMAScript 2015 and higher.

5     #private;
      ~~~~~~~~

Found 1 error in node_modules/mime/dist/src/Mime.d.ts:5

Possible Solution
Possibly wait until next release of semantic-release of try to understand this obscure typescript error.
Additional context
Typescript is hipster scam!
Exit criteria
This issue can be closed once the build error has been mitigated.

This can be resolved by adding the following to config options to our tsconfig file.
    "target": "ES2022",
    "moduleResolution": "node"


Search with Tag feature added

Closes #285
Now user can search from tags.

If tag is present, then that post will be seen while searching.
If fav checkbox is chekcked, then tag containing fav is seen.
If Searchbox is empty, then all posts are seen.

@AmeyaJain-25 Please solve conflicts.

@sanjay270899
Made the required changes


added orientaiton enum to device

Added orientation enum to get device orientation
let device = Device()
switch device.orientation {
        case .landscape:
         //landscape
         break

        case .portrait:
        // portrait
        break
 }

fixes #87

Hi @mumer92 This looks fantastic! However, you put the source into the file that gets generated. Can you please put it into the Device.swift.gyb file and hit cmd+b in Xcode? It then gets automatically inserted into the generated file (I'm still planning on changing that again to exclude the generated file from git once SPM allows for custom scripts (or do they already? I need to have a look). Thaaaaank you 🙏

@dennisweissmann
My bad, I am making appropriate changes. Thankyou for guiding. 🙏

@dennisweissmann I have made appropirate changes.

removed from generated file
added to Device.swift.gyb file
build after adding to gyb file

Wow that was fast! Thank you! I’ll merge and release once I’m home! Awesome!

Thankyou :)

Good addition.
But, I discovered that if UIDevice.current.orientation returns .unknown, then your default to .portrait might not be accurate.
Hence I wrote this extension to further help satisfy that case:
extension UIDevice {
    var deviceOrientation: UIDeviceOrientation {
        var currentOrientation = UIDevice.current.orientation

        if currentOrientation == .unknown {
            switch UIApplication.shared.statusBarOrientation {
            case .landscapeLeft:
                currentOrientation = UIDeviceOrientation.landscapeLeft
            case .landscapeRight:
                currentOrientation = UIDeviceOrientation.landscapeRight
            case .portraitUpsideDown:
                currentOrientation = UIDeviceOrientation.portraitUpsideDown
            case .portrait:
                fallthrough
            case .unknown:
                fallthrough
            default:
                currentOrientation = UIDeviceOrientation.portrait
            }
        }

        return currentOrientation
    }

}

The  .statusBarOrientation seems to always have the correct orientation state before any running app gets initialized.

Hi @sedwo
That is correct. What I initially wrote was this in my project, I added extension to Device from DeviceKit
import DeviceKit

extension Device {
    public enum Orientation {
        case landscape
        case portrait
    }

    public var orientation: Orientation {
        get {
            if UIDevice.current.orientation.isLandscape || UIApplication.shared.statusBarOrientation.isLandscape {
                return Orientation.landscape
            } else {
                return Orientation.portrait
            }
        }
    }
}

I originally plan to use this extension for PR. But there seems to be problem reported by Xcode i.e
'shared' is unavailable: Use view controller based solutions where appropriate instead. 'shared' has been explicitly marked unavailable here
Can you please check into it if I am having this issue for some reason.
Thankyou for checking up.

@mumer92 ,  I received the same error when I tried to integrate it into DeviceKit, which is why I ended up just having it in my own extension.

Thinking about it, should we maybe just expose UIDevice's orientation property? The documentation looks pretty promising, it seems to be already pretty swifty.
Also, reading the discussion here, do we need to do the same trick as with the battery state? Does it work for you or does it always return 0 (as the documentation states)?


The list of values in the filter is still not complete

All possible values for the given field should be searchable in the filter dropdown.
The list of values in the filter is still not complete:

Originally posted by @adulbrich in https://github.com/BlueBrain/nexus/issues/2783#issuecomment-933159013

Extended the list to 1k, tried between 1k and 10k and 1 seems wisest considering performance.


Wrong name given by login method

There is at least one login method which is retrieving a wrong user name. Thats why we have this in user route in office
<>

This is not related to the login method. It's related to the way laboratory notifys users


IndexOutOfBoundsException when attempting to parse invalid block type

Hello, at the moment I'm doing something like this:
Sponge.getRegistry().getType(BlockState.class, "dirt[]");

Where the second argument would usually be provided through a command argument.  When executing this code, the BlockState parser becomes unhappy and prints the following error:
java.lang.ArrayIndexOutOfBoundsException: 1
        at org.spongepowered.common.registry.type.BlockStateRegistryModule.getById(BlockStateRegistryModule.java:74) ~[BlockStateRegistryModule.class:1.12.2-7.1.6]
        at org.spongepowered.common.registry.SpongeGameRegistry.getType(SpongeGameRegistry.java:323) ~[SpongeGameRegistry.class:1.12.2-7.1.6]

From the javadoc for the getType method, it seems that if there is a problem parsing the value it should just return Optional.empty() instead of throwing an error.
This is happening to me on v7.1.0 and I also tried v7.2.0-20191102.164628-31 and it was having the same issue.

Update: I realize this is a Sponge Common issue so I will move this issue there.


Handle IP Addresses in SAN

Handle IP addresses gracefully rather than ByteString hex display
TODO

what tests to add

After
CN: 	Idea
Serial:	0076afe089
Pin:	sha256/0f54dfa5bbbfa66b586eec5b7d0742a1cec80f2fda4b977a3b4aacb82877e32b
SAN: 	/<IP_ADDRESS>, /<IP_ADDRESS>, localhost, yschimke-pc, yschimke-pc.localdomain
OU: 	Development
Key Usage: DigitalSignature, KeyEncipherment
Ext Key Usage: serverAuth
Valid: 	2020-11-28T15:42:21Z..2021-02-26T15:42:21Z (2 months)


Pending checklist courier

[x] add back the "Fleet" item. For now, the "advance" button will not need fleet information;

[ ] add the "steps counter";
-> not working anymore. why?

[x] review the "checked" icon display. It should appear to the left of the title and above the subtitle (check figma)

[ ] store the docs verification so it won't happen again when you return to the pending checklist screen;
maybe an useMemo to store all the values we need in this screen

[x] require fleet info to advance and add the checked icon when done

Photos

[x] make the "squares" clickable just as the configitems;

[x] take a look at the layout/distance between elements in the screen

[x] show activity indicator in the button

[ ] When returning to the checklist after adding the photos the check on photos wasn't updated


Webchat theming support

Webchat in the emulator is not themed to match Emulator's current theme setting.
Filing this work item to track support for theming webchat based on Emulator's theme setting.

@mewa1024 Can we sync on this one? :)

this would have us pickup the v4 GA version of WebChat and allow us to prove theming works well


default "Code" query string on all functions

Hey, I get this parameter on requests of all my functions, and I don't know where it is coming from, since I am not specifying it with the data annotations:
"parameters": [
{
"in": "query",
"name": "code",
"type": "string"
}]
I am using default functionality to retrieve the swagger.json. With this I mean I haven't changed any setting after I installed the nuget package and added some data annotations to my functions.

@lcordidrocl Which version of the extension are you using?

I used the latest version of the NuGet package, v0.3.2-preview. I don't see your issue.

mm weird, I am using the same as you. I might have a wrong configuration somewhere on my function app then.
Thanks for taking the time to research, this points me that there is something wrong on my code.
Thanks!


[stable/prometheus] Pushgateway deployment strategy type

Signed-off-by: Jeff Thompson<EMAIL_ADDRESS>
Is this a new chart
No

NOTE: We're experiencing a high volume of PRs to this repo and reviews will be delayed. Please host your own chart repository and submit your repository to the Helm Hub instead of this repo to make them discoverable to the community. Here is how to submit new chart repositories to the Helm Hub.

What this PR does / why we need it:
To allow the customisation of the pushgateway deployment strategy.
Which issue this PR fixes

fixes #16873

Special notes for your reviewer:
Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @gianrubio

I've rebased helm/charts/master on my branch but I think it's screwed things up. Not sure on how to proceed.


account-id support has been added

In some cases account id should be customized.
Here is description for AWS CLI help:
        --account-id (string)
          The AccountId value is the AWS account ID. This value must match the
          AWS account ID associated with the  credentials  used  to  sign  the
          request.  You  can  either specify an AWS account ID or optionally a
          single '- ' (hyphen), in which case  Amazon  Glacier  uses  the  AWS
          account ID associated with the credentials used to sign the request.
          If you specify your account ID, do not include any hyphens ('-')  in
          the ID.

Have you tested both with and without the new argument?

This was tested in the following manner:

There are two AWS accounts, one with "direct" access and another one with "cross-account" access.
In first account vault with name 'test-vault-000' has created and in second one with name 'test-vault-001'
To the second account vault access policy was applied:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "cross-account-vault-info",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<first_account_id>:user/****"
            },
            "Action": [
                "glacier:DescribeVault",
                "glacier:ListVaults"
            ],
            "Resource": "arn:aws:glacier:us-west-2:<second_account_id>:vaults/test-vault-001"
        }
    ]
}

Results:
$ glacier-cmd describevault test-vault-000
+------+---------------+--------------------------+--------------------------------------------------------------+----------+
| Size | LastInventory |         Created          |                             ARN                              | Archives |
+------+---------------+--------------------------+--------------------------------------------------------------+----------+
|  0   |      None     | 2017-09-26T11:37:46.993Z | arn:aws:glacier:us-west-2:<first_account_id>:vaults/test-vault-000 |    0     |
+------+---------------+--------------------------+--------------------------------------------------------------+----------+

$ glacier-cmd --account-id=<second_account_id> describevault test-vault-000
str: Failed to get description of vault with name test-vault-000.
Caused by: 1 exception
||  unicode: User: arn:aws:iam::<first_account_id>:user/**** is not authorized to perform: glacier:DescribeVault on resource: arn:aws:glacier:us-west-2:<second_account_id>:vaults/test-vault-000

$ glacier-cmd --account-id=<second_account_id> describevault test-vault-001
+------+---------------+--------------------------+--------------------------------------------------------------+----------+
| Size | LastInventory |         Created          |                             ARN                              | Archives |
+------+---------------+--------------------------+--------------------------------------------------------------+----------+
|  0   |      None     | 2017-09-26T11:23:06.187Z | arn:aws:glacier:us-west-2:<second_account_id>:vaults/test-vault-001 |    0     |
+------+---------------+--------------------------+--------------------------------------------------------------+----------+

$ glacier-cmd  describevault test-vault-001
str: Failed to get description of vault with name test-vault-001.
Caused by: 1 exception
||  unicode: Vault not found for ARN: arn:aws:glacier:us-west-2:<first_account_id>:vaults/test-vault-001

Awesome. Thank you.


Mutating nested properties validations loose validations

This adds a failing test for nested properties and validations. Initially, the validations run fine, but after changes to the input the validations seem to get lost.
I have posted an initial issue to ember-changeset, however I suspect it might be an issue in ember-bootstrap or
ember-bootstrap-changeset-validations, as nested properties and validtions seem to be correctly working in ember-changeset.
see https://github.com/poteto/ember-changeset/issues/521
Running ember server inside the tests/dummy app visually shows the problem...

I'm wondering if having a path as property argument is supported by <BsForm::Element>. The documentation only talks about property name: https://www.ember-bootstrap.com/api/classes/Components.FormElement.html#property_property
Is using a path mentioned somewhere else in the documentation? Or is there a test coverage for it in Ember Bootstrap? If not we should discuss first at Ember Bootstrap level if we want to support it.

Fair enough... But,... if it is not, it should be... documented..., took me forever to figure out...

Fair enough... But,... if it is not, it should be... documented..., took me forever to figure out...

It was an open question. I'm not sure if it's supported. And I'm not sure if it should be supported. But I agree that we should have a clear answer to that question. Therefore to would be awesome if you can research that topic.

It's more that I naively expected it to work, depended on to and used to work. IMO it really makes sense as the structure of data and form representation can work together.
I do recognize managing nested data with validated changesets and form UI is complicated. Since tracked properties have been introduced many refactorings have been done (mainly to ember-changeset) which have partially broken functionality at times. I hoped that we almost found all remaining bugs and both libraries would enter a stable state again.
So, considering the hours I have poured into locating these issues and the cost of refactoring my application I would love to support such a feature if it is at all possible. Then again; I do need help as I am stuck at further pinning down the problem as I do not understand why a validation would get lost.
But, when it is decided to not be supported, I would accept that as a fact too. (I would cry though)
@lolmaus @nickschot @simonihmig my I ask your opinions?
greets, Bas

I opened this issue in Ember Bootstrap repository: https://github.com/kaliber5/ember-bootstrap/issues/1173 I think that's the correct place to discuss it as the decision would not only affect this plugin library. The Ember Bootstrap repository has more visibility.


how to add custom html layout for the pages but only for one page.

How can i add a wider layout especially for mobile view without affecting rest of the pages ?
I wanna utilize the space marked with red in the pic below...  i.e increase the width of the page/ do css adjustment.

Try overriding the bootstrap container class in your CSS, something like this:
@media (max-width: 480px) {
  .container {
    padding: 0;
  }
}


setproctitle for status

A cute trick that djb tools is to setproctitle to reflect how busy a service is.  This is strictly eyecandy, but might be nice to put in to show active connections.

is this what SIGINFO (ctrl+t on BSD) uses as well?

setproctitle seems to be only available on BSD, not on linux/OSX... Is there something similar to py-setproctitle in OCaml?

probably worth seeing what djb's daemontools do on linux. the supervisor processes set the proc title.  I suspect it's a mass of ioctl gunk :-/


CIV-7026 Fix vary judgement label issue

Before creating a pull request make sure that:

[ ] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-7026
Change description
Fix vary judgement label issue
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No


write SIP plugin example

Hi,
we used your great library in a project. We extracted a simple sip-Gateway example out of it
https://github.com/lampsolutions/JanusSipGatewayDemo

fantastic :D !!! I am glad that y'all found it useful :)


Upload coverage reports to codecov

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@0ad6e4b). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #298   +/-   ##
=======================================
  Coverage        ?   91.90%
=======================================
  Files           ?       39
  Lines           ?     2297
  Branches        ?        0
=======================================
  Hits            ?     2111
  Misses          ?      186
  Partials        ?        0


Documentation Error on kubeconfig?

On https://github.com/kubernetes/ingress/blob/master/docs/troubleshooting.md#kubeconfig there is no:

VolumeMounts for /etc/kubernetes
--apiserver-host=

when we use kubeconfig , apiserver-host is not needed，and I think VolumeMounts is needed in that situation

About kubeconfig: yes, but only when a server value is defined on cluster group value:
https://github.com/kubernetes/kube-deploy/blob/master/docker-multinode/kubeconfig.yaml#L7
right?


Use request scheme in server url

Hey, I've been playing with this in a local Nextcloud instance and could make it work after commenting a couple of things.
I think most of the issues were related to networking, so I don't think there was anything broken in the plugin (my app's clientid wasn't reachable from the Nextcloud server, etc.).
But something I found to improve is that it's assuming that instances run with https://,  which was not true in my case. Hopefully everyone uses https:// in production though :).

Thank you for taking the time to report this!
Originally, the hard-coded https was to satisfy the Solid spec, specifically:

2.1 HTTP Server
[..] When both http and https URI schemes are supported, the server MUST redirect all http URIs to their https counterparts using a response with a 301 status code and a Location header.

This was in part to protect unknowing users against themselves.
At some point, the issue of being able to run the solid pod over http did come up. In the Standalone PHP Server, this was resolved by allowing http by explicitly setting  PROXY_MODE (see the "Usage" section).
It looks like a similar solution was omitted in this plugin 😞
I'll discuss this internally and see what resolution we come up with.

I've moved the internal discussion into the open at https://github.com/orgs/pdsinterop/discussions/2
I'll add an update here once the discussion has been resolved.

The consensus reached in the linked discussion is to remove the HTTP(S) check completely and let the server / environment decide.


Black Desert Online crashes

Software information
Black Desert Online
System information

GPU: AMD Vega 64
Driver: Mesa 20.0.99 AMD RADV LLVM/ACO
Wine version: wine-staging-5.5
DXVK version: 1.6

Log files

d3d9.log:
d3d11.log:
dxgi.log:
BlackDesert32_dxgi.log
BlackDesert32_d3d11.log
BlackDesert32_d3d9.log

been playing around with trying to get Black Desert Online working in Wine, and after compiling wine-staging 5.5 found I can actually get it to launch now.
trying to trace down what is a wine bug and what is a DXVK bug with actually getting into game, so apologies if this is filled with some spam, wanted to get some help on what issue should be reported where.
so far these are my results if anyone wants to try to reproduce:

using a clean wineprefix, nothing installed but dxvk and d3dcompiler_43 and d3dcompiler_47 (both set to native)

there's a known wine bug that affects the launcher, however it seems that with some luck and patience (race condition?) you can get past it by closing the closing the 'DGCefeBrowser.exe has encountered a serious problem and needs to close" window, in my case it'll pop up 3 times in a row if I win the race, or just once and show a black screen on the launcher if I lose

without DXVK, using just wine3d, as soon as the game launches you get a "Cannot create device" and it closes

with DXVK, the game launches and sometimes makes it to the main menu

with DXVK's d3d9 disabled, you get the same "Cannot create device" error when launching"

using DXVK without DXGI, the rate at which the game crashes before getting to the main menu seems to drop a lot

with DXVK d3d11, the game typically crashes when you hit the "Enter game" on the start up screen, however sometimes I've managed to make it farther

with DXVK for d3d9, wine's build in d3d11, and dxgi disabled, I've consistently succeeded into actually getting in game for a brief second before crashing.

unfortunately I'm not sure how to get a good apitrace, since the game is started by the launcher, so any tips or guidance would be appreciated there. I've attached logs from my latest attempt with DXVK's d3d9, d3d11, and dxgi all enabled, where I made it all the way to character selection.

Is your mesa-git build up to date (i.e. not more than a few hours old)? Asking because there have been some serious regressions recently which may affect you if you're using an older build.
As for an apitrace, you can basically dump the apitrace DLLs next to the game's executablel, as described here: https://github.com/Joshua-Ashton/d9vk/wiki/Making-a-Trace
That said, there isn't anything in the logs that directly hints at a DXVK issue. However, you seem to be running a 32-bit version of the game which could run into memory issues; there should be a 64-bit executable as well. Does that improve anything?

thanks for the tip, just recompiled latest mesa, last one was from about a week ago, so far still getting the same results, but that did remind me about something I derped on and forgot to mention.
to even get it the game to launch, the very first thing I had to do was apply this patch to winevulkan for vulkan child window rendering, so that could also be the culprit, or at least another piece.
i'll also try to play around with it in a 64 bit prefix, I had thought the game was a 32 bit only but you're correct, there is a 64 bit binary as well. so far I haven't been able to get it to launch in a 64 bit prefix (looks like Xingcode, the anti-cheat doesn't initialize for some reason).
also thanks for the tip on the trace, was able to get a quick trace (unfortunately derped with DXVK on, let me know if you need one with just wined3d)
here's a google drive link
if there's nothing in the logs that you can see that indicate a DXVK issue however, I'll start banging out some reports with wine, but I appreciate you taking a look!

Xigncodes needs it's kernel-driver, if it's not running it closes the game.
And it's highly unlikely that these kind of root-kit anticheat systems will ever work on wine.
(at least in the past xigncode itself even broke from windows patches)

sorry for the delay, gotcha, was unaware xingcode was kernel-mode, assumed the game just wouldn't start if the driver wasn't present but it does look like the crash once in game is caused by that, I'll close this for now since this isn't a DXVK problem.


Only wait if a new timestamp is being generated

Only wait if a new timestamp is being generated. If the one in the valid value is being used, just speed things up
This change is made on master because the spec in main is not updated, which is another issue.

PR checklist

[ ] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments

I think there is another possible improvement in [PBTS-ALG-UPON-PROP.1].
The timely check is added to the upon clause, but, in the case where we have lockedValue_p = v, we should not call timely for the same reason we don't call timely in lines 28-33 of the arXiv algorithm.

I think there is another possible improvement in [PBTS-ALG-UPON-PROP.1].
The timely check is added to the upon clause, but, in the case where we have lockedValue_p = v, we should not call timely for the same reason we don't call timely in lines 28-33 of the arXiv algorithm.

Potential fix.
upon ⟨PROPOSAL, h_p, round_p, v, −1⟩ from proposer(h_p, round_p) while step_p = propose do {
  if (lockedValue_p = v) || (lockedRound_p = −1 && valid(v) && timely(v)) {
    broadcast ⟨PREVOTE, h_p, round_p, id(v)⟩

Hey, getting here late. I don't see any practical effect from this change. The point of that line is to ensure that the current time is higher than the timestamp of the previous block. This (being too fast) can happen in any scenario, but it is much more likely to happen in round 0, when we don't have a valid block. We can only have a valid block from round 1, when it is pretty unlikely that we have to wait for the local time to be higher than last block's time.
In summary, this wait is just a safety anchor to slow down fast validators. It should not really impact the practical operation of any node, and if it does it will be at round 0, when there is no valid block. I would keep as it was, mostly because I can't see any benefits from this change, and it is also more clear (and the goal of the spec is this) to just do this check in every round.

Some more context, which should have been in the description.
We have been discussing how to implement PBTS at the app level. In this case, delaying the proposal is made inside prepareProposal. However, if there is a validBlock, prepareProposal is not called.
By fixing the spec in the proposed way, it captures this behavior as valid.
A similar argument serves for the @sergio-mena 's proposal. If the block is valid it will not be passed to processProposal, where its "timely"ness would be evaluated.

This discussion should be reopened when we port PBTS to main.

This discussion was taken into consideration when merging the specs from master to main.


Poor BOLD-T1w coregistration in ds000172

sub-control06_task-rest_acq-voxelsize112
Could be related to SyN-SDC which was applied.

Could also be signal dropout.

Isn't this just the result of very limited FoV?

I think the bounding box extended beyond the part of the visual cortex that is missaligned, but it would be worth looking at the raw data.

Yes - the tissue contrast was excellent.

I'm rechecking this case and my understanding is that SyN-SDC performed well, but distortion was too large. The affine BBR worked pretty well but distortions are still present and make up for those contours floating at the visual cortex and the frontal lobe.
I'd say there's little we can do here (without fieldmaps or pepolar acquisitions). My vote is closing this issue. Sometime in the future, if we try to optimize SyN-SDC further, then we should add this example to the test set of that optimization.


Implement bitwise shift opcodes for Constantinople

What was wrong?
https://github.com/ethereum/py-evm/issues/1104
Implement bitwise shift opcodes for constantinople
How was it fixed?
Not yet. Code is buggy and eats kitten.
Cute Animal Picture

@pipermerriam failing CI seems like something related to the new network abstraction and unrelated to this PR as far as I can tell. https://circleci.com/gh/ethereum/py-evm/50905?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

@cburgdorf see https://github.com/cburgdorf/py-evm/pull/1 for how to do this without the library.

Regarding test failure: https://github.com/ethereum/pytest-asyncio-network-simulator/pull/6 incoming

@cburgdorf you should be able to rebase this now and pass CI

Can we start running selected Constantinople state tests now?

Can we start running selected Constantinople state tests now?

@carver yes, but my recommendation would be to do that in a separate PR.  We'll need to update the commit that our fixtures are current set at (probably to whatever is in geth master?) and then fix anything that is broken.

@pipermerriam @carver Alright, I decided to branch of #1134 for the SAR opcode because I really need to ramp up my unicon bits & bytes skills for that one (Or maybe I just need to pick your brain more @carver :sweat_smile:)
So, this one is ready for review if anyone is up for it.


Support for callback before(:build)

Problem this feature will solve
I want to disable our Bullet gem when FactoryBot is building instances and creating records, because I don't care about n+1 problems inside my test setup.
The problem is, that there seems to be no callback called before(:build). I had a look into the source code but didn't find the right place to patch it.
Any help is appreciated where to start, so I maybe I can try for a PR.
Desired solution
I want to be able to use something like this
FactoryBot.define do
  before(:build) do |record|
    Bullet.enable = false
  end

  after(:create) do |record|
    Bullet.enable = true
  end
end

I'm interested too!

Created a PR for the change
https://github.com/thoughtbot/factory_bot/pull/1639


26 - Añadir colores después de PR

How was this resolved?
Added colors after missing PR

Already fixed by @Mj-br


Add support for 1.18/1.18.10

This pull request adds support for 1.18 (Cloudburst), 1.18.10

Thank you


(PUP-6286) Remove cve-2013-1654_sslv2_downgrade_agent.rb test

https://puppet.com/security/cve/cve-2013-1654/ describes a vulnerability
where an agent could connect to a rogue master and be downgraded to
sslv2. The puppet-agent packages that are used for acceptance tests
bundle an openssl that is built without sslv2 support, so this can't
happen, and this test has been skipped (at runtime) for some time now.
So just remove the test.
[skip ci]

👍

CLA signed by all contributors.

:+1:


Vector Module: Check points should work like lines and polys

I currently don't see a good way to check xy point data ... i can use assert_xy but that data need to be manipulated for this to work prooperly. Ideally we'd have a assert_points in the vector testor that worked like lines and polys and accepted a GDF that could be used to test for the correct data.
i'll post more on this but homework 3 in ea python 2020 has perfect examples of where this would be used.

I'm going to start looking into this!

pr here: https://github.com/earthlab/matplotcheck/pull/203

this was completed via #203 closing


fix(statsd): call the right log function

Summary
There is no kong.log.error, but there is kong.log.err.

@bungle even if this is a one-liner, please cherry-pick to ee

Cherrypicked in https://github.com/Kong/kong-ee/commit/808c73a3792337a3df5b3f67e94a758304bf8e04


Add automatic publish of the changes

Motivation
Internal LINK: SEC-454
TODO:

adjust trigger to release based
remove dry-run from multi-gitter call

Checklist

[ ] Code follows coding conventions held in this repo
[ ] Automated tests have been added
[ ] Tests are passing
[ ] Docs have been updated (if applicable)
[ ] Temporary settings (e.g. variables used during development and testing) have been reverted to defaults

How to test
If manual testing is required, what are the steps?

Fixed in DEVREL-924


Add rendering rules 'table_close'

Hello,
I have problem with Markdown table in mobile device browser. If I have big column table then the display is overflowed, the page width will follow the table width. So I want to add <div> tag as parent of table. I can use rule table_open to open DIV tag but I need also rule table_close. Can we have it?
Thanks,
Kaharman

It already exists.


Doesn't start as expected in the documentation

Followed the documentation; created a new virtual environment and then install galley; and then the following:
$ galley
usage: galley [-h] [--no-destroy] [config] [pattern]
galley: error: argument config: can't open '/Users/burhan/work/projects/django/docs/.galley.yml': [Errno 2] No such file or directory: '/Users/burhan/work/projects/django/docs/.galley.yml'

So what's this .galley.yml?

same here


can this already be ran?

hello! can this already be ran? how would the code line for variation look?

i have an 24gb ram 3090.

env:3090ti
RuntimeError: CUDA out of memory. Tried to allocate 26.00 MiB (GPU 0; 23.99 GiB total capacity; 22.72 GiB already allocated; 0 bytes free; 23.20 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.


Missing "buffering" event when using custom HttpFetchPlugin

Hi,
I found sometimes the shaka buffering event is missing, and I believe its related to registering custom HttpFetchPlugin as the issue is not reproduceable without it.
However I am not able to find any relationship between buffering event and HttpFetchPlugin, thus would like to get some hint on where to look at to investigate this issue.
Context:
I have a custom HttpFetchPlugin which acts as a http interceptor, it checks each individual segment requests and returns privately cached data if the uri matches the one fetched by shaka.
A simplified Pseudocode:
class CustomPlugin extends shaka.net.HttpFetchPlugin {
  public static parse(uri: string, ...): shaka.extern.IAbortableOperation<shaka.extern.Response> {
       const cachedData: Promise<shaka.extern.Response> = ..... find cachedData that matches this uri ....
       If(cachedData) {
           return new shaka.util.AbortableOperation(cachedData)
       } else {
           return super.parse(uri, ....)
       }
  }
}

On the other hand, I am listening to buffering event from shaka and start to play the video if bufferingEvent.buffering == false and enough audio and video segments have been buffered.
A normal behavior is (This is working as expected most time):

time1:  at begining shaka sends buffering=true event
time2: once video segment is buffered, shaka sends buffering=false event

we detect video element readystate is 0, thus we know audio semgnet is not buffered

time3: after audio segment is buffered, shaka sends buffering=false again, this time we get readyState = 4, knowing both A/V data are buffered.
time3.1: we start play video

Problem
It worked very well in most cases. But if one of the segments is delayed by 2~5 seconds, there is a random chance that a buffering=false Event is missing when both audio and video data are buffered, thus we never start to play the video. (we never get to time3 in above example)

More strange thing is, when this happens (which is when we never get to time3),  if manually query shaka.getBufferingInfo we can see both video and audio have enough buffer data. And video element readyState is 4.
Therefore I believe the issue is not about insufficent data are buffered, but just one buffering=false event is missing.

I can not reproduce this if disable the custom HttpFetchPlugin
I am suspecting if this is because somehow stateChange is never true at this line.
Question:

would you give some hint where in the shaka codebase to look at?

Thanks !

I am also seeing a similar behavior, although my fetch interception is not through a plugin. I'll get multiple events with buffering: true and not get one with a false value, even when playback continues uninterrupted. I'm on 4.3.6, so I'll be looking forward to 4.4!

I don't know how this could be related to fetch plugins or interception.  Buffering events are based on observation of what is buffered at the video element, not at the network level.  It could be a bug in BufferingObserver, though.

@avelad yes, definitely


Add trailing slash

Without this, the ceryx api initiates a redirect instead of actually registering a route.

All the examples in the readme also don't work without a trailing slash, which is kinda weird and confusing.


Disabled and selected button

When I change the IsEnabled property of a selected DLRadion button it is grayed out but shows as not selected after enabling the button again it is shown as selected.
I need to see it as disabled and selected how can I do it?

For swift, you can use isEnabled and isSelected.

Same problem with me, isEnabled = false and isSelected = true, but the RadioButton shows as not selected.

@ofer-ebert @DavydLiu
I've managed to made a workaround for this issue,.
I've created property
@property (nonatomic, getter = isReadOnly) IBInspectable BOOL readOnly
and then
in the -(void) touchUpInside i added this line
if (self.isReadOnly == false) {     [self setSelected:YES]; }

@esthrim How do u manage to set the button as disabled and selected programatically?

@FaridClorida as i have described above,  i added the IsReadonly Property,  so i just set the IsReadOnly to true.


Add a flag to control the log file log level

https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/issues/602

:+1:


panic on system error

Objective

First step for #16718
#16589 introduced an api that can only ignore errors, which is risky

Solution

Panic instead of just ignoring the errors

Testing

Changed the fallible_systems example to return an error

Encountered an error in system `fallible_systems::setup`: TooManyVertices { subdivisions: 300, number_of_resulting_points: 906012 }
Encountered a panic in system `fallible_systems::setup`!
Encountered a panic in system `bevy_app::main_schedule::Main::run_main`!

This is a safer default for now, although I'd really like to make this configurable in time for 0.16.


Modules pollute global scope

All of the modules are still creating/referencing top level constants. Since we're a gem we should put everything under RailInspector::

Fixed in: f934b4a5fd4643c76d73296d084dd8bf2c0e3a47, 8f0e6163a9c556a2f396e1db8777a2b36922aee9, and e7eba2a8896db1d8b63e49fd38118e5909dc8a64


fix: 修复闭包导致的pagination被错误重置的问题

👀 PR includes

✨ Feature

[ ] New feature

🎨 Enhance

[ ] Code style optimization
[ ] Refactoring
[ ] Change the UI
[ ] Improve the performance
[ ] Type optimization

🐛 Bugfix

[x] Solve the issue and close #1738

🔧 Chore

[ ] Test case
[ ] Docs / demos update
[ ] CI / workflow
[ ] Release version
[ ] Other ()

📝 Description
关联pr:https://github.com/antvis/S2/pull/1722
🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self-Check before the merge

[ ] Add or update relevant docs.
[ ] Add or update relevant demos.
[ ] Add or update test case.
[ ] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-react-v1.26.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Feature/compatibility 0.17

Description
Fix #144 and consequently #157.
Development notes

Update requirements.txt
Change call to load_context by KedroSession in CLI, hooks and tests.
Use kedro default way to handle project metadata and remove the ones from kedro-mlflow. and update CLI accordingly.
Update documentation (fix broken links to make the CI pas, fix typo, migration guide...)

A detailed list is available here.
Checklist

[X] Read the contributing guidelines
[X] Open this PR as a 'Draft Pull Request' if it is work-in-progress
[X] Update the documentation to reflect the code changes
[X] Add a description of this change and add your name to the list of supporting contributions in the CHANGELOG.md file. Please respect Keep a Changelog guidelines.
[x] Add tests to cover your changes

Notice

[X] I acknowledge and agree that, by checking this box and clicking "Submit Pull Request":

I submit this contribution under the Apache 2.0 license and represent that I am entitled to do so on behalf of myself, my employer, or relevant third parties, as applicable.

I certify that (a) this contribution is my original creation and / or (b) to the extent it is not my original creation, I am authorised to submit this contribution on behalf of the original creator(s) or their licensees.

I certify that the use of this contribution as authorised by the Apache 2.0 license does not violate the intellectual property rights of anyone else.

Codecov Report

Merging #166 (f34c0ea) into develop (455ffc4) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##           develop      #166   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           25        19    -6
  Lines          771       704   -67
=========================================
- Hits           771       704   -67

Impacted Files
Coverage Δ

kedro_mlflow/framework/cli/cli.py
100.00% <100.00%> (ø)

kedro_mlflow/framework/context/config.py
100.00% <100.00%> (ø)

kedro_mlflow/framework/context/mlflow_context.py
100.00% <100.00%> (ø)

kedro_mlflow/framework/hooks/node_hook.py
100.00% <100.00%> (ø)

kedro_mlflow/framework/hooks/pipeline_hook.py
100.00% <100.00%> (ø)

kedro_mlflow/utils.py
100.00% <100.00%> (ø)

tests/conftest.py
100.00% <100.00%> (ø)

tests/test_utils.py
100.00% <100.00%> (ø)

kedro_mlflow/__init__.py

kedro_mlflow/framework/context/__init__.py

... and 4 more

Continue to review full report at Codecov.

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

I tried quite hard to fix the errors coming up with kedro==0.17.1 but I did ot mange to go through. he errors I come u are somehow related to the kedro breaking changes and I cannot comu up with a solution that works for the 2 versions (however just installing kedro-mlflow on the padnas-risi starter based on 0.17.1 logs properly the parameters), even if ~30% of thee tests are failing.
I pin the kedro version for this release, and update with a fix ASAP.


save credentials option

As of now there is no option for saving the wifi SSID and password due to which the user has to type them everytime he wishes to start a hotspot. It would be better if there is a way to store the last used SSID and password.

done using sql


Don't check networks on web

We currently get exceptions when checking for networks on web. This PR jut adds a check and returns an empty list if we're on web.
Before and After (left and right respectively) :
https://github.com/dahliaOS/pangolin_desktop/assets/73116038/1e66964b-127b-487b-af05-7929176982f1

LGTM

The pr generally looks fine,  but i don't know if we want to merge it as this file will be rewritten to use nm.dart so idk if I want to update this at all, if others agree to update this file then LGTM

I say keep it in so that whoever ends up rewriting the network stuff sees the logic and doesn't forget about it.

Ye but that means that the current web demo visually breaks when going to the network page. This doesn't happen with the rest of the services AFAIK.


Second app logs to log file of first app while first app running - Windows

Symptoms:

When I run app1.py it logs to app1.log.
When I run app2.py, it logs to app2.log.
When I run app2.py while app1.py is running, app2.py starts sending its logs to app1.log.

I am using logger_tt version 1.5 on Python 3.9. This happens in a Windows environment only. When running on Linux, app2.py will always log to app2.log, even when app1.py is running.
Below is a minimal example that illustrates the issue. It is to be said that in my actual programs I am using multi-processing and multi-threading. There is also shared code between the actual programs that uses the logging facility.
#!/usr/bin/env python

from time import sleep
from logging import getLogger
from logger_tt import setup_logging

setup_logging(config_path='log_config.json', log_path='app1.log', use_multiprocessing=True)
logger = getLogger('app1')

while True:
    logger.info('App1 is doing stuff')
    sleep(5)

#!/usr/bin/env python

from logging import getLogger
from logger_tt import setup_logging

setup_logging(config_path='log_config.json', log_path='app2.log', use_multiprocessing=True)
logger = getLogger('app2')

logger.info('App2 is doing stuff')

The contents of log_config.json are as follows:
{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": {
    "simple": {
      "format": "%(asctime)s %(name)-8s %(levelname)-8s %(processName)-10s %(message)s"
    },
    "brief": {
      "format": "[%(asctime)s] %(levelname)s: %(message)s",
      "datefmt": "%Y-%m-%d %H:%M:%S"
    }
  },

  "handlers": {
    "console": {
      "class": "logging.StreamHandler",
      "level": "INFO",
      "formatter": "brief",
      "stream": "ext://sys.stdout"
    },

    "error_file_handler": {
      "class": "logging.handlers.TimedRotatingFileHandler",
      "level": "DEBUG",
      "formatter": "simple",
      "filename": "logs/log.txt",
      "backupCount": 3,
      "encoding": "utf8",
      "when": "midnight"
    }
  },

  "loggers": {
    "urllib3": {
      "level": "ERROR",
      "handlers": ["error_file_handler"],
      "propagate": false
    }
  },

  "root": {
    "level": "DEBUG",
    "handlers": ["error_file_handler"]
  },

  "logger_tt": {
    "suppress": ["exchangelib"]
  }
}

Hi @1marc1
Because the SO_REUSEADDR option is set on the logging socket server,
the weird thing that you described happened.
So to run multiple independent multi-processing applications with logging at the same time,
and each of them writes logs into a different file,
currently, you have to use logger_tt version 1.7+ and set the port to a different number for each application.
You could set the port directly in the setup_logging as follows:
#!/usr/bin/env python

from logging import getLogger
from logger_tt import setup_logging

setup_logging(config_path='log_config.json', log_path='app2.log', use_multiprocessing=True, port=6789)
logger = getLogger('app2')

logger.info('App2 is doing stuff')

Of course, the port number must not be already used by other applications.

Thank you so much for your continued support. I upgraded to logger_tt 1.7.3 and set the port number. It now works as expected!
I did notice one side effect of the upgrade. Closing the application takes about 2 seconds longer than when I was running with version 1.5. Any idea what could be causing that? I notice this effect both on Linux and on Windows. I double checked this effect by downgrading back to version 1.5. When using version 1.5 the application closes instantly.

Further to my comment, it is particularly evident when adding the statement print('Done') to the bottom of app2.py. When using logger_tt 1.5 the command prompt is instantly returned. When using logger_tt 1.7.3, there is a significant delay between printing Done and the return of the command prompt.
Do you have any idea what could be causing this and what could be done to resolve it?

Hi @1marc1
TLDR:
There is no difference between 1.5 and 1.7.3 regarding this matter.
It will happen if we use a port number that is not the default one and because there is a 5 seconds connection timeout.
As for why there is a difference between the default port and the one we use, I don't know yet.
You could mitigate this issue by setting daemon_threads = True for the LogRecordSocketReceiver thread or setting the connection timeout to 1. Or just leave it there as it already works as designed.
Daemon thread (not recommended):
#!/usr/bin/env python

from logging import getLogger
from logger_tt import setup_logging
from logger_tt.core import LogRecordSocketReceiver    # <--- new

LogRecordSocketReceiver.daemon_threads = True         # <--- new
setup_logging(config_path='log_config.json', log_path='app2.log', use_multiprocessing=True, port=6789)
logger = getLogger('app2')

logger.info('App2 is doing stuff')

This will cause the main thread to exit immediately, even if there may be a log waiting to be sent to the logger thread.
On the other side, the logger thread will also exit shortly after the main thread died (as designed).
This means after handling logs from this child process, it won't wait for the incoming log data from the other child processes anymore. Thus you may suffer the loss of logs which is usually the uncaught exception one. Ough!
Set the connection timeout to 1:
#!/usr/bin/env python

from logging import getLogger
from logger_tt import setup_logging
from logger_tt.core import LogRecordStreamHandler  # <--- new

LogRecordStreamHandler.timeout = 1                 # <--- new
setup_logging(config_path='log_config.json', log_path='app2.log', use_multiprocessing=True, port=6789)
logger = getLogger('app2')

logger.info('App2 is doing stuff')

This work well assuming all the necessary logs from the main process's main thread and child processes are sent to the logger thread within 1 second.

Hi @Dragon2fly,
I have been running some test on Linux, using logger_tt 1.7.3. Here are the results.
When not specifying a port number in setup_logging or when specifying port number 9020, when I run time ./app2.py, this is the output:
$ time ./app2.py
Done

real	0m5.106s
user	0m0.080s
sys	0m0.020s

When I set the connection timeout to 1 and I don't specify the port (or I specify it as 9020), the results are similar:
$ time ./app2.py
Done

real	0m5.111s
user	0m0.090s
sys	0m0.016s

When I use the not recommended daemon thread and either don't specify the port number or set it to 9020, then this is the result:
time ./app2.py
Done

real	0m0.094s
user	0m0.085s
sys	0m0.008s

We can see that with the daemon thread the command prompt is returned quickly. However, with the daemon thread, the App2 is doing stuff message does not end up in the log file.
FWIW, if I use both the daemon thread and the connection timeout, the behavior is like specifying only the daemon thread: the application exists quickly and the message does not appear in the log.
The results are the same when I specify a completely different port such as 6789.

Hi @1marc1 ,
Sorry, I forgot to mention that you need to comment out the below line for it to work.
Otherwise, it will just wait 5 seconds as before no matter what timeout you set.
https://github.com/Dragon2fly/logger_tt/blob/ef5a97d2e8ea355915f8dbd5d50e05bfd8091cb4/logger_tt/core.py#L313
Please test again. If there is no other problem, I'll push it into the next version.

We can see that with the daemon thread the command prompt is returned quickly. However, with the daemon thread, the App2 is doing stuff message does not end up in the log file.

Yeah, you've just confirmed that the daemon thread is not a recommended way.

Thanks @Dragon2fly, after commenting out that line it all seems to work, but you have to specify the connection timeout lines in app2.py. It then doesn't seem to matter if you specify a port or not. In my testing I (a) did not specify a port, (b) specified port 9020, (c) specified port 9021 and (d) specified port 6789. In all instances the App2 is doing stuff message shows up in the log file and the typical result is this:
$ time ./app2.py
Done

real	0m1.111s
user	0m0.092s
sys	0m0.016s

Now, if I leave the following lines out of app2.py, then the application does not exit at all and seems to be stuck. I pressed CTRL+C after 40 seconds to terminate the application.
from logger_tt.core import LogRecordStreamHandler
LogRecordStreamHandler.timeout = 1

If I change line 313 of core.py to self.connection.settimeout(1) and I don't include the two lines (above) for the connection timeout, then the message makes it to the log and the typical output is:
$ time ./app2.py
Done

real	0m1.105s
user	0m0.091s
sys	0m0.013s

Not sure what the best way is to further update your code, but based on these (limited) results, it seems that the best approach would be to update line 313 of core.py as it will not require the program using logger_tt to implement the connection timeout. However, I don't know if there are other implications to changing line 313.

Hi @1marc1

It then doesn't seem to matter if you specify a port or not. In my testing I (a) did not specify a port, (b) specified port 9020, (c) specified port 9021 and (d) specified port 6789. In all instances the App2 is doing stuff message shows up in the log file and the typical result is this

There are 2 separate things here.

Set the timeout to 1 second and it will wait for 1 second then exit after the main thread dies no matter what the port was.
Changing the port in App2 will ensure it will always send logs to App2's log server and thus logs separately from App1.

Now, if I leave the following lines out of app2.py, then the application does not exit at all and seems to be stuck. I pressed CTRL+C after 40 seconds to terminate the application.

After the socket is closed, the address: port resource is not released immediately. It is moved into TIME_WAIT state.
It just hangs in there for a little while, for how long is platform dependence.
The SO_REUSEADDR option is used to ensure that when you restart the app, it can instantly reuse the same address: port even when the old socket is in TIME_WAIT state. logger-tt didn't use that option to be able to log from multiple multiprocessing apps at the same time.
That being said, the SO_REUSEADDR option doesn't behave the same on all platforms regarding two or more sockets binding to the same address: port at the same time. The log message could be delivered to one of the sockets arbitrarily, or by some other rule, delivered to one specific socket. Refer to this for more detail.

If I change line 313 of core.py to self.connection.settimeout(1) and I don't include the two lines (above) for the connection timeout, then the message makes it to the log

So, not setting the port and getting the log message to the right file is really a hit or a miss.
I would recommend always setting the port to be sure that it has the same behavior across platforms.

Not sure what the best way is to further update your code, but based on these (limited) results, it seems that the best approach would be to update line 313 of core.py as it will not require the program using logger_tt to implement the connection timeout. However, I don't know if there are other implications to changing line 313.

Changing line 313 is fine. It has the same effect as adding the 2 lines that you tried.
However, in the future, I'm thinking of removing that line and setting the default timeout in the class, so that users could change it from the outside if needed. I'm also thinking of setting daemon_threads=True and keeping the logger thread alive 5 seconds after the main thread dies

Cool. I am keen to see your updates implemented!


v0.8.3 Release?

Could we please have a v0.8.3 Release (that would include the PRs too?)
Thank you.

Which changes are you looking for? Not sure when I will have time to got through the PRs, but some seem like they should be merged.

Which changes are you looking for?

As many as possible? :)

@jrudolph at least it supports sbt-1.0.x

I'm closing this for now. 0.9.0 for sbt 1.0 was released. I guess the pending PRs will have lots of conflicts now because of the migration. Let's see what we want and are able to salvage for the next version.


nixos/charybdis: implement reload functionality

Motivation for this change
IRC daemons are highly stateful daemons, so allow config changes without
kicking all server and client connections.
Basically a port of 60c62214f5a3c7db6aa30d8a8e02c863b6abcf0a.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

we might want to consider updating the description in reloadIfChanged to mention security considerations

Not sure what security considerations you have in mind, given that both the symlink and the file it links to are root owned anyway.

When there is a new version of this software released with the fix to a new CVE and the user upgrades their server they will continue to run the vulnerable version because the service was never restarted.


Implement twtxt native mentions support

Halp @Bradshaw

Is there some progress on this one?

No news from gaeel, so I don't think so, wanna try to tackle that one?

Might have a look at it tomorrow, because it's quite annoying. But no guarantees, I'm not a native regexp speaker.

Are we wanting to support the current @mention and the twtxt native support, or just only use the native option?

Just the twtxt native, we could make up our own quick mention if we wanted like ^ckipp

Ah, so we only want the native. I thought we keep them both. But I actually prefer the native, it enhances discovery. So 👍

#190 fixes this.

Great job @ckipp01!


Question/Possible bug: You provided an invalid object where a stream was expected error in Module Federation environment

I've migrated one app to MFE Architecture using Module Federation and mysteriously looking error is thrown at runtime:
You provided an invalid object where a stream was expected error. You can provide an Observable, Promise, Array, or Iterable.
The code that causes it looks like this:
this
  .getSomeObservable()
  .pipe(
    switchMap(() => this.getOtherObservable()) // switching here causes the error
  ).subscribe()

However I was pretty sure code was ok...
When analysing stack trace, error originates from:

https://github.com/ReactiveX/rxjs/blob/6.6.7/src/internal/util/subscribeTo.ts

export const subscribeTo = <T>(result: ObservableInput<T>): (subscriber: Subscriber<T>) => Subscription | void => {
  if (!!result && typeof result[Symbol_observable] === 'function') {
    return subscribeToObservable(result as any);
  } else if (isArrayLike(result)) {
    return subscribeToArray(result);
  } else if (isPromise(result)) {
    return subscribeToPromise(result as Promise<any>);
  } else if (!!result && typeof result[Symbol_iterator] === 'function') {
    return subscribeToIterable(result as any);
  } else {
    const value = isObject(result) ? 'an invalid object' : `'${result}'`;
    const msg = `You provided ${value} where a stream was expected.`
      + ' You can provide an Observable, Promise, Array, or Iterable.';
    throw new TypeError(msg);
  }
};

In my case, result is of type BehaviorSubject.
However, when I compared stack trace when app is running in non-federated to federated, the issue is here:

https://github.com/ReactiveX/rxjs/blob/6.6.7/src/internal/innerSubscribe.ts#L110

  if (result instanceof Observable) {
    return result.subscribe(innerSubscriber);
  }

Without module federation, this if is truthy, when I look at prototypes, deeper I can find Observable.
However in federated environment, this expression is falsy.
The good news it that refactoring to:
this
  .getSomeObservable()
  .subscribe(() => this.getOtherObservable().subscribe())

does not throw error any more.
Do you have any ideas how to properly fix it?
It looks like Webpack is doing something under the hood that breaks this kind of checks.
UPDATE 1
https://github.com/ReactiveX/rxjs/issues/6628 - the same issue opened on rxjs side. Questions were asked, but unfortunately I do not know the answers... Perhaps webpack team can answer it on rxjs side?"

Please provide steps to reproduce


[HOLD] Components system example

Here's an example of how we might pattern some of our new Components system work. Open up Demo.xcodeproj and give it a try in the Simulator.
I do not view any of this as final or definitive, but instead a conversation starter for how we collectively might move forward. I think some of it is good and some is bad, and I'd like to encourage us all to feel out what works and doesn't, what we'd like to keep and what we'd like to ditch. (Apologies that it isn't a particularly pretty app to look at 🤠)
To answer some of the specifics initially laid out in https://phabricator.wikimedia.org/T329329:

How do we theme a component?

As automatically as we can! See WKAppEnvironment and the Views classes below. In the UIView based Components, I've used the idea of a reusable configure() method that a component is responsible for to restyle itself based on the current app environment.

How do we to apply fonts to a component?

I think it feels good to define our font primitives somehow like is presented in WKFont. You'll notice some cases are using system text styles, and others are using custom metrics.

How will items 1 and 2 automatically update upon system dark mode change and dynamic type change?

Transiting changes in the environment via the AppEnvironment class has been kind of nice and frictionless. In the client app, I created a new UIWindow class RootWindow that all the UI is placed within. As the trait collection changes, it passes those changes to AppEnvironment which then automatically publishes those changes to any object (view or controller) participating in the Components system.

How will we write a component for a UIKit context vs a SwiftUI context?

I've included an example of purely UIView based approaches (like if we're inserting a UIView based Component into an existing UIViewController), a UIViewController vending approach, a UIHostingController/SwiftUI based approach, and an intermixed UIKit/SwiftUI based approach.

How will components be added to the view hierarchy? Where do responsibilities lie? (i.e. Canvas approach).

Through iteration, it ultimately did feel useful to have some kind of base Canvas to lay components on to.

Classes
Components Framework
Environment

WKAppEnvironment: An @ObservedObject to transit app environment data like the current theme or trait collection to all objects that subscribe to the Components system.

Views

WKComponentView: A UIView that subscribes to the Components system. Published changes to the WKAppEnvironment are listened for and then communicated to subclasses via appEnvironmentDidChange().
WKComponentViewController: A UIViewController that subscribes to the Components system.
WKComponentHostingController: A UIHostingController (itself a UIViewController) for SwiftUI views that subscribes to the Components system.
WKCanvas: This is a WKComponentView that automatically changes its background color when the theme changes.
WKCanvasViewController: This is a UIKit based WKComponentViewController that includes some utility methods to quickly add Components to the canvas.

Style

WKColor: Our color primitives used in the Components. This is equivalent to what we currently call the Wikimedia Style Guide Colors. Components themselves never use these directly, but instead just use WKTheme properties which reference these.
WKFont: Our font primitives used in the Components. This is in a way similar DynamicTextStyle. Components use these primitives directly. By passing in the current trait collection, these fonts will scale to support the current category size.
WKTheme: A struct that contains the WKColor properties per theme. Components use these properties directly when styling themselves.

Client app

RootWindow: This is the base window the app's UI is contained within. When the trait collection changes, it updates the Component framework's WKAppEnvironment with the changes.
ViewController: All the demo controllers are constructed here.

Demo app
The demo app includes 4 examples. Try using Xcode's environment override feature to switch between light/dark appearance and dynamic type size to see the changes spiral through the UI.
Buttons
This example adds WKComponent's directly to a UIView. This is a UIViewController that doesn't participate in the Components system itself, but adds Components that do participate in the system. As you use Xcode's environment overrides to switch between light/dark/dynamic text size, you'll see the WKButton Components themselves adapt to the environment but the base UIViewController view does not.
Top Read
This example adds a SwiftUI View to a WKCanvasViewController via a WKComponentHostingController. From the client app we pass in data.
Random Photo
This example uses a WKComponentViewController. This uses two random image APIs I found, so please forgive me if something NSFW pops up.
Say Hello
This example mixes both SwiftUI and UIView based Components into a UIKit based WKCanvasViewController. Typing out a message in the UITextField and tapping the button displays that message in the SwiftUI view via an observed data object.
Random Notes

✅ To me, using Combine and the RootWindow approach to communicate trait collection changes to WKAppEnvironment is nice.
✅ You'll notice how straightforward a lot of the client app is. If needed, there are cases where client app data is passed inwards (like top read), but for cases where that isn't needed like the Random Photo component, we don't even have to worry about hooking up buttons. I feel like this really does help make the Components more reusable, as depending on the nature of the component there's less knowledge the client app has to have to use it. The client app code becomes more navigation and interface layout focused.
✅ I think the pattern in the UIKit based WKComponentViews of having a one time layout setup() method, and a reusable configure() method that styles the component pattern is nice.
✅ Exposing internal API only as necessary (as seen in WKButton's addTarget(...) API which mimics UIButton's) is nice. True it involves essentially shadow rewriting API that the underlying UIView uses, but it feels great to be intentional about what a component is allowed to change without exposing the underlying implementation.
⚠ It's annoying to prefix our classes with WK just because SwiftUI steals namespace for things we'd like to use like Font and Color, but as it's common to have to refer to both in SwiftUI View construction, it's better than typing SwiftUI.Font and SwiftUI.Color all the time to distinguish.
⚠ There's some redundant messaging that happens when the WKAppEnvironment changes. For example, if a WKComponentView is hosted in a WKComponentViewController, both the component view and the controller are informed of the environment change. Not necessarily a bad thing, but just wanted to call it out.
⚠ A way I tried to reduce some redundant messaging can be seen in WKAppEnvironment's set(...). Instead of directly setting the theme or traitCollection properties themselves, which will fire a publish event for each set, this coalesces changing both at the same time (which is likely the most common intent) into just one fired event. Personally, I think it's nicer to just set the properties directly and remove this complexity, but I think that should be guided by if we notice negative performance or not with excessive Component messaging.
🚨 Supporting both UIKit and SwiftUI based Components kinda threw a wrench into keeping things consistent.
🚨 Related to above, I don't think the general data model and delegation patterns I have exampled here are particularly consistent or good. It would be best if we determined a consistent, flexible enough for both UIKit/SwiftUI approach here.
🚨 It would be nice to be able to direct a developer into the setup() and configure() pattern more automatically in a UIKit based WKComponentView. I explored some protocol based approaches that may work, but ultimately took them out because they didn't yet resonate with me.

One thing I did notice is that some of these views are not getting deallocated, which may account for it appearing like additional configuration calls are happening upon theme change (when really they are happening on memory-leaked views). So we should look into that. The WKButtons for example, do not call deinit, but they do when I set their superclass as a raw UIView. So maybe this has something do to with the Combine setup in WKComponentView.

FYI, I was able to easily fix the leaks in https://github.com/wikimedia/wikipedia-ios-components/commit/fc5c7a92fcbf6111999ca2c749a28e14cc85f1ad. The fixes weren't a must for a simple demo app, but I wanted to make sure there weren't any problems here that would be difficult to solve later once we're building components.
With these leak fixes, I'm good to approve/merge whatever you need in this PR, or if you want to spin up a new one with just the base classes for merging, that would be fine too. Thanks!

I really appreciate you looking at this work!

Awesome work! Here are my initial thoughts from a first pass.
3. I'm a little iffy about some of the app-side view controllers being so feature-specific. We definitely will need these types of view controllers that are capable of adding child/subview components to their view, but I worry about the intention of each becoming confusing. For example, the distinction between TopReadController and WKTopReadHostingController could feel blurry, and components-related logic may begin to slip into the app-side TopReadController. Not necessarily something to jump on though - we can wait and see how it plays out with a feature.

I totally agree – I'd really like to figure out how to better encapsulate the internal types the components framework uses. Ideally, the components framework should only expose the highest level, useable by client app, types.

FYI, I was able to easily fix the leaks in https://github.com/wikimedia/wikipedia-ios-components/commit/fc5c7a92fcbf6111999ca2c749a28e14cc85f1ad. The fixes weren't a must for a simple demo app, but I wanted to make sure there weren't any problems here that would be difficult to solve later once we're building components.

Nice – appreciate you locating the leak.

With these leak fixes, I'm good to approve/merge whatever you need in this PR, or if you want to spin up a new one with just the base classes for merging, that would be fine too. Thanks!

If we're all good with this pattern, I'll spin up a new one with just the base stuff we need for merging without all the demo work.

Closing, but leaving branch up.


Support QResource.UnregisterResource.

Ignore the failing build. The AppVeyor env has a newer Qt.

Should we upgrade to this newer version of Qt? Or modify appveyor.bat?

Update Qt to the latest release. I'm not sure where it is at right now, are what exact version in on AppVeyor.
I also don't like the idea of builds "just breaking" over time. I'd like to look into a way to automatically install a very specific version of Qt on the Windows environment.

Indeed, current manner seems a bit brittle.


fix: cannot delete a database if team member has SQL editor tab that uses that db

SUMMARY
The TabState model has foreign key constraints on it that are not properly handled when the referred rows are deleted.
This causes, for instance, that a database fails to be deleted if the user has an SQL Lab editor opened with a query referencing that database.
This PR adds a database migration with ondelete instructions to properly handle cascading deletes when needed.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
TESTING INSTRUCTIONS

Team member A previously has a SQL editor tab with DB1
Team member B (or same user might work as well) try to delete DB1
When prompted, confirm the deletion

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[x] Includes DB Migration (follow approval process in SIP-59)

[x] Migration is atomic, supports rollback & is backwards-compatible
[x] Confirm DB migration upgrade and downgrade tested
[x] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Runtime estimates results (benchmark_migration.py)
Migration for 1000+ entities took: 2.53 seconds

Results:

Current: 2.51 s
10+: 2.27 s
100+: 2.24 s
1000+: 2.53 s

LGTM. Can you add the migration script runtime values to the description too?

@eschutho Sorry about that, added to the description.
There's a failing test on just one of the integrations (sqlite), which I don't know why it's happening, if you can take a look that'd be great.
Thanks!

Looks great. Thanks @diegomedina248!

Thank you!

🏷 preset:2022.13


Details Header Layout adjustments

Fixes #871

Prevent the buttons wrapping on top of each other
Removed the large margins from both sides of the header
Prevent the text from wrapping on top of each other, adding the ellipsis to the text when it overflows
Added tooltip to the header text for the cases where it overflows
All of the above was for the default view, but modified the Trace Details details pane to do the same as well since it has custom display as of #960.

@JamesNK @smitpatel bumping this up to you since I sent it out right before the holiday. Fairly small change to try to close off  more of the details view feedback


How to use visual data?

Hi @MarvinStuede, as you can understand I am very interested in your package, thanks again for making it public. Correct if I am wrong but I understand that it can work with visual data, in addition to lidar's point cloud. The thing is that I need some more info on that.
[1] First of all, what kind of visual data can be used? Can it be used with a monocular rgb camera, stereo topics, rgbd..?
[2] How should I subscribe the visual data to cmr package?
Thank you in advance.

Hi,
the package was developed as a method for loop detection and point cloud registration based on 3D Lidar data. It is implemented as an extension to the RTAB-Map Framework (ie. rtabmap_ros):
https://github.com/introlab/rtabmap_ros
Therefore, to use visual data it is necessary to use RTAB-Map. There are several tutorials on the RTAB-Map website on how to use visual data. The cmr_lidarloop package can then be used for RTAB-Map, to also detect loop closures with Lidar data. If you only need loop closures based on visual data, RTAB-Map by itself is sufficient.


Ability to play a animation a single time

I've renamed the playAnimation() into loopAnimation() and add a slightly different functionality to playAnimation() to play an animation just a single time. This makes the animation feature more useful for stuff like open a door.
Furthermore I've done some code cleanup.

Coverage decreased (-0.6%) to 98.686% when pulling 6955f8f02e758d7de28709a082a6d31c2a90ea3d on f0086:master into a9eb0cde7d42b938281644b007dd6ad6f76310b9 on straker:master.

Coverage decreased (-0.2%) to 99.179% when pulling 3e0ded5c5d0d8961c245c646070ae6f7b54fd32f on f0086:master into a9eb0cde7d42b938281644b007dd6ad6f76310b9 on straker:master.

Resolved in #14


Stopped working after update (2.06.00)

Hi,
After the latest update (2.06.00), I can no longer connect to the ConBee II stick (started when I updated all my docker images).
I get this in the logs:
[marthoc/deconz] Starting deCONZ...
[marthoc/deconz] Current deCONZ version: 2.06.00
[marthoc/deconz] Web UI port: 8100
[marthoc/deconz] Websockets port: 8103
[marthoc/deconz] VNC Disabled
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
libpng warning: iCCP: known incorrect sRGB profile
14:39:42:110 HTTP Server listen on address <IP_ADDRESS>, port: 8100, root: /usr/share/deCONZ/webapp/
14:39:42:171 CTRL. 3.27.214:39:42:208 COM: use stable device path /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2119315-if00
14:39:42:271 ZCLDB init file /root/.local/share/dresden-elektronik/deCONZ/zcldb.txt
14:39:42:403 parent process /bin/sh
14:39:42:403 gw run mode: docker
14:39:42:403 GW sd-card image version file does not exist: /root/.local/share/dresden-elektronik/deCONZ/gw-version
14:39:42:411 DB sqlite version 3.27.2
14:39:42:412 DB PRAGMA page_count: 58
14:39:42:412 DB PRAGMA page_size: 4096
14:39:42:412 DB PRAGMA freelist_count: 5
14:39:42:412 DB file size 237568 bytes, free pages 5
14:39:42:412 DB PRAGMA user_version: 7
14:39:42:412 DB cleanup
14:39:42:412 DB create temporary views
14:39:42:477 started websocket server at port 8103
14:39:42:478 [INFO] - Found file containing button maps. Parsing data...
14:39:42:479 [ERROR] - Button map 'sunricherCCTMap' in JSON file has no assigned ModelIDs. Skip loading button map...
14:39:42:482 [INFO] - Button maps loaded.
14:39:42:483 dlg action: Read binding table
14:39:42:483 found node plugin: libde_rest_plugin.so - REST API Plugin
14:39:42:484 found node plugin: libde_signal_plugin.so - Signal Monitor Plugin
14:39:42:493 found node plugin: libstd_otau_plugin.so - STD OTAU Plugin
This plugin does not support propagateSizeHints()
This plugin does not support propagateSizeHints()
14:39:43:654 device disconnected reason: 4, index: 0
14:39:44:605 wait reconnect 15 seconds
14:39:45:655 wait reconnect 14 seconds
14:39:46:705 wait reconnect 13 seconds
14:39:47:559 Announced to internet https://phoscon.de/discover
14:39:47:755 wait reconnect 12 seconds
14:39:48:764 wait reconnect 11 seconds
14:39:49:764 wait reconnect 10 seconds
14:39:50:764 wait reconnect 9 seconds
14:39:51:764 wait reconnect 8 seconds
14:39:52:764 wait reconnect 7 seconds
14:39:53:764 wait reconnect 6 seconds
14:39:54:764 wait reconnect 5 seconds
14:39:55:764 wait reconnect 4 seconds
14:39:56:764 wait reconnect 3 seconds
14:39:56:882 New websocket <IP_ADDRESS>:35528 (state: 3)
14:39:57:299 GW update firmware found: /usr/share/deCONZ/firmware/deCONZ_ConBeeII_0x26660700.bin.GCF
14:39:57:764 wait reconnect 2 seconds
14:39:58:764 wait reconnect 1 seconds
14:39:58:857 device disconnected reason: 4, index: 0

I'm running on an IBM X3650 with Ubuntu Server LTS 20.04
Not sure what firmware (can't access the stick anymore).
Edit: I tried rolling back to 2.05.88, and this sort of works, but now all my devices are gone. Restoring from a backup did not work. It says Loading backup successfull, but no lights are available.

I solved by changing to this:
    devices:
      #- /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2149106-if00
      - /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2149106-if00:/dev/ttyACM0

Regards
Matteo

Odd, but yes, that also worked for me. Still have DECONZ_DEVICE=/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2149106-if00 under environment (i.e. didn't change to - DECONZ_DEVICE=/dev/ttyACM0).
But cool, thanks!!

Changing from USB0 to ACM0 did work for me, ex:
--device /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2118536-if00:/dev/ttyUSB0  -e DECONZ_DEVICE=/dev/ttyUSB0
to
--device /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2118536-if00:/dev/ttyACM0  -e DECONZ_DEVICE=/dev/ttyACM0

I have the same problem.. Arrived today.
Dont know if it was after updating docker to version 20?

As there hasn't been any new replies and as there are newer versions, i'm closing this issue. If this needs to be re-opened, please ping me :)


CompositeSettingsDictionary.AsString() failes when the dictionary is empty

CompositeSettingsDictionary.AsString() fails when the dictionary is empty because it calls IEnumerable.Max() on the key.Length.

Fixed by 897328b


Correcting behavior of nullable dates

What happened?
When YAML dates can be null, the field is treated as string instead of date
What did you expect to happen?
Some dates, such as published_at, can be null instead of having a date.
The issue is that the field itself cannot be treated as a date anymore, so it won't show in the Calendar View's 'Date' field. The Table View will also treat the fields that have a date as a string instead.
How can we reproduce it (as minimally and precisely as possible)?
Add a date YAML, with some files having no value.
Anything else we need to know?
No response
Plugin version
1.2.1
Obsidian version
1.0.3
OS
Windows

This is likely an unintended result of previous fix which aimed to fall back to string when all values where null. Thanks for reporting! 🙏


💡 How to make custom shorcut hotkey?

Describe the feature
The readme says that custom shortcuts can be customized. However, there are no instructions on how to do it. Can you teach me how to customize this and call up this awesome emoji mart with a keyboard shortcut?
An idea of implementation
No response

Hi @amdid0 , I am not sure on which platform you are, but in the readme there is a expandable field to explain how to do this in gnome shell:

👣 More info on defining shortcuts in GNOME Shell here
Go to Settings > Keyboard > View and Customize Shortcuts > Custom Shortcuts
Or you can do it from the terminal, but you will need to adapt it if you already have existing custom shortcuts registered
# Check existing shortcuts list:
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings

# Create shortcut 0 triggered with Super+E
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/]"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name 'Emoji Mart'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command 'flatpak run io.github.vemonet.EmojiMart'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding '<Super>e'

It will be different depending on the OS you use but a quick internet search / question to a LLM would solve this easily and will always provide an up-to-date solution. All you need then is to bind your shortcut to the command flatpak run io.github.vemonet.EmojiMart


Add cleaned reanalysis data (ERA-5) to workflow intake catalog

We have an intake catalog at https://github.com/ClimateImpactLab/downscaleCMIP6/blob/master/workflows/intake-catalog.yaml. Right now it only has information about storing CMIP6 GCM runs and their cleaning. It should also house information on ERA-5 clean data stores.

I'm closing this for now because widespread intake catalog use is slowing things down a bit in the workflows. Will reopen a new issue if we revisit this.


HDT crashes instantly after launching

If I delete all data and run the program it will open but not function properly and eventually crash. After that I can't open the application at all. Heres the Crash report:
http://pastebin.com/3p5wzWfp

Hey @Paleek please download the latest version. It should fix this issue: https://github.com/Epix37/Hearthstone-Deck-Tracker/releases/download/v0.10.6/Hearthstone.Deck.Tracker-v0.10.6.zip

I figured. But thanks for the help anyway. I advice you to update the link on hearthstats.
Date: Wed, 10 Jun 2015 07:20:46 -0700
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>CC<EMAIL_ADDRESS>Subject: Re: [HearthStats.net-Uploader] HDT crashes instantly after launching (#676)
Hey @Paleek please download the latest version. It should fix this issue: https://github.com/Epix37/Hearthstone-Deck-Tracker/releases/download/v0.10.6/Hearthstone.Deck.Tracker-v0.10.6.zip
—
Reply to this email directly or view it on GitHub.


Prevent closing non-dimissible drawer on handle double-click

closes #362

@emilkowalski can we please merge this?

Drawer.Handle has been removed for now.