Åland shields

Support rendering of shields on the Åland Islands (Swedish-speaking autonomous region of Finland). I also plan on getting in contact with the Finnish community to see if it is possible to support more shields in Finland.

This project is a never-ending geography lesson :-D

@claysmalley The difference is that Åland has its own road network, owned and maintained by the government of Åland, while in the rest of Finland they belong to the Finnish Transport Infrastructure Agency. Åland also has their own road legislation separate from mainland Finland. For these reasons AX make more sense to me.
There are four main highways on Åland, numbered 1-4.

There are also a few additional roads that have higher numbers with a different shield.

There are six network=AX:* routes currently mapped, does this represent the entire route network of Åland?  Looks like the entire network was mapped yesterday :)  I would ask for similar outreach to happen to the national communities involved.  I have no desire to instigate an unexpected international incident!

I should have brought this up in #365, but now would be a good time to pose the question:
For countries with no existing route networks, what standard of consensus should we hold for establishing support for brand-new network/ref tagging schemes outside the US?

@ZeLonewolf Yes, that's the entire network to my knowledge. There are few more roads that don't seem to be signposted but have numbers.

Looks like the entire network was mapped yesterday :)
Guilty as charged. I doubt anyone would object, given how little mapping activity Åland gets. I contacted the Finnish community yesterday to ask about the mainland, but I can always ask them about Åland too. Unless they are Swedish-speaking though, I think they know less about Åland than some Swedes do due to the language barrier.

For countries with no existing route networks, what standard of consensus should we hold for establishing support for brand-new network/ref tagging schemes outside the US?

I think this depends heavily on how big the country and its mapping community is. For small countries, there may be only one or two regular mappers making decisions on tagging, but numbered road networks for such countries tend to be small and straightforward. If you're the first to map road routes in such a country, and you've notified the local community, it's probably fine. Larger countries may or may not have already reached consensus on tagging, and the resulting consensus is not always something we can support in this project.
Some basic criteria for supporting route=road relations:

Is the network=* value the country's ISO 3166-1 alpha-2 code alone, or prefixed by the country code and a colon :?

Or, if this is a route network assigned by an international organization (to which country codes would not apply), is the value of network=* unique, avoiding conflict with existing values of network=*?

Can shield appearance be derived from network=* (with limited, explicitly documented exceptions)?
Is the network=* tagging scheme free of unnecessary complexities?
Can ref=* be displayed directly as the route number on the shield, without preprocessing (e.g. adding or removing a prefix)?

I thought it was by country name and Å comes after Z in the (Swedish) alphabet :roll_eyes:
I've corrected the order which includes my previous addition of the Swedish shields.

Code looks good, just need to update planet to test it out.

Looks good!


connection.on 'error' handler don't work

Hello))
Can somebody help me?
The problem is that mysqlConnection.on('error') don't handle fatal errors, like 'PROTOCOL_CONNECTION_LOST', 'ETIMEDOUT' or else.
But error handler  in 'query' function catch every error.
As I read in documentation: 'Fatal errors are propagated to all pending callbacks'.
Maybe something wrong in my code?
This is my code
const mySqlSingleton = () => {
    let mysqlConnection = null;

    function createMysqlConnection() {
        return new Promise((resolve, reject) => {
            mysqlConnection = mysql.createConnection(config.mysqlDB);

            mysqlConnection.on('error', err => {
                console.error(err);

                if (err.code === 'PROTOCOL_CONNECTION_LOST') {
                    mysqlConnection = null;
                }
                if (err.fatal) {
                    mysqlConnection = null;
                }
            });

            mysqlConnection.connect((err) => {
                if (err) {
                    console.error(err);
                    reject(err);
                } else {
                    console.log('connection to mysql done');
                    resolve(mysqlConnection);
                }
            });
        })
    }

    return {
        getMySqlConnection: function () {
            return mysqlConnection === null ? createMysqlConnection() : Promise.resolve(mysqlConnection);
        },
        query: function (sql, values, position) {
            return this.getMySqlConnection().then(conn => {
                return new Promise((resolve, reject) => {
                    conn.query(sql, values, (err, rows) => {
                        if (err) {
                            reject(`query error. error_text: ${err}`);
                        }
                        resolve(rows);
                    });
                })
            })
        },
    }
};

Sincerely.

Use Poll, it's much more reliable.

Closing since there hasn't been a follow up to the given answer.


Kubernetes Secret Sync Requires the alias as an ObjectName

What steps did you take and what happened:
1- Create a SecretProviderClass
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
name: azure-kvname
spec:
provider: azure
secretObjects:                                 # [OPTIONAL] SecretObject defines the desired state of synced K8s secret objects

secretName: sqlserver
type: Opaque
data:

objectName: SECRET_1                    # name of the mounted content to sync. this could be the object name or object alias

--> It's specifically emphasized that the objectName could be either the name or the alias however the secret never get's created.
2- Create a pod that mounts the KV volume and reference the secret as an env variable
What did you expect to happen:
Secret get created
Which access mode did you use to access the Azure Key Vault instance:
[e.g. Service Principal, Pod Identity, User Assigned Managed Identity, System Assigned Managed Identity]
User Assigned Managed Identity
Environment:

Secrets Store CSI Driver version: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.0.0
Azure Key Vault provider version: mcr.microsoft.com/oss/azure/secrets-store/provider-azure:0.0.9
Kubernetes version: v1.16.13
Cluster type: AKS

@aramase Thanks for the support

SecretProviderClass yaml
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
name: azure-kvname
spec:
provider: azure
secretObjects:                                 #SecretObject defines the desired state of synced K8s secret objects

secretName: sqlserver
type: Opaque
data:

objectName: $secretName                    # name of the mounted content to sync. this could be the object name or object alias
key: dbpassword
parameters:
usePodIdentity: "false"
useVMManagedIdentity: "true"
userAssignedIdentityID: $clientId
keyvaultName: $keyVaultName
cloudName: ""          #[OPTIONAL] if not provided, azure environment will default to AzurePublicCloud
cloudEnvFileName: ""   # [OPTIONAL] use to define path to file for populating azure environment
objects:  |
array:

|
objectName: $secretName
objectAlias: SECRET_1     # [OPTIONAL] object alias
objectType: secret        # object types: secret, key or cert
objectVersion: ""         # [OPTIONAL]
resourceGroup: $KeyvaultResourceGroupName            # the resource group of the KeyVault
subscriptionId: $subscriptionId         # the subscription ID of the KeyVault
tenantId: $tenantId                 # the tenant ID of the KeyVault

Pod yaml
kind: Pod
apiVersion: v1
metadata:
name: nginx-secrets-store-inline
spec:
containers:

image: nginx
name: nginx
env:

name: dbpassword
valueFrom:
secretKeyRef:
name: sqlserver
key: dbpassword
volumeMounts:
name: secrets-store-inline
mountPath: "/mnt/secrets-store"
readOnly: true
volumes:
name: secrets-store-inline
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "azure-kvname"

kubectl describe pod <pod name>
Name:         nginx-secrets-store-inline
Namespace:    default
Priority:     0
Node:         aks-agentpool-39253250-vmss000000/<IP_ADDRESS>
Start Time:   Thu, 15 Oct 2020 09:09:13 +0000
Labels:
Annotations:
Status:       Pending
IP:           <IP_ADDRESS>
IPs:
IP:  <IP_ADDRESS>
Containers:
nginx:
Container ID:
Image:          nginx
Image ID:
Port:
Host Port:
State:          Waiting
Reason:       CreateContainerConfigError
Ready:          False
Restart Count:  0
Environment:
dbpassword:  <set to the key 'dbpassword' in secret 'sqlserver'>  Optional: false
Mounts:
/mnt/secrets-store from secrets-store-inline (ro)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-8q5qw (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
secrets-store-inline:
Type:              CSI (a Container Storage Interface (CSI) volume source)
Driver:            secrets-store.csi.k8s.io
FSType:
ReadOnly:          true
VolumeAttributes:      secretProviderClass=azure-kvname
default-token-8q5qw:
Type:        Secret (a volume populated by a Secret)
SecretName:  default-token-8q5qw
Optional:    false
QoS Class:       BestEffort
Node-Selectors:
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason                Age                From                          Message

Normal   Scheduled             15s                default-scheduler             Successfully assigned default/nginx-secrets-store-inline to aks-agentpool-39253250-vmss000000
Normal   Pulling               12s (x2 over 15s)  kubelet                       Pulling image "nginx"
Normal   Pulled                11s (x2 over 13s)  kubelet                       Successfully pulled image "nginx"
Warning  Failed                11s (x2 over 13s)  kubelet                       Error: secret "sqlserver" not found
Warning  FailedToCreateSecret  5s (x12 over 15s)  csi-secrets-store-controller  failed to get data in spc default/azure-kvname for secret sqlserver, err: file matching objectName pbb-sonarqube-db-password not found in the pod

@ahmedkhammessi The Secrets Store CSI Driver uses the files from the pod mount to mirror as Kubernetes Secrets. If using an alias for the object then the objectName for secretObjects need to be the alias which in this case is SECRET_1.
  Warning  FailedToCreateSecret  5s (x12 over 15s)  csi-secrets-store-controller  failed to get data in spc default/azure-kvname for secret sqlserver, err: file matching objectName pbb-sonarqube-db-password not found in the pod

As you can see from the above error, the file pbb-sonarqube-db-password is not found. Could you change to using alias here -
  secretObjects:                                 #SecretObject defines the desired state of synced K8s secret objects
  - secretName: sqlserver
    type: Opaque
    data:
    - objectName: SECRET_1                    # name of the mounted content to sync. this could be the object name or object alias
      key: dbpassword

If the secret still fails to create after the change you can view the error in the kubectl describe pod output.

@ahmedkhammessi Is the issue resolved now?

The issue is resolved, I simply think the documentation is misleading since it doesn't state the fact that if the alias is used in the object definition it has to be used in the secret reference too, actually it states that its optional.


Add pricing tier options in create/update for ADL

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[x] If applicable, the PR references the bug/issue that it fixes.
[x] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[x] My spec meets the review criteria:

[x] The spec conforms to the Swagger 2.0 specification.
[x] Validation errors from the Linter extension for VS Code have all been fixed for this spec. (Note: for large, previously checked in specs, there will likely be many errors shown. Please contact our team so we can set a timeframe for fixing these errors if your PR is not going to address them).
[x] The spec follows the patterns described in the Swagger good patterns document unless the service API makes this impossible.

:shipit:

@anudeepsharma I will update the description to say "current" instead of "this". Good call!

@anudeepsharma Done!

 https://github.com/Azure/azure-sdk-for-python/pull/919

 https://github.com/Azure/azure-sdk-for-node/pull/2005

 https://github.com/Azure/azure-sdk-for-ruby/pull/625


Update RHEL7.9 compose in tmt github action

As per https://gitlab.cee.redhat.com/baseos-qe/citool-config/-/commit/d58add8cf5e6f5e7bb031b928cd43c8cbc4b5c44 the RHEL7.9 compose has to be updated

Can one of the admins verify this patch?


scrypto: use ecdsa.VerifyASN1 instead of ecdsa.Verify

This allows us to profit from some optimizations the standard library does under the hood and simplifies the code.

This change is


how to disable indent-guide-mode as default?

I just tried to configure in init-local.el, but it doesn't seem to work.

Edit init-editing-utils.el, or use (remove-hook 'prog-mode-hook 'indent-guide-mode).


Is OWS OSx Compatible

Is this available for Mac OS x?

Are you referring to the UE4/UE5 Plugin or OWS itself?
The plugin is not restricted and should be compatible.
OWS itself is available as per the instructions https://github.com/Dartanlla/OWS/blob/main/DOCKER.md#macos
I hope this helps.

@wflieller OWS 2 is compatible with Mac OS X.  While I have not used it on a Mac, others in the OWS Discord have and they wrote the instructions for Mac OS that are on GitHub.  If you run into any issues, you can get help here:  https://discord.gg/qZ76Cmxcgp


Fix flaky FinalizerTaskIntegrationTest

By not asserting the strict order between finalizer1 and finalizer2.
For example, if fails here: https://ge.gradle.org/s/y7nxtzpxrej2c/tests/:core:configCacheIntegTest/org.gradle.api.FinalizerTaskIntegrationTest/task can be finalized by and dependency of multiple finalizers?top-execution=1

Superseded by https://github.com/gradle/gradle/pull/21397


csolution run creates all contexts, even when just one context is selected

Describe the bug
The csolution run command creates all contexts, even when just one context is selected. This may create unexpected errors that are hard to understand.
To Reproduce

Use this example: Network.zip
Ensure that the mbedTLS pack is not installed and execute:
Execute:

>  csolution run c:\Test\Nov20\Network\Network.csolution.yml -g CubeMX -c BSD_Client.Debug+STM32F746NGHx
error csolution: no component was found with identifier 'Security:mbed TLS'
C:/Test/Nov20/Network/HTTPS_Server/HTTPS_Server.cproject.yml - warning csolution: dependency validation for context 'HTTPS_Server.Debug+STM32F746NGHx' failed:
MISSING Keil::Network&MDK:Service:Web Server<EMAIL_ADDRESS>  require Security:mbed<EMAIL_ADDRESS>
Expected behavior
I propose that only the specified context is generated when using the run command.
Environment (please complete the following information):

Windows
CMSIS-Toolbox 2.6.1

Note that all contexts need to be processed in order to find siblings, in other words contexts sharing the same generator id, base-dir and cgen-file.
This is along the lines with what has been discussed in https://github.com/Open-CMSIS-Pack/devtools/issues/1812 and https://github.com/ARM-software/vscode-cmsis-csolution/issues/121.


[Web] Autofill is filling the form immediately instead of opening the password manager

Steps to reproduce

Run the app for web, complete the form and save your credentials in your password manager.
Refresh the page and click any form field.

Related issue: #114620
Expected results
Should give the option to pick your credentials from password manager(actually working on double click).
Actual results
It fills the form with your credentials on the first click. Also throws error in the console:
Error
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 296:3       throw_
dart-sdk/lib/_internal/js_shared/lib/rti.dart 1388:3                              _failedAsCheck
dart-sdk/lib/_internal/js_shared/lib/rti.dart 1366:3                              _generalAsCheckImplementation
dart-sdk/lib/_internal/js_shared/lib/js_util_patch.dart 81:5                      getProperty
lib/_engine/engine/dom.dart 2241:24                                               DomKeyboardEventExtension.get$35shiftKey
lib/_engine/engine/platform_dispatcher/view_focus_binding.dart 60:15              <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 426:37  _checkAndCall
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 431:39  dcall

Code sample
Code sample
class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  final formKey = GlobalKey<FormState>();
  final controllerEmail = TextEditingController();
  final controllerPassword = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Form(
        key: formKey,
        child: Column(
          children: [
            AutofillGroup(
              child: Column(
                children: [
                  TextFormField(
                    controller: controllerEmail,
                    autofillHints: const [AutofillHints.email],
                    keyboardType: TextInputType.text,
                    textInputAction: TextInputAction.next,
                    decoration: const InputDecoration(
                      label: Text('Email'),
                      border: OutlineInputBorder(),
                    ),
                  ),
                  const SizedBox(height: 15),
                  TextFormField(
                    obscureText: true,
                    controller: controllerPassword,
                    autofillHints: const [AutofillHints.password],
                    textInputAction: TextInputAction.done,
                    keyboardType: TextInputType.text,
                    decoration: const InputDecoration(
                      label: Text('Password'),
                      border: OutlineInputBorder(),
                    ),
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.22.3, on macOS 13.6.4 22G513 darwin-x64, locale es-419)
    • Flutter version 3.22.3 on channel stable at /usr/local/Caskroom/flutter/3.19.5/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b0850beeb2 (3 weeks ago), 2024-07-16 21:43:41 -0700
    • Engine revision 235db911ba
    • Dart version 3.4.4
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/gero/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)

[✓] Android Studio (version 2023.1)
    • Android Studio at /Volumes/Latest/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version 1.89.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 13.6.4 22G513 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 127.0.6533.89

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Hi @geronimol,
The error above seems to be similar to one at https://github.com/flutter/flutter/issues/149968 and it's fixed by https://github.com/flutter/engine/pull/53830. But the fix is on master channel only, so please switch to master channel and confirm this:
flutter channel master
flutter upgrade

@huycozy The console errors are gone, but the autofill issue persists

I checked this on my end but couldn't see that issue. I faced https://github.com/flutter/flutter/issues/66356 instead. Can you share your demo?

Demo
https://github.com/user-attachments/assets/3e856b66-edb4-4d58-97a3-d6d6c100fac0

My Flutter versions:
Channel stable, 3.24.0
Channel master, 3.24.0-1.0.pre.486

Demo:
https://github.com/user-attachments/assets/32d99298-0f6f-4bf4-9965-309e7071ead8
I can see errors in the console again, on the second attempt:
Error
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 296:3       throw_
dart-sdk/lib/_internal/js_shared/lib/rti.dart 1388:3                              _failedAsCheck
dart-sdk/lib/_internal/js_shared/lib/rti.dart 1366:3                              _generalAsCheckImplementation
dart-sdk/lib/_internal/js_shared/lib/js_util_patch.dart 81:5                      getProperty
lib/_engine/engine/dom.dart 2241:24                                               DomKeyboardEventExtension.get$35shiftKey
lib/_engine/engine/platform_dispatcher/view_focus_binding.dart 60:15              <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 426:37  _checkAndCall
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 431:39  dcall

Flutter version:
Flutter 3.24.0-1.0.pre.487 • channel master •

Demo:
https://github.com/user-attachments/assets/32d99298-0f6f-4bf4-9965-309e7071ead8
Flutter version:
Flutter 3.24.0-1.0.pre.487 • channel master •

I am using Chrome as well. Can you share your Chrome settings on chrome://password-manager/settings (screenshot) like this?

password-manager/settings

Sorry it is in spanish

Thanks. I still can't reproduce the issue. Labeling this to see other's input.

I don't yet know what Flutter does to cause it to fill in the form differently (I thought this was purely based on browser configuration), but will keep this open for further investigation.

Can you guys try with the code i have provided on issue https://github.com/flutter/flutter/issues/160114

Thanks. I still can't reproduce the issue. Labeling this to see other's input.

Can you try from the code on this bug. I have also attached a screeen recording for the same as to how I reproduced it
https://github.com/flutter/flutter/issues/160114

Hello, we are having the same Issue. We're building a web base login and it is pretty annoying that once you click and of the fields it immediately fills the login fields with the top most Password Managers value.
Furthermore does the manager only show if you would delete your whole value or click the text field twice. So there seems to be two bugs.
Additionally we have noticed that the immediate autofill is delayed buy like 1s after you click one of the given auto fill fields.
Could we please investigate into this a little more than just leaving it open for 5 months since this is a really unuserfriendly behaviour.


Recommended approach for normalizing/denormalizing state

This is a...

[ ] usage question

Question:
I have started a new project with angular-redux and I really like the setup, all is working well. However, the complexity will grow soon and I'm concerned with the store state will become too deep, arrays within arrays - you know the drill.
Best solution seems to be to normalize the state (ngrx/entity functionality), however I can not find a solution for this with angular-redux, is there a recommended approach?
Thanks for all the hard work!

@rutgervd , redux has a vast ecosystem of all kinds of tools and for normalizing data I usually use normalizr library


Update @openshift-console/dynamic-plugin-sdk-webpack to 0.0.6

OCP team now recommending 0.0.6 as best for OCP 4.10
https://github.com/openshift/console/pull/11429

/cc @jamestalton


Unable to find type [System.Windows.Forms.ToolTipIcon]

https://github.com/proxb/PowerShell_Scripts/blob/65d0ac81cb2f73b51dba318e6ae721bdea0db204/Invoke-BalloonTip.ps1#L46
This object type doesn't work here. The assembly is loaded later so this produces an error.
To resolve just remove this from the parameter as the object type is set later in this line https://github.com/proxb/PowerShell_Scripts/blob/65d0ac81cb2f73b51dba318e6ae721bdea0db204/Invoke-BalloonTip.ps1#L78

Add this to the top of your script.
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")


Release notes should include all PRs

... even if they are so small and maybe not very important.
DeFiChain (app) is a community project. Every submission counts and should be mentioned.

Hi yes updating them now thanks for pointing out

Hi yes updating them now thanks for pointing out

Please note updated release notes: https://github.com/DeFiCh/app/releases/tag/v2.1.13

Please note updated release notes: https://github.com/DeFiCh/app/releases/tag/v2.1.13


Problem with ready command

When given multiple ready commands it doesn't wait for image to load.  Looks like the .ready command is a little buggy, and doesn't actually wait for all images to load.

This is fixed.


[Question] How to use "state" of custom class or error

Hi, I have a question "How to use state of custom class or error"
For example,
class User {
    var name: String
}

class SampleViewReactor: Reactor {
    struct State {
        var user: User
        var error: Error
    }
}

class SampleViewController: UIViewController, View {
    func bind(reactor: Reactor) {
        reactor.state.map { $0.user }
              .distinctUntilChanged // Must I make the user `Equtable`?

        reactor.state.map { $0.error }
              .distinctUntilChanged // Must I make the error `Equtable`?
    }
}

What is the best solution as a means to not be called more than once?
Could you help me?

Hi @touyu, my approach of this is, like you already said, using the Equatable protocol. Swift 4.1 brings Synthesized Equatable and Hashable. It means, that you dont have to write your own Equatable and Hashable implementation. All you have to do is comform your type [User, Error] to Equatable protocol and Swift will do the rest. More here.
You will end with this:
func bind(reactor: Reactor) {
     reactor.state.map { $0.user }
           .distinctUntilChanged()

     reactor.state.map { $0.error }
           .distinctUntilChanged()
}

@smajdalf Thank you for answering!


[CNTRLPLANE-26: Disable building HO for s390x platform on PR

What this PR does / why we need it:
Due to capacity issues in s390x environment, we're instructed to stop building images on PR for s390x
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/area ci-tooling

/retitle "CNTRLPLANE-26: Disable building HO for s390x platform on PR"

Would you please add the why/description to the commit message?

Done

/approve

/retitle [CNTRLPLANE-26: Disable building HO for s390x platform on PR

/retitle CNTRLPLANE-26: Disable building HO for s390x platform on PR

/lgtm


Make API doc self-contained

As of the creation of this issue, the API doc assumes that the reader is familiar with a wrapper API.  In practice this means the API doc assumes the reader is familiar with Marpa::R2.  This was defensible at the time the API doc was first written, as a way to get a doc that was fully serviceable to 90% of its potential audience done in reasonable time.  But since then, the Marpa audience has grown.
The API doc should be converted so that, while very terse, it is a reference document that anyone familiar with parsing theory and C language can use.  Prior knowledge of some wrapper will remain very useful, but should not be required.

Work on this issue is finished.  Absent feedback to the contrary, I will close this issue after a couple of days.


Feat/leaderboard datagrid

task HDM-20

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: rozekmichal:white_check_mark: KacperKoza343:x: migaceYou have signed the CLA already but the status is still pending? Let us recheck it.

Do we need this PR? It seems to be part of https://github.com/humanprotocol/human-protocol/pull/2661

"View All" is not available anymore, is this expected?
Also font size is changed from 16 to 14, not sure if it's an intended change

should be ok :)


[DNM] debug assertion, do not return error to TiDB

What is changed and how it works?

Issue Number: Close #xxx
What's Changed:

Related changes

PR to update pingcap/docs/pingcap/docs-cn:
Need to cherry-pick to the release branch

Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Side effects

Performance regression

Consumes more CPU
Consumes more MEM

Breaking backward compatibility

Release note
Please add a release note.
If you don't think this PR needs a release note then fill it with None.
If this PR will be picked to release branch, then a release note is probably required.

/release

/release

/release


Added views for the screen

Main view will change if there is an incoming POST
Fixed Slack notifications from Bamboo

Type your response ABOVE THIS LINE to reply

Thank you for your query. This is an automatic response to let you know this has been received and we will respond to you as soon as we can.
If you need to provide additional information then please reply to this message.
You can also find answers to common queries at http://go.bath.ac.uk/dsc
Regards,
Digital Marketing and Communications
<EMAIL_ADDRESS>Thanks in advance for your patience and support.

This message was sent to<EMAIL_ADDRESS>in reference to Case #4056.
[[3a32ef40fd914034ed041914276825d77046e88a-642483970]]

Type your response ABOVE THIS LINE to reply

Thank you for your query. This is an automatic response to let you know this has been received and we will respond to you as soon as we can.
If you need to provide additional information then please reply to this message.
You can also find answers to common queries at http://go.bath.ac.uk/dsc
Regards,
Digital Marketing and Communications
<EMAIL_ADDRESS>Thanks in advance for your patience and support.

This message was sent to<EMAIL_ADDRESS>in reference to Case #4074.
[[77862fbc3ab753d032d808c35b0a1f99c5a67b15-643076584]]


system image is not correctly triggered by TagBot

It seems the tag created by TagBot is not a push: tag signal to github action. I need to try to figure out something else :\

fixed now, this is because TagBot is not using ssh.


Register BitRound (fix #346)

#299 was missing the registration of the class itself. We likely need a test to detect all classes that weren't registered.
TODO:

[ ] Unit tests and/or doctests in docstrings
[ ] tox -e py310 passes locally
[ ] Docstrings and API docs for any new/modified user-facing classes and functions
[ ] Changes documented in docs/release.rst
[ ] tox -e docs passes locally
[ ] GitHub Actions CI passes
[ ] Test coverage to 100% (Coveralls passes)

Hello @joshmoore! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file numcodecs/__init__.py:

Line 103:1: E402 module level import not at top of file

Should it not now be enough to put it in the entrypoints? Or maybe there's no point doing that because we know numcodecs must be imported.

We could certainly replace all of the imports in __init__.py with entrypoints. That won't help with this case though because we'd still want a test that shows that new classes were added to setup.py. The other potential downside is I've been having trouble having entrypoints registered with pip install -e . (Help welcome)

OK, well let's not for this PR. For record, an entrypoints-only (or importlib.metadata.entry_points()) method would have

pros: no need for all the import and try/excepts; and no need to import any of the submodules at all except when needed, maybe even leading to a pure python builtins-only numcodec option
cons: take some time to scan entryponts but then end up making the imports of numcodecs modules anyway. If entrypoints is only the fallback, we can defer that import until we need it.

I've been having trouble having entrypoints registered

Certainly let's fix this!

Do we want to include a release note?

Just waiting on the RTD for review and then I'll release 0.10.2.

Do we know why tests didn't catch this?

Ignoring the Windows failure:
Traceback (most recent call last):
      File "C:\Miniconda\lib\site-packages\urllib3\response.py", line 438, in _error_catcher
        yield
      File "C:\Miniconda\lib\site-packages\urllib3\response.py", line 767, in read_chunked
        chunk = self._handle_chunk(amt)
      File "C:\Miniconda\lib\site-packages\urllib3\response.py", line 7[20](https://github.com/zarr-developers/numcodecs/runs/7618040304?check_suite_focus=true#step:4:21), in _handle_chunk
        returned_chunk = self._fp._safe_read(self.chunk_left)
      File "C:\Miniconda\lib\http\client.py", line 626, in _safe_read
        chunk = self.fp.read(min(amt, MAXAMOUNT))
      File "C:\Miniconda\lib\socket.py", line 704, in readinto
        return self._sock.recv_into(b)
      File "C:\Miniconda\lib\ssl.py", line 1[24](https://github.com/zarr-developers/numcodecs/runs/7618040304?check_suite_focus=true#step:4:25)1, in recv_into
        return self.read(nbytes, buffer)
      File "C:\Miniconda\lib\ssl.py", line 1099, in read
        return self._sslobj.read(len, buffer)
    ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

...

    requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)", ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

knowing that it's unrelated, but there may be an issue in this repo that needs fixing.

Wonder if we should test the batteries included codecs as part of the registry tests

Do we know why tests didn't catch this?

All current tests specifically do BitRound() rather than loading via get_codec. Catching this with the current setup would require finding every class defined in all modules in this repo and checking that they are findable via get_codec. That test could also be used to say that sample datasets should be stored under https://github.com/zarr-developers/numcodecs/tree/main/fixture (cc: @rabernat)
A simpler fix would likely be to have a "new codec" issue with a dedicated checklist. (cc: @MSanKeys963)

Wonder if we should test the batteries included codecs as part of the registry tests

For example, yeah :+1:

Filed issue ( https://github.com/zarr-developers/numcodecs/issues/348 ) as a placeholder linking to this testing discussion. Feel free to add anything else there

Thanks for handling this Josh! 🙏


do not stop ctrl-c in cargo-bpf load

Thanks for the patch!
We do want to handle SIGINT tho. If we don't, the process will just be aborted and we'll potentially leave XDP programs installed.

I have implemented what I think is the correct behaviour here: https://github.com/alessandrod/redbpf/commit/4ad11eb208b7a0dcd78d8933d376fd3a7a89f22e

If we just allow cargo-bpf to be killed, then we need to manually unload the XDP programs, which can be quite annoying. Thanks, but I won't merge this. Enjoy to Pi, though :)


Use bindings for -D_FILE_OFFSET_BITS=64

This should help "by default" dealing with large files on 32-bit Linux. Other platforms can opt in where necessary as well.

cc @cuviper
cc https://internals.rust-lang.org/t/pre-rfc-rust-and-large-file-support-lfs/2777

Hm actually, on second though I'm not sure that this is a good idea. This would require that when linking against C code the _FILE_OFFSET_BITS=64 define is passed. Otherwise when sharing a stat structure with another library it may not match up.
I'll explore exposing the *64 variants as separate types.

Well, if you flip the scenario and C code does compile with _FILE_OFFSET_BITS=64, which is strongly recommended, then sharing stat still doesn't match up.  So then you'll end up suggesting that crates should really only use the explicit stat64 anyway, because their C might not have the non64 stat anyway, and really there's no good reason to use the old interfaces.
Maybe it's a little cleaner to be very explicit that it's 64-bit, but then that makes cross platform development tricky again.  "Which stat am I supposed to use again on Windows/Linux/OSX/BSD?"  Each has a best answer, called different things.  I say just junk the old stuff and let Rust libc give a unified front of the best names.
Honestly I don't think any FFI should ever expose any of these types, exactly because they are so fraught with idiosyncrasies like this.  I would call it a mistake even for a pure C library to have these types in its interface.  This should be business just between a program/library and libc/kernel only.  Don't let the madness spread! :)
But I fear I'm repeating things I've said already.  Thanks for doing the actual work -- it looks like the new code organization has made this kind of type audit a lot easier.  I'll try to give an actual code review tomorrow...

A passing idea of compromise, in case I can't convince you fully hide these gory details -- how about an lfs module which is simply a remapping of those "best" types into unified names?  One stat to rule them all...
I suppose such an lfs could be a crate of its own, but given that libstd/etc itself will also be embedding libc and ought to use the best interfaces, it seems good to keep this knowledge close-knit.

Hm true, that's a good point about libraries which are auto-compiled with this support. Although I think you're right in that those who are aware of this problem may actually avoid exposing stat and related types in their API for precisely this reason (so they're not tied to the #define). So in that sense, leaving the defaults as the "normal compile" may make the most sense.
I'm not too worried about selecting what the best stat option is on every platform, that's what the standard library is for! In all seriousness, though, libc is not intended to be cross platform at all, and instead is simply targeted at exposing what the underlying system provides. Along these lines I'd also be wary of defining our own abstractions here such as a lfs module as that's not what's present on each system as well.
Overall I'm leaning a bit more towards this as-is which exposes the 64-bit support as a separate set of functions and types. This does mean that users of the API will have to #[cfg] to use the right one, but it means that users also don't have to worry about compiling all their C code with the right #define to actually be compatible with libc.

How about std::os::unix::raw and std::os::unix::fs::MetadataExt, especially as_raw_stat()?  The standard library ought to start using the better stat64 interface internally, so will that trickle out to the user here?

Oh right, that's a good point, I always seem to forget about those...
I do agree that using stat64 in the standard library is probably best as an implementation detail, although that's a good question about what to expose. I think, however, that we could simply just name the type differently per-platform. E.g. on Linux it would return stat64 (and that's what we'd define), whereas on other platforms it could return stat.

Will you expose things like stat, stat64, and stati64 in Windows?  It's only fair... :wink:
In general what you've added looks good to me.  I think the b32/mod.rs stat and stat64 may eventually need to be specialized for different architectures, because AFAIK what you have there is x86 specific, but for now it's probably fine.  Auditing other LFS symbols, there are a few more gaps:
Resource limits also have LFS versions, primarily to support 64-bit values in RLIMIT_FSIZE.  So that adds getrlimit64, setrlimit64, struct rlimit64, rlim64_t, and RLIM64_INFINITY.
Technically glob_t, glob, and globfree also have 64-bit LFS versions, because the __USE_GNU version of the function pointers need either stat or stat64.  But these fields are now non-pub __unusedN: *mut c_void, so I guess it doesn't matter.  Those function pointers are only used if the GLOB_ALTDIRFUNC flag is set, and that's not defined here at all.
Both fseek and ftell are naughty on all systems, not just Linux, as they only deal in c_long.  The LFS solution is to add fseeko and ftello which use off_t instead, and of course Linux has explicit off64_t versions too.  Windows just added fseeki64 and ftelli64.
There are other functions that could have LFS variants, but aren't represented in libc at all yet.  e.g. fallocate, preadv, pwritev.
I noticed fpos_t, fpos64_t, and dirent are currently empty enums.  These are not opaque types like FILE; the caller must allocate them somehow, so how is one supposed to use those functions?  (But dirent64 is implemented in this PR, so maybe the others are just TODO.)

Thanks for looking this over! I think it's safe to say that we don't have to worry about the Windows story much here as I suspect that any project dealing with files on Windows falls into one of two categories:

A "non-robust" project just uses the standard library, which is itself robust as it just uses standard Windows APIs (none of these functions), which transitively makes the app robust for large files!
A "robust" project bindings APIs directly will also be using the Windows APIs rather than these CRT APIs.

Right now we do actually bind a silent translation of stat to stat64 on Windows, so this may mean that we want to bind both stat/stat64 over there as well for completeness, but other than that it's probably not the biggest of deals!

In general what you've added looks good to me. I think the b32/mod.rs stat and stat64 may eventually need to be specialized for different architectures, because AFAIK what you have there is x86 specific, but for now it's probably fine

Yeah so far it's verified for MIPS/ARM/x86, but if we add more platforms we can just break it apart as necessary.

Resource limits also have LFS versions, primarily to support 64-bit values in RLIMIT_FSIZE. So that adds getrlimit64, setrlimit64, struct rlimit64, rlim64_t, and RLIM64_INFINITY.

Right! I remember when compiling with -D_FILE_OFFSET_BITS=64 these changed, I've now added these bindings as well.

Technically glob_t, glob, and globfree also have 64-bit LFS versions, because the __USE_GNU version of the function pointers need either stat or stat64

Yeah I wasn't gonna worry too much about these, but seems harmless to go ahead and add.

Both fseek and ftell are naughty on all systems, not just Linux

Added! Elided Windows for now, however.

There are other functions that could have LFS variants, but aren't represented in libc at all yet. e.g. fallocate, preadv, pwritev.

Cool, I'll hold off on these until the others are added anyway. By the way, is there a document you're reading these from? Would be good to list somewhere!

I noticed fpos_t, fpos64_t, and dirent are currently empty enums. These are not opaque types like FILE; the caller must allocate them somehow, so how is one supposed to use those functions? (But dirent64 is implemented in this PR, so maybe the others are just TODO.)

Ah yeah dirent was just filled in and the others are basically a TODO to fill out, I'll add a comment.
If you can't tell, most people don't use these bindings, they just use the standard library instead :)

By the way, is there a document you're reading these from? Would be good to list somewhere!

I'm peering at the actual libc on Fedora like so:
nm --dynamic --defined-only /lib/libc.so.6 | grep '\w*64\w*$'

You could look at /lib64/libc.so.6 too, but in that case foo64 symbols are just aliases to plain foo.
I'm also referencing lintian's nice list of lfs-symbols.  These are asserted not to be used by any 32-bit binaries, to be sure one is either explicitly using foo64 versions or implicitly getting there via _FILE_OFFSET_BITS=64.  (64-bit binaries are always LFS safe on Linux, so they can do what they want.)

If you can't tell, most people don't use these bindings, they just use the standard library instead :)

Which is good!  So the job is mostly to provide that solid base for the standard library to use. :)

Oy, musl doesn't like glob64_t.  But I was curious what they do for LFS in general, and they just force their whole world!  Everybody gets 64-bit off_t et al.  They even shunt all syscalls to 64-bit variants, to "fixup legacy 32-bit-vs-lfs64 junk".  (Must be nice to not worry about legacy binaries!)
But I think this means a 32-bit musl target would go really badly right now...

Yeah I have a feeling there's a few things that'll need to be fixed up for 32-bit MUSL, but we can always worry about all that later :)
Let's see if this build is fixed...

Aha, yay! Got some green builds now.
To confirm, this all sounds ok to you @cuviper? The major decision basically being to expose bindings as if you compiled C code with no flags rather than "what we think are the best set of C flags"

It's not my preference, but I'll accept your decision.  I guess we'll see in the standard library how annoying it is to #[cfg]-select the best interfaces.
Note, there are also other flags which may come up where "best" is more subjective, like _GNU_SOURCE.  For instance, there are different GNU and POSIX behaviors for basename, which are linked as basename and __xpg_basename respectively.  Here are the various glibc feature macros for reference, although this doesn't enumerate the actual functions affected.

Ok! In that case I'll merge, thanks @cuviper!


Remove dynamic parameters and maps

Fixes #497

@victortive  Yea i like this, recently when working with this package all the maps and whats being passed in where has been hell.
In the above you've just done terminate?
I feel like its gonna be a long road converting all maps throughout the package

I just did terminate options, but the main problem is the webrtc library also relies on maps. Both need to be updated

@victortive  Yea i like this, recently when working with this package all the maps and whats being passed in where has been hell.
In the above you've just done terminate?
I feel like its gonna be a long road converting all maps throughout the package

I just did terminate options, but the main problem is the webrtc library also relies on maps. Both need to be updated

Hmm ohk, well ive just been made a maintaner so im like sweet lets get this package alive and going with updates


BoundsError for nonlinear ODE

using ReachabilityAnalysis

@taylorize function benchmark7!(du, u, p, t)

    du[1] = u[3]^3 - u[2] + u[4]
    du[2] = u[3]
    du[3] = 2.0
    du[4] = u[4]
    return du
end

# define the initial-value problem
X₀ = Hyperrectangle(low=[0.35, 0.45, 0.25, -0.01], high=[0.45, 0.55, 0.35, 0.01])

prob = @ivp(x' = benchmark7!(x), dim: 4, x(0) ∈ X₀)

# solve it
sol = solve(prob, T=2.0)

Stacktrace:
 [1] getindex at ./array.jl:787 [inlined]
 [2] getindex at /home/sguadalupe/.julia/packages/TaylorSeries/XWMlP/src/auxiliary.jl:80 [inlined]
 [3] jetcoeffs!(::typeof(benchmark7!), ::Taylor1{Float64}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Nothing) at /home/sguadalupe/.julia/packages/TaylorIntegration/KHxcX/src/explicitode.jl:82
 [4] __jetcoeffs!(::Val{false}, ::Function, ::Taylor1{Float64}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Nothing) at /home/sguadalupe/.julia/packages/TaylorIntegration/KHxcX/src/explicitode.jl:101
 [5] taylorstep!(::Function, ::Taylor1{Float64}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Float64, ::Nothing, ::Bool) at /home/sguadalupe/.julia/packages/TaylorIntegration/KHxcX/src/explicitode.jl:237
 [6] validated_step!(::typeof(benchmark7!), ::Taylor1{Float64}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Array{Taylor1{TaylorN{Float64}},1}, ::Taylor1{Float64}, ::Array{Taylor1{IntervalArithmetic.Interval{Float64}},1}, ::Array{Taylor1{IntervalArithmetic.Interval{Float64}},1}, ::Array{Taylor1{IntervalArithmetic.Interval{Float64}},1}, ::Float64, ::Float64, ::Int64, ::Array{TaylorModels.TaylorModelN{4,Float64,Float64},1}, ::Array{IntervalBox{4,Float64},1}, ::Array{IntervalArithmetic.Interval{Float64},1}, ::IntervalBox{4,Float64}, ::IntervalBox{4,Float64}, ::Int64, ::Int64, ::Float64, ::Nothing, ::Bool, ::ReachabilityAnalysis.var"#111#113") at /home/sguadalupe/.julia/dev/ReachabilityAnalysis/src/Algorithms/TMJets/validated_integ.jl:365
 [7] validated_integ!(::Array{TaylorModelReachSet{Float64},1}, ::Function, ::Array{Float64,1}, ::IntervalBox{4,Float64}, ::Float64, ::Float64, ::Int64, ::Int64, ::Float64, ::Int64, ::Nothing; parse_eqs::Bool, check_property::Function) at /home/sguadalupe/.julia/dev/ReachabilityAnalysis/src/Algorithms/TMJets/validated_integ.jl:492
 [8] validated_integ! at /home/sguadalupe/.julia/dev/ReachabilityAnalysis/src/Algorithms/TMJets/validated_integ.jl:431 [inlined] (repeats 2 times)
 [9] post(::TMJets{Float64}, ::InitialValueProblem{BlackBoxContinuousSystem{typeof(benchmark7!)},Hyperrectangle{Float64,Array{Float64,1},Array{Float64,1}}}, ::IntervalArithmetic.Interval{Float64}; kwargs::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol},NamedTuple{(:T,),Tuple{Float64}}}) at /home/sguadalupe/.julia/dev/ReachabilityAnalysis/src/Algorithms/TMJets/post.jl:27
 [10] solve(::InitialValueProblem{BlackBoxContinuousSystem{typeof(benchmark7!)},Hyperrectangle{Float64,Array{Float64,1},Array{Float64,1}}}; kwargs::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol},NamedTuple{(:T,),Tuple{Float64}}}) at /home/sguadalupe/.julia/dev/ReachabilityAnalysis/src/Continuous/solve.jl:34
 [11] top-level scope at In[21]:16

The workaround that i know is to define du[3] = 2.0 * one(u[3]). I have marked this issue as external as it should probably be considered in TaylorIntegration. cc'ing @lbenet  who may have a better answer.
@SebastianGuadalupe can you try to see if this problem also arises if you use the DifferentialEquations interface directly? (cf. https://perezhz.github.io/TaylorIntegration.jl/stable/common/)

Thanks for reporting. I agree with the workaround of @mforets.
I would also suggest using the following:
@taylorize function benchmark7!(du, u, p, t)
    local two = 2.0+zero(u[1])
    du[1] = u[3]^3 - u[2] + u[4]
    du[2] = u[3]
    du[3] = two
    du[4] = u[4]
    return du
end

can you try to see if this problem also arises if you use the DifferentialEquations interface directly?

I also think the prolem will still be present

Alright, thanks. Should we report this in TaylorIntegration.jl or it is known?
I just uploaded some documentation for this library related to this (and some other common issues), see https://github.com/JuliaReach/ReachabilityAnalysis.jl/pull/180. Comments welcome :)

Yes, please, report to TaylorIntegration.jl, and if possible, add further comments in the the docs as well.

:+1:  @SebastianGuadalupe i'm looking at you :smile:

xref: https://github.com/PerezHz/TaylorIntegration.jl/issues/104


[SR-7054] JSONDecoder Decimal precision error

Previous ID
SR-7054

Radar
rdar://problem/33491336

Original Reporter
tiborbodecs (JIRA User)

Type
Bug

Environment
Xcode 9.2 (9C40b)
Apple Swift version 4.0.3 (swiftlang-9<IP_ADDRESS> clang-9<IP_ADDRESS>)
Same output with 4.1 swift-DEVELOPMENT-SNAPSHOT-2018-02-20-a-ubuntu16.04.

Additional Detail from JIRA

Votes
38

Component/s
Foundation

Labels
Bug

Assignee
bendjones (JIRA)

Priority
Medium

md5: 4d586dd9920250512d8b01ea1b3597c9

Issue Description:
Decoding decimals from a JSON structure returns incorrect numbers.
See the following example:
#!/usr/bin/env swift

import Foundation

struct DoubleItem : Codable \{
 var name: String
 var price: Double
}

struct DecimalItem : Codable \{
 var name: String
 var price: Decimal
}

let jsonString = """
\{ "name": "Gum ball", "price": 46.984765 }
"""
let jsonData = jsonString.data(using: .utf8)!

let decoder = JSONDecoder()
do \{
 let doubleItem = try decoder.decode(DoubleItem.self, from: jsonData)
 print(doubleItem)

let decimalItem = try decoder.decode(DecimalItem.self, from: jsonData)
 print(decimalItem)
}
catch \{
 print(error)
}

Output:
DoubleItem(name: "Gum ball", price: 46.984765000000003)

DecimalItem(name: "Gum ball", price: 46.98476500000001024)

Expected result for the DecimalItem should be: 46.984765
I know that floating point values can not be represented precisely, but decimals should keep their original values, am I wrong? Is this a Swift foundation bug or an intended behavior? Note that encoding the same value with the JSONEncoder will provide the correct value in the JSON.
My actual problem is that the JSONEncoder and JSONDecoder classes are working inconsistently.
If the encoder will output the value as a number, I'd expect that the decoder can decode the exact same value from that if I use the decimal type in my model. My other idea is that the encoder should transform and save the value into a string type inside the JSON instead of the current representation, this could be supported with a decimal coding strategy.
let encoder = JSONEncoder()
encoder.decimalEncodingStrategy = .string //outputs as string: "46.984765"
encoder.decimalEncodingStrategy = .precise //outputs as number: 46.984765
encoder.decimalEncodingStrategy = .lossy //current output like: 46.984765

let encoder = JSONDecoder()
encoder.decimalDecodingStrategy = .string //decoded value from json string:  46.984765
encoder.decimalDecodingStrategy = .precise //decoded value from json number: 46.984765
encoder.decimalDecodingStrategy = .lossy //current value from number:  46.98476500000001024

Please share your thoughts about this idea.

Unless I'm mistaken, the JSONDecoder issue has been resolved?
Starting with commit https://github.com/apple/swift-corelibs-foundation/commit/5ed74d30b9a239af5f77dd6f74ae961dfe14b83e, the decoder is no longer using Decimal(doubleValue) (with doubleValue coming from JSONSerializer) but unwrapDecimal(), which handles the data correctly by keeping the it represented a string, and passing it to Decimal(string:) as one would expect.
I'm not quite sure when this commit landed in the SDKs, but using Xcode 14.2 today, I don't get any loss of precision from the Gum Ball example:
DoubleItem(name: "Gum ball", price: 46.984765)
DecimalItem(name: "Gum ball", price: 46.984765)

Initializing Decimal from a Double literal still is problematic, but that's another issue (https://github.com/apple/swift-corelibs-foundation/issues/3658).

Sadly but this issue is still actual.
You can try this code snippet
let number = "0.07"
let json =
"""
{"a": \(number)}
"""

let jsonData = json.data(using: .utf8)!

struct Object: Codable {
    let a: Decimal
}

let decoder = JSONDecoder()
let object = try! decoder.decode(Object.self, from: jsonData)
print(object.a)

which produces on Xcode 14.2(14C18)
0.07000000000000001

@guillaumealgis @scoreyou bear in mind this is corelibs-foundation, not Apple Foundation. It might've been fixed in this one but not Apple's. You could try running Gum Ball on Linux to verify.
Soon enough it could be fixed in both though, as Foundation is being rewritten in Swift, open sourced, and shared across all platforms.

@scoreyou @davdroman thank you both for clarifying :)
Indeed, its doesn't seems to be fixed in Apple Foundation yet, sadly :(

@guillaumealgis
This seems to be fixed on iOS 15 and newer.
Deserializing 0.0070918203981 as Decimal:
on iOS 14, the result is 0.007091820398099999744 ❌
on iOS 15, the result is 0.0070918203981 ✅
Sadly, we target iOS 13+ in our applications and SDKs, so we need to wait a few years, and then we can drop the "string from the backend" approach 😬

@kober32 I've tested a few decimals and they are working as expected now on iOS 15 and 16. Is there any official release notes which state this has been fixed?

@bencallis I tried to reproduce this issue on iOS 17.4 using Xcode 15.3 (15E204a).
Input:
let jsonString = #"{ "name": "Gum ball", "price": 16684.24 }"#

Output:
DoubleItem(name: "Gum ball", price: 16684.24)
DecimalItem(name: "Gum ball", price: 16684.24)

Does it seem alright?


MongoDB: invalid port number in database URL

The prisma cli seems to be confused with ports.
datasource db {
  provider = "mongodb"
  url      = "mongodb://testReadOnlyUser:****@db-rs-11:27017,db-rs-12:27017,db-rs-13:27017,db-rs-14:27017,db-rs-15:27017/default_default?replicaSet=dbMongoDB&maxPoolSize=1000"
}

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["mongoDb"]
}

gives
Error: invalid port number in database URL
Using this without the ports works fine
mongodb://testReadOnlyUser:****@db-rs-11,db-rs-12,db-rs-13,db-rs-14,db-rs-15/default_default?replicaSet=dbMongoDB&maxPoolSize=1000
Originally posted by @Hitabis in https://github.com/prisma/prisma/issues/10016#issuecomment-958753476

Looks like a duplicate of the recently confirmed issue with same error here https://github.com/prisma/prisma/issues/11684

Closing as duplicate of https://github.com/prisma/prisma/issues/11684 as this indeed looks like a duplicate. Do you agree @Hitabis?


New version: lars-berger.GlazeWM version 2.1.0

Pull request has been created with WinGet Automation 🪟📦🤖
Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

1/16/2024 8:57:50 AM
Installer Verification Analysis Context Information:
Installer https://github.com/glzr-io/glazewm/releases/download/v2.1.0/GlazeWM_x64_2.1.0.exe
Scan request id: 'ccdaaff6-3cd8-475c-b22d-e091cac771fd'
Error information: BlockingDetectionFound

(Automated response - build 575.)


How to avoid numeric values in tags

Hi @owen2345 ,
I observed that tags are getting created as "tag/647-cloud" etc. can you please let me know how we can avoid numeric values in tags.
It would be difficult if we want to migrate data from other CMS to Camaleon due to these numeric values in urls.

Is this the url for tags?

@owen2345, yes, URLs are getting created with number values for categories and tags ..it would be great if we can have urls as 'tag/cloud' etc instead of 'tag/647-cloud'.

Hi @mazharoddin it is possible, but there are conflicts, because a posttype have many post tags which permit to enter unique tags per posttype and not per site.
Note: The current idea is to support many groups with their own categories and tags, but this can be customized according to your needs, for example:
If your project only manage one posttype with tags, then you can customize the routes to use this structure "'tag/cloud":

Add custom route in your project

get 'tag/:slug_tag' => 'frontend#post_tag'

overwrite the method "the_url" for tags to use your custom route
Sample here: http://camaleon.tuzitio.com/documentation/category/40757-developer-docs/customize-post-type-routes.html

Regards,

Hi @owen2345,
Thanks, but I think its good idea to have categories/tags site wide rather posttype wise, as you know all other CMSs and websites use same concept i.e having unique tags/categories site wide, e.g. 'ecommerce' tag/category meaning doesn't change based on posttype right? so it should be better to have categories/tags sitewide.

@mazharoddin that is a good idea, I will work in that idea...!
currently I am creating a video "how to create your theme in 30mins"
Regards,

Thanks @owen2345 ...wow great ..video must be useful..thanks

Hi @owen2345 , please let me know once this is implemented.

Hi @owen2345,
Pls let me know if this issue is fixed now. Would like to manually migrate my website data to camaleon cms, but because of these numbers in categories, site url paths are getting changed, so it take google to index the pages.
So pls let me know if you fixed this issue so that we have categories without numbers.

Done!

Added support tag title translatable
Added simple tag url, sample: http://localhost:3000/tag/mytag.html (this takes the slug and not the title)
Sample use:

my_tag.the_basic_url(...)

Thanks, I will try and let you know.


Linearly increasing memory with use_multiprocessing and Keras Sequence

System information
OS: Ubuntu 19.04
CPU: Ryzen 2700X
GPUs: 2 X GTX 1080ti
RAM: 32GB

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
Yes

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Ubuntu 19.04

Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
N/A

TensorFlow installed from (source or binary):
binary

TensorFlow version (use command below):
Current Install: tf-nightly 2.2.0.dev20200218
Occurs On: >= tf 2.0

Python version:
3.6.8

Bazel version (if compiling from source):
N/A

GCC/Compiler version (if compiling from source):
N/A

CUDA/cuDNN version:
CUDA: 10.1
cuDNN: 7.6.5

GPU model and memory:
2 X GTX 1080ti

Describe the current behavior
When using tf.keras.Sequence base class with 'use_multiprocessing' argument, the memory usage increases linearly every epoch until the program fails with a resource allocation error. I initially noticed this when upgrading to TF2.0. I have identified that the KerasSequenceAdapter has the should_recreate_iterator function returning True. If you set this function to return False the memory still increases over epochs but at a drastically slower rate. I plan to continue to debug this behavior and identify the root cause of the problem so that the memory does not increase at every epoch.
Observed Behavior:

With should_recreate_iterator returning True:

Workers are not killed after each epoch leaving the total workers at the end of training worker_count**epoch_count
Memory usage doubles each epoch at the re-initialization of the KerasSequenceAdapter

With should_recreate_iterator returning False:

Workers are reused correctly for each epoch
Memory still increases every epoch but at a much lower rate (5-10%) of total memory allocation

Describe the expected behavior
X workers should be instantiated to fill a queue of size Y. Once an epoch is complete, those workers should either be re-used for the next epoch or killed and replaced with new workers. The memory should reach its' maximum fill (worker_count * queue_size * batch_size * data_size * 4) and remain at this allocation for the duration of training.
Standalone code to reproduce the issue
I will create a minimal reproducible example in the near future
Other info / logs
I have no logs at the moment but am happy to produce them in the near future if it is desired
Notes

I am aware that the expected action for TF.Keras users is to switch to the tf.Dataset API for parallel data processing. I intend to do this at a later date, however, my current data pipeline took a while to get set up and I am not ready to completely re-write it. I am hoping to find a solution for multiprocessing and tf.keras.Sequence in the near term to bridge the gap for people in situations similar to me.
I chose to open this issue in the TF repo because I am using the TF version of Keras and have no idea if this happens on pure Keras

My Questions

Is there a reason KerasSequenceAdapter's should_recreate_iterator function returns True?

I have found the following unresolved issues on this topic in the original Keras repo:

https://github.com/keras-team/keras/issues/8668
https://github.com/keras-team/keras/issues/5835

@sam-ulrich1, Could you post the sample standalone code to replicate the reported issue. Thanks!

import numpy as np
np.random.seed(1)
import tensorflow as tf
tf.random.set_seed(2)

from tensorflow.keras.models import Model
from tensorflow.keras.layers import *
from tensorflow.keras.preprocessing.image import ImageDataGenerator

train_dir = "data/train"
test_dir = "data/test"
total_classes = 200

# Define simple image model
model_input = Input((32, 32, 3))

x = Conv2D(128, (7, 7))(model_input)
x = Conv2D(64, (3, 3))(x)
x = Conv2D(32, (3, 3))(x)
x = Flatten()(x)
x = Dense(400, activation="relu")(x)
x = Dense(total_classes, activation="softmax")(x)

model = Model(inputs=model_input, outputs=x)
model.compile(optimizer="adam", loss="binary_crossentropy")

# Define data prep
train_datagen = ImageDataGenerator(
    rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
    train_dir,
    color_mode='rgb',
    target_size=(32, 32),
    batch_size=128,
    class_mode='categorical')

test_generator = test_datagen.flow_from_directory(
    test_dir,
    color_mode='rgb',
    target_size=(32, 32),
    batch_size=128,
    class_mode='categorical')

model.fit(
    train_generator,
    validation_data=test_generator,
    validation_freq=1,
    epochs=10,
    workers=6,
    use_multiprocessing=True
)

With this example, the memory increase is less pronounced but still plainly apparent. The memory allocation on my system starts at ~1.8GB at epoch 1 and increases to ~2.15GB by epoch 10. If you watch the child processes being spawned you can see that each epoch 6 more processes are spawned and the pre-existing processes remain alive.
If you set should_recreate_iterator to return False for KerasSequenceAdapter, the memory starts at ~1.8GB at epoch 1 and increases to ~1.89GB by epoch 10 (much more reasonable). If you watch the child processes being spawned you can see that each epoch the prior 6 processes are killed and a new 6 processes are spawned leaving only 6 processes alive at any given time.
P.S.
Is there a reason that KerasSequenceAdapter is set to be re-created each epoch by default?
I am noticing no detrimental effects by setting should_recreate_iterator to False

In 2.x, we would recommend using tf.data.Datasets, which can handle multiprocessing of input pipelines. See https://www.tensorflow.org/guide/data for more information.

@karmel As I mentioned earlier, I have created a quite complex data pipeline and I'm not able to completely re-write my pipeline at the moment. Considering there are a number of people in a similar position as me and the fix seems very simple, I believe this warrants more consideration than simply closing the issue.
I think it would be reasonable to explore such a simple solution in pursuit of backwards compatibility with TF1.X. Please consider further reviewing the material I presented in the interest of the many people experiencing similar issues.

```python
import numpy as np
np.random.seed(1)
import tensorflow as tf
tf.random.set_seed(2)

from tensorflow.keras.models import Model
from tensorflow.keras.layers import *
from tensorflow.keras.preprocessing.image import ImageDataGenerator

train_dir = "data/train"
test_dir = "data/test"
total_classes = 200

# Define simple image model
model_input = Input((32, 32, 3))

x = Conv2D(128, (7, 7))(model_input)
x = Conv2D(64, (3, 3))(x)
x = Conv2D(32, (3, 3))(x)
x = Flatten()(x)
x = Dense(400, activation="relu")(x)
x = Dense(total_classes, activation="softmax")(x)

model = Model(inputs=model_input, outputs=x)
model.compile(optimizer="adam", loss="categorical_crossentropy")

# Define data prep
train_datagen = ImageDataGenerator(
    rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
    train_dir,
    color_mode='rgb',
    target_size=(32, 32),
    batch_size=128,
    class_mode='categorical')

test_generator = test_datagen.flow_from_directory(
    test_dir,
    color_mode='rgb',
    target_size=(32, 32),
    batch_size=128,
    class_mode='categorical')

model.fit(
    train_generator,
    validation_data=test_generator,
    validation_freq=1,
    epochs=10,
    workers=6,
    use_multiprocessing=True
)

With this example, the memory increase is less pronounced but still plainly apparent. The memory allocation on my system starts at ~1.8GB at epoch 1 and increases to ~2.15GB by epoch 10. If you watch the child processes being spawned you can see that each epoch 6 more processes are spawned and the pre-existing processes remain alive.
If you set should_recreate_iterator to return False for KerasSequenceAdapter, the memory starts at ~1.8GB at epoch 1 and increases to ~1.89GB by epoch 10 (much more reasonable). If you watch the child processes being spawned you can see that each epoch the prior 6 processes are killed and a new 6 processes are spawned leaving only 6 processes alive at any given time.
P.S.
Is there a reason that KerasSequenceAdapter is set to be re-created each epoch by default?
I am noticing no detrimental effects by setting should_recreate_iterator to False
@gadagashwini

Could you please tell how / where are you setting should_recreate_iterator  ? Im having the same issue. Thank you

@stringcode86 In the KerasSequenceAdapter class there is a function named should_recreate_iterator that simply returns True. Change the return value to False
You can find the function here in the current master: https://github.com/tensorflow/tensorflow/blob/56f4edbb5a78ae9d29d797f39e107a28c9bcf6e5/tensorflow/python/keras/engine/data_adapter.py#L954

Found another walkaround:
You can wrap your Sequence inside an OrderedEnqueuer. For e.g.
seq = MySequence(...)
enq = OrderedEnqueuer(self, use_multiprocessing=True)
enq.start(workers=10, max_queue_size=20)
gen = enq.get()

triplet_model.fit(
                gen,
                epochs=300,
                steps_per_epoch=steps_per_epoch,
                shuffle=False,
                callbacks=callbacks,
                validation_steps=valid_steps_per_epoch,
                validation_data=valid_dataset,
                initial_epoch=0,
                use_multiprocessing=False,
                max_queue_size=10,
                workers=1,
            )

Make sure you set the use_multiprocessing in fit to False and workers to 1. Tested with tf-2.1.0 and I didn't see memory leak comparing to directly using sequence

@stringcode86 In the KerasSequenceAdapter class there is a function named should_recreate_iterator that simply returns True. Change the return value to False
You can find the function here in the current master:
https://github.com/tensorflow/tensorflow/blob/56f4edbb5a78ae9d29d797f39e107a28c9bcf6e5/tensorflow/python/keras/engine/data_adapter.py#L954

Just a heads up for anyone tempted to use this workaround:
import tensorflow.python.keras.engine
tensorflow.python.keras.engine.data_adapter.KerasSequenceAdapter.should_recreate_iterator = lambda _: False

This did not adequately address the memory growth issue for me (training + validation = 820GB), and it did have an effect on the model.  In particular, the trajectory of the validation loss function over epochs differed by 3 orders of magnitude from anything I'd ever seen before.

https://fantashit.com/linearly-increasing-memory-with-use-multiprocessing-and-keras-sequence/#comment-254237

I have tried the solution of turning the should_recreate_iterator value to False but haven't had any effect on me. Up to now, the problem seems unsolved to me, which is a scandal since the data generator is supposed to address this problem exactly.


Narrowing ??= assignment doesn't work when RHS contains ??

Bug Report

🔎 Search Terms

Control-Flow-Analysis Coalescing
🕗 Version & Regression Information

The compiler is reporting a type error incorrectly.
This changed between versions 3.9.7 and 4.0.5.
Prior to 4.0, the syntax ??= wasn't supported.
It is unchanged through 4.4.0 nightly.

⏯ Playground Link

Playground link with relevant code
💻 Code

function f1(a?: {}) : {} {
    const n = null ?? {};
    a ??= n;
    return a; // no problem
}

function f2(a?: {}) : {} {
    a ??= (null ?? {});
    return a; // Type '{} | undefined' is not assignable to type '{}'.
}

function identityFunction<T>(a: T): T {
    return a;
}
function f3(a?: {}) : {} {
    a ??= identityFunction(null ?? {});
    return a; // also fine
}

🙁 Actual behavior

On line 9, a type error is reported: "Type '{} | undefined' is not assignable to type '{}'."
🙂 Expected behavior

I would expect that the code should pass type checking.  Here's why.
1 . ??= generally supports narrowing types, as shown in the playground link.
2. ?? generally supports nullability narrowing, as shown in the playground link.
3. There's nothing special about a RHS of a ??= that contains a ??.

I believe this is also applicable to the logical OR assignment ||=. The code in the playground mirrors the code and conditions stated above.
Playground link with relevant code
I also believe there are situations where logical AND assignment &&= is inconsistent as well.
Playground link with relevant code
I'm trying to look through the codebase to learn about it and how to fix this issue, and stumbled across these cases as well. Don't want to open a new work item since they are so closely related. Let me know if there is a better procedure to report this.

I believe this is also applicable to the logical OR assignment ||=. The code in the playground mirrors the code and conditions stated above.

If so, this is probably related to #44553.

Duplicate of https://github.com/microsoft/TypeScript/issues/41153 and possibly https://github.com/microsoft/TypeScript/issues/40494 ?

Seems like this is fixed, as of 5.6.2


design structure and responsiveness is improved

🛠 Fixes Issue : "#40"

👨💻 Changes proposed:

I've added a few classes to improve the basic structure of the project, and also made it responsive.

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.
[x] I am a participant of Hacktoberfest 2022.

📄 Note to reviewers

📷 Screenshots

Your work is Okay, but the text on the mobile view has too many spaces between them. Please improve it. 😊

Spacing is improved for max width 768 px


Hacks Tab list too big for small resolutions

Self explanatory, make at least so the Config tab is frist so we can load them

are you playing CSGO on a gameboy?

Sorry, currently I'm not planning a scalable menu implementation. You can autoload your config in one line of C++ code.


New & updated data in ca/on/Peel

Two changes were made for this request.
ca/on/peel-region.json
We've added a landuse column into our data and I've added the relevant tag within the JSON to allow OpenAddresses to parse it.
ca/on/city_of_mississauga.json
The City has released building footprints and parcels to their open data over the past couple of months.  I have added both to the JSON.  They have not released addresses; however, the peel-region addresses cover the city.

This is absolutely fantastic! As always, thanks a million for your work on the inside!


Unexpected mount behavior

I'm not sure how to better describe this, as I don't understand what is actually happening.
I am trying to use mounts to fill in missing translations.
Reference: https://discourse.gohugo.io/t/37225
Example (updated 2022-03-19T10:24:37-07:00):
git clone --single-branch -b hugo-forum-topic-37225 https://github.com/jmooring/hugo-testing hugo-forum-topic-37225
cd hugo-forum-topic-37225
hugo server

I will fix this, but I have relabeled this to be an Enhancement -- I agree that the suggested behaviour would be much more useful, though.


Plotting module

Make a concept of an great API inspired by Object API from Seaborn
https://medium.com/nightingale/style-guidelines-92ebe166addc

This is done


Add PrivateServer mode, implement GitHub App API integration

This PR supersedes #89, adding working support for GitHub App installations. Some changes are included:

The need for a new auth server is no longer necessary, so we do everything in bleep. GitHub's API allows us to set the Callback URL to https://bloop.ai, and we can set the redirect_uri parameter in the OAuth API to a subdomain
As discussed offline, the GitHub app will first be installed into the organization before the bloop instance is provisioned, avoiding the need for any webhooks (a post-install URL is used instead).
Fine-grained authentication is removed. It can be rolled back by using the original commits in #89. This is better left to another PR as there are many questions brought up offline, and this should not block merging initial GitHub App functionality

TODO: This PR is missing a final bit of functionality; checking whether the user belongs to the installation organization. This can be done with the use of a single API call (/orgs/{org_name}/members/{user_name}). Marked as draft until then.

Co-authored-by: rsdy<EMAIL_ADDRESS>

There are multiple issues with this PR.

My original work is misattributed in the commits.
The considerations for this work seem to be that the original brief’s deployment model was simplified, but this is only my conclusion after review.
It essentially removes all sense of security from the original PR.

This work removes all kinds of authentication of user-provided credentials, it is trivial for users to impersonate any organization’s any user in possession of their GitHub OAuth credentials issued by any application. This is made especially worse, since token expiration is unauthenticated, therefore a fired employee could at any point log back in to bloop, and extract data by simply spoofing the expiry time.
It is also concerning that the PR’s token system unapologetically uses GitHub tokens to authenticate for Bloop, and stores these unencrypted on users’ boxes. One of the primary threats to developer work is credential theft, and ANY packaging system, including Python, Node.js, or Cargo could host packages that steal these credentials build-time.
While the tokens currently are limited in scope, they do allow for impersonation and the design exposes any subsequent work to potentially leaking tokens with extended scopes.
The solution to authorization seems to be based on the expiration time of the GitHub-issued tokens. This is neglectful, and doesn’t actually log users out when they revoke access through GitHub. Since we don’t control GitHub’s HMAC keys, the only way to actually validate the tokens would be through in-band checks on every request, which is a huge performance impact. Since GitHub's OAuth doesn't use public key cryptography, this issue cannot be fixed without the introduction of an extra layer of security.
These issues are architectural, and make this work unfit for purpose. I think it would be worthwhile adapting the original PR to the new deployment model instead of continueing this work, as #89 provides a complete  authentication/authorization solution that doesn't suffer from either of these flaws.

Reopening as per discussion with @rsdy and @stunningpixels. Summary of remaining work:

Complete missing TODO items in PR description and in code
Encrypt cookies


Support functional component?

Not sure if it this really counts as a question, does vue-template-loader supports functional components?
I tried but it did not work.

It is supported on v1.0.0


Rename OpFM module to ExtInflow

The OpenFOAM module interfaces with SOWFA, NALU-Wind, and AMR-Wind.  Renaming this module will reflect that it couples to more than just the OpenFOAM code used in SOWFA.

@andrew-platt , wasn't this completed in PR #1687?

yes. Forgot to close this then.


build: improve the PythonKit build

This improves the PythonKit build for CMake <3.16 and for Python 2.7 or
Python 3.x.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @saeta

@swift-ci please test

Will test shortly. LGTM.


Feature Request: Read from file

Summary
I have a very large JWT to decode (1,779,422 characters to be exact). This is too long for cat file.jwt | xargs jwt decode and is too long for zsh or bash to accept pasted into the CLI.
It would be nice if there were a way to read JWTs from a file to bypass these limits.
Steps to reproduce
Download the JWT from here and try to decode it: https://mds3.fidoalliance.org/
Expected behavior
There should be a way to decode/encode very large JWTs.

After looking at the code, I see that you can read from stdin already by entering '-' as the jwt.


Introduce natural sorting

No doubt that DB ordering is way faster than sorting in code, but to me this is big deal. It would be great to get some speed numbers, but also big-picture, speed improvements could be done in other places too.
I don't know what Laravel uses under the hood for sorting (I can't find the source code), but PHP says it uses Quicksort which works well on a list that is already well sorted.
So my suggested sledgehammer here is to add a sortBy onto just about every orderBy. The DB will sort well then the sortBy will have another pass.
So far it is worked will on a album with 150 pics, I get the API response back in about 200ms. I have not done a comparison.
This PR is related to #321

Codecov Report

Merging #322 into master will decrease coverage by <.01%.
The diff coverage is 56.25%.

I'm also surprised by the lack of changes to set_order in Photo.php. Did you verify that your branch sorts photos naturally in addition to albums?

I missed this, the trick is the sortBy has to come after the get() call. I traced the set_order function thru some others and found two places it is called. I made the change. I also saw it in DemoController but I did not make the change there.

Yes, I made a similar change in my tree but I didn't get to test it yet as I spent most of the last evening creating an album with >10,000 pictures to have something to test the performance of sorting with.

Sorry for the lack of updates. The tests I ran revealed some missing corner cases that were difficult to fix without large performance losses but I think I solved the major ones. I just need to clean up my code before pushing a commit on top of what's here.


In the latest audioplayers: ^6.1.0   audio not playing in background IOS

Checklist

[X] I read the troubleshooting guide before raising this issue
[X] I made sure that the issue I am raising doesn't already exist

Current bug behaviour
In the latest audioplayers: ^6.1.0   audio not playing in background.
Even i added  background mode as audio in info.plist and enabled  audio in signincapabilities
UIBackgroundModes

audio
fetch

Expected behaviour
It should play the sound even in the background mode
Steps to reproduce

Execute flutter run on the code sample
...
...

Code sample

Code sample
void main() {
}

Affected platforms
iOS
Platform details
No response
AudioPlayers Version
6.1.0
Build mode
debug
Audio Files/URLs/Sources
No response
Screenshots
No response
Logs

my relevant logs

Full Logs

my full logs or a link to a gist

Flutter doctor:
Output of: flutter doctor -v

Related issues / more information
No response
Working on PR
no way

Have you tried this?
If the file is placed in assets, for example:
- assets/musics/hulahula.mp3
await player.play(DeviceFileSource('musics/hulahula.mp3));
#https://github.com/bluefireteam/audioplayers/blob/main/getting_started.md


Hi, can you support AWS_SESSION_TOKEN ?

Normally, AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY is enough. But my account is temporary，they assigned me an extra token AWS_SESSION_TOKEN. Right now i can not input AWS_SESSION_TOKEN. so please, can you support this one? thankyou！

I need the same feature or supporting role_arn parameter, please.


Add AnimationMixer::capture() and AnimationPlayer::play_with_capture() as substitute of update mode capture

Prerequisite https://github.com/godotengine/godot/pull/86687

Closes https://github.com/godotengine/godot-proposals/issues/8513
Closes https://github.com/godotengine/godot/issues/83166
Closes https://github.com/godotengine/godot/issues/55110
Closes https://github.com/godotengine/godot/issues/48432
Closes https://github.com/godotengine/godot/issues/78234

It caches the current object's value by capture() and blends it into the AnimationMixer's blending result.
This behavior is not fully compatible with original capture feature, since it is not possible to specify duration on a per track, but given the use case, I think it satisfies the requirement.
When call capture(). if the old captured cache already exists, the new captured cache will take precedence. It is theoretically possible to have multiple capture caches, but I'm not sure how much demand there would be for that, so for now it allows only one cache as a basic feature.

Demo
capture_demo.zip
You can use a Tween for the interpolation curve.
If the first key is at a non-zero time, as the original capture feature assumed, you can reproduce it with TRANS_LINEAR (default).
https://github.com/godotengine/godot/assets/61938263/eb14c671-cb4b-4920-9d63-71f1b29dff55
animation_player.play_with_capture("new_animation", 0.5)

As a new feature, the capture interpolation will work even if the capture is called while the key is being interpolated.
https://github.com/godotengine/godot/assets/61938263/d51d29e4-466e-495d-8830-3a76cc59f5b9
animation_player.play_with_capture("new_animation_2", 1)

However, the interpolation between the static (captured) key and the result during playback is not linear actually. As long as the playbacking animation is a linear interpolation, you may be able to improve the looks by specifying TRANS_QUAD or others.
https://github.com/godotengine/godot/assets/61938263/ad4fab8d-fd27-41ab-84d1-70eac3ae08d3
animation_player.play_with_capture("new_animation_2", 1, Tween.TRANS_QUAD)

capture() also works with trees.
https://github.com/godotengine/godot/assets/61938263/3972d945-4d81-45cc-b0dc-8edb212f35e4
animation_tree.capture("new_animation", 0.5)
animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE

Finally, closes https://github.com/godotengine/godot/issues/83401

I gave the new play_with_capture() some test, trying to use it like the old capture track and

play_with_capture() can't be used continuously like play(). When you play the same animation multiple times, the subsequent plays are ignored if the animation is still playing. This is not the case with play_with_capture(), which seems to reset the duration every time. This is not really a bug (and creates somewhat unique animation effect), but maybe it's worth documenting it
would it be possible for play_with_capture() to use automatically use the time of the first key in track as a duration? Not sure if per-track durations are supported, maybe it could use the first track 🤔 I think if the duration argument was optional, it would match the old Capture usage
using play() with animation that has Capture tracks, without using capture() first, could prompt a warning, to point users that they should use another method

@KoBeWi Thanks a lot!

play_with_capture() can't be used continuously like play(). When you play the same animation multiple times, the subsequent plays are ignored if the animation is still playing. This is not the case with play_with_capture(), which seems to reset the duration every time. This is not really a bug (and creates somewhat unique animation effect), but maybe it's worth documenting it

It may be possible to add arguments for how to handle old captures, or to adapt to the old behaviour (a good MRP or video for comparison would be helpful so we know how I should do it).
We want to support the old behaviour as much as possible, but if we can't help it, we will document it.

would it be possible for play_with_capture() to use automatically use the time of the first key in track as a duration? Not sure if per-track durations are supported, maybe it could use the first track 🤔 I think if the duration argument was optional, it would match the old Capture usage

using play() with animation that has Capture tracks, without using capture() first, could prompt a warning, to point users that they should use another method

Thanks for the feedback, I will work on these.

the duration seems to be independent from AnimationPlayer's speed_scale. Is this intended?

This is a bit more difficult to handle.
The progression of the capture time is handled by the AnimationMixer, but as the AnimationMixer does not have a speed scale, it may have to be independent of it. To handle this correctly, the AnimationPlayer would need to be redesigned so that it passes the multiplied delta by scale to the AnimationMixer instead of original delta, but the scope of influence would be too large, so I think it's better not to do anything at the moment.

Comments from the production team:

We need to make sure that the old projects that used capture can work.
Can you clarify what you mean by "compatibility breakage"? What does break in your PR to append this label?

We do reassess that compatibility breakage is an extreme measure, that should  that we must make sure that there's no other viable way to resolve the issue before merging (cc. @lyuma, @fire and @SaracenOne)

The actual compatibility breakdown was already in 4.2, as it depended on the AnimationMixer playback process. It is absolutely impossible to port an old capture as is.
Old capture animations cannot be migrated as they are and the user has to use the new method capture(). This allows the old behaviour to be reproduced.
However, the only case that cannot be covered is when an animation contains capture tracks with different first key positions, it is not possible to respect the time of each and only one interpolation duration is always allowed.

Alright, I made change to support them.

would it be possible for play_with_capture() to use automatically use the time of the first key in track as a duration? Not sure if per-track durations are supported, maybe it could use the first track 🤔 I think if the duration argument was optional, it would match the old Capture usage

Do this when a negative value is set for duration. -1.0 is set as default.

using play() with animation that has Capture tracks, without using capture() first, could prompt a warning, to point users that they should use another method

This check is a bit heavy processing, so it is output only when running script in TOOLS_ENABLED.

the duration seems to be independent from AnimationPlayer's speed_scale. Is this intended?

Now this takes speed_scale into account. However, this is not the case for custom_scale because as noted in the documentation, the capture is no longer an interpolation for individual animations.

Previously, this easing was applied during the initial transition smoothing.

That would be another difference I think? 🤔 Easing is now one of the arguments for play_with_capture(), it literally uses Tween's interpolation.

Not only cubic, but nearest is also not respected.Well, in the case of nearest, I don't think it is necessary to have a capture in the first place.
As KoBeWi said, if you need easing for interpolation, you can now use a tween. Yes, this is also one of the break compat things.

I've been meaning to chime in on reworking the documentation, but delayed it every time because I'm not sure where to start. There's a few concept here outside my current knowledge here and the class reference added in the PR is a bit... odd.

I don't have an idea how new users of the feature will feel about it. Well, I believe it will be fine for migration.
I am now preparing an article for migration for the whole animation system from 4.0 to 4.3. So now this PR should be ready for merging.

I am now preparing an article for migration for the whole animation system from 4.0 to 4.3.

Great initiative! There's been a lot of changes in each minor release and it can be difficult for users to understand the rationales and how to port their projects, so an overview of the overall design change will help a lot.

Moved the argument of play_with_capture for tween to the back of the list to take into account the possibility that additional arguments may be added in the future by #82306 and #82155.

Thanks!


UI: hostname isn't validated

In the UI, hostname value is a free form text box. A user can enter random garbage. When you launch a slave, you can get the following error message in the logs:
com.github.kostyasha.yad_docker_java.com.github.dockerjava.api.exception.InternalServerErrorException: {"message":"invalid hostname format: foo_bar-invalid"}
It will be an improvement if a valid hostname can be validated on the UI and return an error message early in the configuration process.

There is no hostname verification in docker-java. Firstly it should be created in it.


Recaf can't read the jar file

Describe the bug
Recaf can't read the jar file
Link to jar file: https://workupload.com/file/27xYB8xBNwW
(12 hours valid.)
Exception
// Decompiled with: CFR 0.152
// Class Version: 8
// ERROR: Failed to decompile 'org/ney/neyupcrystal damage/NeyUPCrystalDamage'|
Screenshots

Recaf can read this file, decompiler can't.
Strip debug attributes with the option in the config, use other decompiler, and use new Recaf version.


Appstudio update test-component-pac-gkaz

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-gkaz-on-pull-request has failed.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
20 seconds
clone-repository

❌ Failed
21 seconds
build-container

✅ Succeeded
7 seconds
show-summary

Failure reasontask build-container has the status "Failed":
Storing signatures
STEP 2/4: COPY asf asdfsa
Error: building at STEP "COPY asf asdfsa": checking on sources under "/workspace/source": copier: stat: "/asf": no such file or directory


Configure script creates wrong logrotate file

Elasticsearch version:
5.1.2
Moloch version:
0.17.1 RPM package
OS name and version:
RedHat Enterprise 7.3
How was Moloch built/installed: (rpm, deb, singlehost built, ...)
RPM
Provide logs, stack traces and steps to reproduce:
Run Configure script and it creates a moloch logrotate file with /nids instead of /data

see line 104 and line 105 in the Configure script

Duplicate of #626


Support for WebGL in UploadItch action

Apparently UploadItch.cs doesn't have support for uploading builds of the WebGL plataform.
Any channel name input would just get ignored 'cause of the "default" of the switch case statement at line 193 that returns null, resulting in an invalid push command "butler push dir itchName/gameName:"
I suggest adding a case for the WebGL plataform and making the default throw an exception or simply break, so any literal parts of the channel name format still get through.
(currently working around this bug by creating a separate action, filtering by plataform == WEBGL and using the channel override field with a literal "webgl" value)

Thanks @GeorgeManeta, looks like the Itch Uploader action is in need of a bit of work in general in order to support some of the more recent additions to build platforms (WebGL and UWP support, Android and macOS architecture variants all spring to mind).


test Enable test_cast_with_scale_type since Nereids is ON

Proposed changes
Issue Number: close #xxx
https://github.com/apache/doris/pull/26918 enabled nereids.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run p0 5

run buildall


Functions with Dedicated ASP and Azure Files is not supported for backup

In the section "Azure Functions (Dedicated)"  we need to add comment to indicate that is only supported when using built in Storage
Dedicated ASP + Azure files are not supported for the same reason discussed in "Azure Functions Consumption & Premium"

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

ID: 4754bcfc-204a-d398-6b86-e452cd0d44a1
Version Independent ID: 157885c4-2579-8f98-1e85-c3063a861207
Content: Back up an app - Azure App Service
Content Source: articles/app-service/manage-backup.md
Service: app-service
GitHub Login: @msangapu-msft
Microsoft Alias: msangapu

@rmarr2
Thanks for your feedback! We will investigate and update as appropriate.

@msangapu-msft  gentle nudge as we are getting support cases for this. Ping me if you need the PM name to sign off on the change.

https://github.com/MicrosoftDocs/azure-docs-pr/pull/278908

#reassign: ggailey77

Looks like this was already fixed. #please-close