ImageBackend 'auto' driver

Description
So this is not the first time someone uploaded a crazy large image (not in terms of mb, but in terms of pixel) and that gd fails.
It's not really convenient to set the driver according to the environment. My wish would be that there would be a 'auto' setting picking gd or imagick if the extension is loaded as a new config flag for InterventionBackend
It's easy to do it in userland like this:
<?php

namespace App\Common;

use SilverStripe\Assets\InterventionBackend as AssetsInterventionBackend;
use Intervention\Image\ImageManager;

class InterventionBackend extends AssetsInterventionBackend
{

    /**
     * @return ImageManager
     */
    public function getImageManager()
    {
        $manager = parent::getImageManager();
        if (extension_loaded('imagick')) {
            $manager->configure([
                'driver' => 'imagick'
            ]);
        }
        return $manager;
    }
}

---
Name: myassetsimage
After: '#assetsimage'
---
SilverStripe\Core\Injector\Injector:
  SilverStripe\Assets\Image_Backend:
    class: App\Common\InterventionBackend
    factory: '%$SilverStripe\Assets\ImageBackendFactory'

but I guess i'm not the only one having this issue :-)
Additional context or points of discussion
No response
Validations

[X] You intend to implement the feature yourself
[X] You have read the contributing guide
[X] You strongly believe this feature should be in core, rather than being its own community module
[X] You have checked for existing issues or pull requests related to this feature (and didn't find any)

Just a thought for your specific issue (different config per environment) - of course the best defence for this is to ensure that your dev/test environments mimic production as closely as possible. That said, would this work for you?
---
Only:
  classexists: 'Imagick'
---
SilverStripe\Core\Injector\Injector:
  Intervention\Image\ImageManager:
    constructor:
      - { driver: imagick }

I’m not against changing framework to default to the “best” option, but I think we’d have to do that in a major release in case people are using an environment with Imagick installed, but specifically want to keep using GD.

@kinglozzer ohhh i guess you are right, it's even easier like this
this or using extensionloaded that is also available
:-) well, this closes the issue. Would be a nice addition to the guide here https://docs.silverstripe.org/en/5/developer_guides/files/images/#changing-the-manipulation-driver-to-imagick

Would be a nice addition to the guide here

What specific change are you suggesting for there? I note that the snippet kinglozzer suggested is almost exactly the same as the documented snippet, so I assume not that 😅

the extensionloaded or classexist bit is what i was missing. it's kinda of obvious but i didn't think about it :)

I'd definitely merge a PR that adds that, with a bit of context around it.


Ark server needs to handle crashed/stopped plugin processes

I've had a question that I don't know how to debug -- I noticed that Ark can suddenly fail to make its backup (after it made several successful backups) and the error logs looks like

2018-05-10T00:04:13.972+00:00 <IP_ADDRESS> dockerd[4085]: time="2018-05-10T00:04:13Z" level=error msg="Error uploading log file" bucket=<some-bucket> error="rpc error: code = Internal desc = connection error: desc = "transport: error while dialing: dial unix /tmp/plugin763922082: connect: connection refused"" key=<some-key>-logs.gz logSource="pkg/cloudprovider/backup_service.go:148".

This error was first noticed when I was using ark v0.6, and now I upgrade to ark v0.8.1 and the error still persists.
Some symptoms that I noticed when the error happens

Ark client can still list backups (ark backup get works), but it cannot show backups logs (ark backup logs <backup> fails)
Kubectl can still show pod logs (kubectl logs -f <pod> works)
If I don't take any actions, all future backups will fail and won't be uploaded to S3.
If I bounce the pod (kubectl delete pod), everything works again and further backups can succeed maybe for a couple of days and then this error will happen again

My interpretation

This error is caused by the failure to connect to S3
It is not an authentication/authorization error, because it DOES work for a while after I bounce the pod

What I am asking here is

Has anyone seen this problem, or this kind of error logs before?
What might cause Ark to suddenly lose its ability to connect to S3?

Thanks for all the attentions.

Hi @lli-hiya, thanks for the question! The error transport: error while dialing: dial unix /tmp/plugin763922082: connect: connection refused I believe is coming from the communication between the Ark server process and one of its plugins. It sounds like the plugin process has exited and the Ark server isn't handling that well.
When you have a well-functioning pod, could you please kubectl exec into it and get ps information on all the running processes? And then when you start having issues, could you capture the same information?

You can also try setting the server's log level to debug:
kubectl -n heptio-ark edit deploy/ark, then change args so it looks like this:
args:
  - server
  - --log-level
  - debug

This will include more information about launching and terminating plugins.

@skriss this is interesting reading: https://github.com/hashicorp/go-plugin/issues/31

@ncdc Here's what we see in a healthy pod. (I work with @lli-hiya )
PID   USER     TIME   COMMAND
    1 nobody     0:14 /ark server --logtostderr --v 4
   19 nobody     0:00 /ark run-plugin cloudprovider aws
   52 nobody     0:00 sh
   60 nobody     0:00 ps uaxf

@jfoy awesome, thanks! Now I'm looking forward to seeing what's in an unhealthy pod...

@ncdc I will try to give that information to you later if the error happens again.

@ncdc Since I don't know when the error will happen, as a demonstration I manually killed this process  19 nobody     0:00 /ark run-plugin cloudprovider aws (in another testing cluster), and then I observed EXACTLY the same symptom. Ark client freezes to show logs, backups failed and etc.
Although this cannot prove that our original failure was because of the cloudprovider process got terminated, at least it can show some evidence.

Follow up: the error happened in my original cluster during the weekend, and the ps aux within the pod shows that the cloudprovider process is gone. I think this shows that our guess is correct -- Ark failed to handle it.

@lli-hiya thanks for the update. We are actively redesigning our plugin management code to be more robust and handle this sort of situation.
Is there anything in your pod's logs that indicates what happened to the plugin process?

No more than what I posted before because due to some unknown reason the log-level was reverted back to info. I just changed it to debug again, and will update this thread if I see something useful

@ncdc Here it is. This is the log around the our daily backup time, and you can see it shows that the plugin process terminates.
time="2018-05-16T00:00:46Z" level=debug msg="Backup has not expired yet, skipping" backup=heptio-ark/<xxx> expiration="2018-05-24 00:00:46 +0000 UTC" logSource="pkg/controller/gc_controller.go:129"
time="2018-05-16T00:00:46Z" level=debug msg="waiting for RPC address" logSource="pkg/plugin/logrus_adapter.go:74" path=/ark
time="2018-05-16T00:00:46Z" level=info msg="Checking for expired DeleteBackupRequests" controller=backup-deletion logSource="pkg/controller/backup_deletion_controller.go:285"
time="2018-05-16T00:00:46Z" level=info msg="Done checking for expired DeleteBackupRequests" controller=backup-deletion logSource="pkg/controller/backup_deletion_controller.go:313"
time="2018-05-16T00:00:46Z" level=debug msg="starting plugin" args="[/ark run-plugin backupitemaction pod]" logSource="pkg/plugin/logrus_adapter.go:74" path=/ark
time="2018-05-16T00:00:46Z" level=debug msg="plugin address" address=/tmp/plugin537000931 logSource="pkg/plugin/logrus_adapter.go:74" network=unix pluginName=ark
time="2018-05-16T00:00:46Z" level=debug msg="waiting for RPC address" logSource="pkg/plugin/logrus_adapter.go:74" path=/ark
time="2018-05-16T00:00:47Z" level=debug msg=gcController.enqueueAllBackups logSource="pkg/controller/gc_controller.go:88"
time="2018-05-16T00:00:47Z" level=debug msg="plugin address" address=/tmp/plugin854132941 logSource="pkg/plugin/logrus_adapter.go:74" network=unix pluginName=ark
I0516 00:00:50.982700       1 reflector.go:428] github.com/heptio/ark/pkg/generated/informers/externalversions/factory.go:73: Watch close - *v1.Backup total 2 items received
time="2018-05-16T00:01:16Z" level=debug msg="plugin process exited" logSource="pkg/plugin/logrus_adapter.go:74" path=/ark
time="2018-05-16T00:01:16Z" level=error msg="Error uploading log file" bucket=<xxx> error="rpc error: code = Unavailable desc = transport is closing" key=<xxx>/<yyy>-logs.gz logSource="pkg/cloudprovider/backup_service.go:148"
time="2018-05-16T00:01:16Z" level=info msg="Backup completed" backup=heptio-ark/<yyy> logSource="pkg/controller/backup_controller.go:375"
time="2018-05-16T00:01:17Z" level=error msg="backup failed" error="rpc error: code = Internal desc = connection error: desc = \"transport: error while dialing: dial unix /tmp/plugin457010137: connect: connection refused\"" key=heptio-ark/<yyy> logSource="pkg/controller/backup_controller.go:273"
time="2018-05-16T00:01:17Z" level=debug msg="Updating backup's final status" key=heptio-ark/<yyy> logSource="pkg/controller/backup_controller.go:277"```

Just add to this thread. We identified the reason for the failure. It was because the memory usage jumped beyond its limit and causing the cloudprovider process to be killed.

@lli-hiya thanks for the update. What limit did you have set for the pod?

@ncdc We increased the memory limit to avoid it to be killed. Now it looks like           resources:             limits:               cpu: 200m               memory: 300Mi             requests:               cpu: 10m               memory: 40Mi

References #94 regarding cpu/memory limits.  PR #495 in-flight which should resolve this issue.

Fixed by #710

I just encountered the same issue with velero 1.1.0:
$ velero version
Client:
        Version: v1.1.0
        Git commit: a357f21aec6b39a8244dd23e469cc4519f1fe608
Server:
        Version: v1.1.0

I’ll create a new issue if this reproduces again. More details are below.

A few hours before, backups were completing successfully. Now, backups are marked as Failed with the following in the container logs:
$ kubectl logs velero-74c7b8c545-w5cgn -n velero | grep error
time="2019-09-07T11:11:55Z" level=error msg="Error uploading log file" backup=before-kops-1.11 bucket=chorus-backup-bucket-velero-production error="rpc error: code = Unavailable desc = transport is closing" logSource="pkg/persistence/object_store.go:196" prefix=
time="2019-09-07T11:11:55Z" level=error msg="backup failed" controller=backup error="rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: <nil>" key=velero/before-kops-1.11 logSource="pkg/controller/backup_controller.go:233"
time="2019-09-07T11:12:20Z" level=error msg="Error listing backups in backup store" backupLocation=default controller=backup-sync error="rpc error: code = Unavailable desc = transport is closing" logSource="pkg/controller/backup_sync_controller.go:180"
time="2019-09-07T11:13:20Z" level=error msg="Error listing backups in backup store" backupLocation=default controller=backup-sync error="rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: <nil>" logSource="pkg/controller/backup_sync_controller.go:180"
time="2019-09-07T11:14:21Z" level=error msg="Error listing backups in backup store" backupLocation=default controller=backup-sync error="rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: <nil>" logSource="pkg/controller/backup_sync_controller.go:180"
time="2019-09-07T11:15:21Z" level=error msg="Error listing backups in backup store" backupLocation=default controller=backup-sync error="rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: <nil>" logSource="pkg/controller/backup_sync_controller.go:180"
time="2019-09-07T11:16:22Z" level=error msg="Error listing backups in backup store" backupLocation=default controller=backup-sync error="rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: <nil>" logSource="pkg/controller/backup_sync_controller.go:180"
time="2019-09-07T11:17:23Z" level=error msg="Error listing backups in backup store" backupLocation=default controller=backup-sync error="rpc error: code = Unavailable desc = transport is closing" logSource="pkg/controller/backup_sync_controller.go:180"

Exec-ing into the pod shows that the plugins process is not running:
nobody@velero-74c7b8c545-w5cgn:/$ ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
nobody       1  1.3 12.0 1128296 986756 ?      Ssl  09:02   1:52 /velero server
nobody    1485  0.0  0.0  18508  3412 ?        Ss   11:19   0:00 bash
nobody    1493  0.0  0.0  34400  2792 ?        R+   11:19   0:00 ps -aux

After deleting the pod, the new pod launched with the plugins process:
nobody@velero-74c7b8c545-scsq8:/$ ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
nobody       1  0.4  0.4<PHONE_NUMBER>4 ?        Ssl  11:24   0:00 /velero server
nobody      22  0.2  0.5<PHONE_NUMBER>6 ?        Sl   11:24   0:00 /velero run-plugins --log-level info
nobody      40  0.0  0.0  18508  3308 ?        Ss   11:25   0:00 bash
nobody      46  0.0  0.0  34400  2896 ?        R+   11:25   0:00 ps -aux

The pod has the following limits:
resources:
  limits:
    cpu: 400m
    memory: 1Gi
  requests:
    cpu: 200m
    memory: 512Mi

@iamakulov please follow this issue for an error like what you reported: https://github.com/heptio/velero/issues/1856.


url-base

fix #221, fix #222

I was wondering if maybe we shouldn't include a test for #221.

I think you should add it after I merge this


why is everything deprecated?

Hi,
The warnings you are receiving while installing are from the libraries/packages we used.
We always keep our packages up to date when we make a major release. However, the writer of that package may use an older dependency that is no longer maintained for backward compatibility or any other code-related issue. But, that's not an issue. Those packages will work fine with our template.
Even if you like to try you can install these packages in the fresh VueJS project without our template and you will get the same.

Hi,
I updated the issue title so others can easily search for it and identify the issue.


Cannot mass edit device types to 0U

Environment

Python version: 3.6.15
Nautobot version: 1.2.4

0U is valid height when creating or editing a device type, but mass editing does not allow this.

Steps to Reproduce

Create 2 device types
Mass edit them to set U height to 0U

Expected Behavior
Set to 0U

Observed Behavior
Please select a value that is no less than 1.

Confirmed. Thanks for reporting this @Thetacz.

Closed in #1611


Add self-signed issuer manifest to example

Why
Adding self-signed issuer makes example usefully for beginner

@Bo0km4n
Thank you for contribution.
But I'm not sure what it makes usefully.
Would you add more details for docs instead of adding yaml?

@ryota-sakamoto
An example of cert-manager is the certificate yaml.
This certificate is issued by a self-signed issuer, but the issuer's manifest is not written anywhere.
The user needs to look at the cert-manager documentation to deploy the certificate.
So I think a good example should have a manifest.
However, I don't care about the option to make it feasible for users to see the manifest of the self-signed issuer.
If you want to add the manifest to the documentation, I will do that.

@ryota-sakamoto
Sorry, I forgot the example doesn't have certificate yaml.
I will fix it to write self-signed issuer yaml to docs


unable run rdkafka-dotnet client using F# on OS X Yosemite 10.10.5

Here is my sample producer:
#r "bin/Debug/RdKafka.dll"

open System
open System.Text
open RdKafka

let send (topic:string) (message:string) =
    use producer = new Producer("<IP_ADDRESS>:9092")
    use topic = producer.Topic(topic)
    let data = Encoding.UTF8.GetBytes(message)
    topic.Produce(data) |> Async.AwaitTask

"Hello World" |> send "testTopic" |> Async.RunSynchronously

here is the error:
F# Interactive for F# 4.0 (Open Source Edition)
Freely distributed under the Apache 2.0 Open Source License
For help type #help;;

>
--> Referenced '/Users/jmontoya/Projects/testKafka/testKafka/bin/Debug/RdKafka.dll' (file may be locked by F# Interactive process)
System.TypeInitializationException: The type initializer for 'RdKafka.Internal.LibRdKafka' threw an exception. ---> System.EntryPointNotFoundException: rd_kafka_version
  at (wrapper managed-to-native) RdKafka.Internal.LibRdKafka+NativeDarwinMonoMethods:rd_kafka_version ()
  at RdKafka.Internal.LibRdKafka.version () <0x6dde478 + 0x0001a> in <filename unknown>:0
  at RdKafka.Internal.LibRdKafka..cctor () <0x6ddbfd0 + 0x01f4b> in <filename unknown>:0
  --- End of inner exception stack trace ---
  at RdKafka.Internal.SafeConfigHandle.Create () <0x6ddb9c8 + 0x0000b> in <filename unknown>:0
  at RdKafka.Config..ctor () <0x6ddb980 + 0x0000b> in <filename unknown>:0
  at RdKafka.Producer..ctor (RdKafka.Config config, System.String brokerList) <0x6ddb890 + 0x00033> in <filename unknown>:0
  at RdKafka.Producer..ctor (System.String brokerList) <0x6ddb800 + 0x0001f> in <filename unknown>:0
  at FSI_0002.sendBatch (System.String topic, System.String message) <0x6ddb628 + 0x0002f> in <filename unknown>:0
  at <StartupCode$FSI_0002>.$FSI_0002.main@ () <0x6ddb548 + 0x0001b> in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x1a55ba0 + 0x000a1> in <filename unknown>:0
Stopped due to error

Does RdKafka run on mono?  Please let me know.
Best Regards,
John Montoya

Yes it should work!
What's going on is that RdKafka uses librdkafka internally. librdkafka is native code that's used via P/Invoke with a native librdkafka.dylib. The new .NET core infrastructure (nuget 3/dnx/dotnet cli) has good support for bundling a native lib, and there's kludge in place for msbuild based projects on Windows that copies librdkafka.dll to the right place.
However, I'm not aware of a similar mechanism for Mono, so in your test project RdKafka tries to load librdkafka.dylib and can't find it.
The simple solution is to either copy librdkafka.dylib from the nuget package into your working dir, or adding the path to librdkafka.dylib to DYLD_LIBRARY_PATH. Maybe you can extend your build process to do that for you.
Alternatively you could check out how well F# works with the new dotnet infrastructure, see https://github.com/enricosada/fsharp-dotnet-cli-samples/wiki for example. I haven't tried that myself though.

@ah- Sorry for the delayed response and thank you. I will try adding the librdkafka.dylib to my working directory or added to the DYLD_LIBRARY_PATH.  Are there any other export variables that I need to be aware of?  Talk to you soon.
Best Regards,
John Montoya

We are working on Ubuntu and are facing the same problem. Do you know where we can find that librdkafka.dylib? Or is there another way to solve it ?

For Ubuntu you'll currently need to compile your own librdkafka.so from https://github.com/edenhill/librdkafka master and put it somewhere in LD_LIBRARY_PATH.
I'm planning to include a Linux binary in the future, but have not gotten around to it yet.

I've now added a librdkafka.so to the nuget package.
For whatever reason, it's not being picked up properly when I tested it, but a cp ~/.dnx/packages/RdKafka.Internal.librdkafka-Linux/0.9.1-ci-32/runtimes/linux-x64/native/librdkafka.so . might now fix your issue. I'll look into why it doesn't pick it up when I find some time, it works on osx and even Windows.

Thank you for the update of the nuget package! With latest version ( 99 ) it is solved! Thx for the effort!


Dragging Slider Thumb doesnt update state, only clicking on Track does

Description

I ran into this issue with the react-slider where if i drag the thumb, the new preview state is not shown until i actually click the track of the slider. Don't know if its something am doing wrong

import React, { useContext, useState } from 'react';
import ReactSlider from 'react-slider';
import styled from 'styled-components';

import CheckoutContext from '../../../../utils/context';
import { formatMoney } from '../../../../utils';

const PriceFilterComponent = () => {
  const { lookAndFeel, displayCurrency, displayExchangeRate } = useContext(
    CheckoutContext
  );

  const [priceFilterState, setPriceFilterState] = useState([0, 50]);

  const accentColor = lookAndFeel
    ? lookAndFeel.styles[0].colors.accent
    : '#333';

  const StyledTrack = styled.div`
    top: 0;
    bottom: 0;
    background: ${props =>
      props.index === 2
        ? '#ddd'
        : props.index === 1
        ? `${accentColor}`
        : '#ddd'};
    border-radius: 999px;
  `;

  const Track = (props, state) => (


[CARBONDATA-3114]Remove Null Values for a Dictionary_Include Timestamp column for Range Filters

Problem:
Null Values are not removed in case of RangeFilters, if column is a dictionary and no_inverted_index timestamp column.
Solution:
Remove NULL values in case of RangeFilters for such dictionary and no_inverted_index timestamp column.

[ ] Any interfaces changed?

[ ] Any backward compatibility impacted?

[ ] Document update required?

[ ] Testing done

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/1483/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/1693/

Build Failed  with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/9741/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/1485/

Build Success with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/9743/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/1695/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/1492/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/1493/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/1495/

Build Failed  with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/9752/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/1506/

Build Success with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/9765/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/1717/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/1508/

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/1718/

Build Success with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/9766/

LGTM


Release 2.1.0

Test Kitchen : https://gist.github.com/bbaugher/9b6b1f6386f14630dc38
Foodcritic/Chefspec : https://travis-ci.org/cerner/cerner_tomcat/builds/96139223

+1

+1

Releasing


Change information displayed on search results card

[x] Borden #
[x] Name
[x] City
[x] Protection Type (-> Recognition Type)
[x] Date Built

Duplicate of #454

No recognition type visible

I'm seeing this - eg DeSa-3

Missing recognition types were caused by an incorrect language code for a number of the values. This has been fixed and will rectify the missing values on reload.


drop releases folder

As part of the 3.2.0 release we will be creating an install folder and no longer need to zip each release up into the releases folder. Drop it as it'll be preserved in tags

Done


[bug] Tray menu will not appear when app.trayIcon is set on mac.

Describe the bug
When building a menu under a tray icon using tauri::tray::TrayIconBuilder the menu will not appear if the tray icon's icon is set via tauri.conf.json
Reproduction
Here's minimum code to reproduce.
lib.rs
use tauri::{
    menu::{Menu, MenuItem},
    tray::TrayIconBuilder,
};

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_shell::init())
        .invoke_handler(tauri::generate_handler![])
        .setup(|app| {
            let quit_i = MenuItem::with_id(app, "quit", "Quit", true, None::<&str>)?;
            let menu = Menu::with_items(app, &[&quit_i])?;

            let tray = TrayIconBuilder::new()
                .menu(&menu)
                .menu_on_left_click(true)
                .build(app)?;

            Ok(())
        })
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

tauri.conf.json
{
  "app": {
    "withGlobalTauri": true,
    "windows": [
      {
        "title": "throwaway",
        "width": 800,
        "height": 600
      }
    ],
    "trayIcon": {
      "iconPath": "icons/icon.png",
      "iconAsTemplate": true
    },
    "security": {
      "csp": null
    }
  },
}

To fix remove the "trayIcon" block and it will work without an icon.
it will also works with .icon(app.default_window_icon().unwrap().clone()) on the builder, like in the docs.
Expected behavior
I expect the defined menu to appear when clicking on the tray icon.
Full tauri info output
[✔] Environment
    - OS: Mac OS 15.0.0 arm64 (X64)
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.82.0 (f6e511eec 2024-10-15)
    ✔ cargo: 1.82.0 (8f40fc59f 2024-08-21)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-aarch64-apple-darwin (environment override by RUSTUP_TOOLCHAIN)
    - node: 23.1.0
    - pnpm: 9.15.0
    - npm: 10.9.0
    - bun: 1.1.6

[-] Packages
    - tauri 🦀: 2.1.1
    - tauri-build 🦀: 2.0.3
    - wry 🦀: 0.47.2
    - tao 🦀: 0.30.8
    - tauri-cli 🦀: 2.0.2
    - @tauri-apps/api : not installed!
    - @tauri-apps/cli : 2.0.2 (outdated, latest: 2.1.0)

[-] Plugins
    - tauri-plugin-shell 🦀: 2.2.0
    - @tauri-apps/plugin-shell : not installed!

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../src

Stack trace
No response
Additional context
No response

This is more or less intended. If you're coming from v1 where it behaved like you're expecting here it can be a bit confusing indeed. To set the menu for the icon defined in the config you can do something like this (typed in here so may not compile as is)
let tray = app.tray_by_id("main").expect("this shouldn't ever fail if configured in tauri.conf.json");
tray.set_menu(Some(menu));
tray.set_show_menu_on_left_click(true); // this can be set in tauri.conf instead


error when installing with npm install -g sane-cli ember-cli sails

Hi,
I have been using sane in projects, today trying creating a new project, i stumbled with this error:
Cannot find module '/home/alexandre/.npm-packages/lib/node_modules/sane-cli/node_modules/ember-cli/package.json'
The issue seems to be, if packages installed through npm install -g sane-cli ember-cli sails ,that problem happens.
If i then, in the folder i would create the new project, do a npm install sane-cli, it works afterwards.
Is this an issue or normal ?
Thanks!

hmmm that is strange I did change it in such a way that you do not need ember-cli as a global dependency anymore, but and should not happen.
What OS are you on?
And what are the commands you try to run? So after npm install -g sane-cli you try to run sane new projectname and that throws this error? Does e.g. sane help work?

Sorry for taking time to answer,
I tried it on Linux os, openSUSE to be exact.
The other questions, I think sane help was working, but please let me verify later on when i get home and to that particular machine.

I'm getting the same problem. I ran 'npm install -g sails ember-cli sane-cli' and the required npm files were installed successfully. Then I proceeded to running 'sane new project -d mongo' and then I get the following error below...
Cannot find module 'c:\Users\Robert\AppData\Roaming\npm\node_modules\sane-cli\node_modules\ember-cli\package.json'
I'm running this on windows 8.1.

Tried again, and sane new project, and that error happens.
sane help outputs the normal help text.
sane version is 0.0.22

@alexjp @robe01 Thanks for getting back to me with those errors. I will test myself today or tomorrow.

@robe01 that is odd, I just installed again on my Windows 8.1 machine and it works fine. Can you maybe join the gitter channel https://gitter.im/artificialio/sane and we can debug more.

$ sane up
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:1001:11)
at Process.ChildProcess._handle.onexit (child_process.js:792:34)
windows 8.1 version 0.22

@catataw Thanks for posting - that is a known error and Windows support needs to be fixed. See the end of this blog post: http://sanestack.com/blog/new-release-and-meeting-minutes/

@Globegitter Thank you, and congratulations for the great work

I was seeing the same error as @catataw but on OS X using 0.0.23. I updated node to v0.12.0 and now I get the following:
→ sane up
events.js:85
throw er; // Unhandled 'error' event
^
Error: spawn ember ENOENT
at exports._errnoException (util.js:746:11)
at Process.ChildProcess._handle.onexit (child_process.js:1046:32)
at child_process.js:1137:20
at process._tickCallback (node.js:355:11)

node 0.12 just came out, and I think some of the built-in module interfaces have changed.  So, it's entirely possible there is some compatibility problem in some node module dependency.

@Morganjackson That is odd, it is working on iojs 1.1.0 for me. Just quickly switched to node 0.12 and tried sane up --skip-ember. I had to reinstall the npm packages but apart from that it seems fine.

@Globegitter I ended up removing all packages and installed node v0.10.35 which got me back the the origianl error as seen below:
Thanks!
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:1011:11)
at Process.ChildProcess._handle.onexit (child_process.js:802:34)

I also just noticed that running → sane generate resource user name:string age:number didnt generate the ember models.
info: Created a new controller ("user") at api/controllers/UserController.js!
info: Created a new model ("User") at api/models/User.js!

@Morganjackson just invited you to Gitter, maybe we can do a live debugging session at some point via screenhero.

@Globegitter finally got it working! I uninstalled everything and then npm install -g sails sane-cli ember-cli which did the trick.
However now I'm seeing the error below when opening http://localhost:1337/api/v1/users which crashes the whole app.
Have you seen this before?
server   | /Users/morganjackson/Desktop/EmberSails/server/api/responses/ok.js:44
server   |   else return res.guessView({ data: data }, function couldNotGuessView () {
server   |                   ^
server   | TypeError: Object # has no method 'guessView'
server   |     at Object.sendOK (/Users/morganjackson/Desktop/EmberSails/server/api/responses/ok.js:44:19)
server   |     at ServerResponse.bound [as ok] (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
server   |     at found (/Users/morganjackson/Desktop/EmberSails/server/api/blueprints/find.js:76:9)
server   |     at bound (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:957:21)
server   |     at applyInOriginalCtx (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:416:80)
server   |     at wrappedCallback (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:315:18)
server   |     at _normalizeCallback.callback.success (/usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/switchback/lib/normalize.js:33:31)
server   |     at _switch (/usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/switchback/lib/factory.js:48:28)
server   |     at returnResults (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:356:9)
server   |     at /usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:251:16
server   |     at /usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:82:7
server   |     at Object.async.each (/usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:121:20)
server   |     at /usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:425:11
server   |     at /usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:564:5
server   |     at Object.async.each (/usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:121:20)
server   |     at _buildChildOpts (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:453:9)

@Morganjackson Glad you could fix it. That is a very odd error, will look into it a bit now.

@Globegitter Your a legend, worked perfectly!

Ahh, no idea why this even comes up but you might actually have just found some minor cleanup potential.

I think I could keep the views support the sails and just set the res.whantsJson based on a parameter of type url responseType
and print static html inside  tags
See no javascript version of: https://novo.atencaobasica.org.br/relato/4296
sails has suport for this feature by default and help with SEO ...

@albertosouza I think I want to keep views turned off as a default, since you have other services such as https://prerender.io/ and also https://github.com/tildeio/ember-cli-fastboot seems to be coming to us quite fast.
But I should probably add a description to the docs how to turn it back on.

Hi,
I have the same problem on os x Yosemite. I run npm install -g sails sane-cli ember-cli then when I run sane new project I get this error:
Cannot find module '/usr/local/lib/node_modules/sane-cli/node_modules/ember-cli/package.json'
I use node 0.12.0 and for npm globals I have:
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
I reinstall node and all the packages but I get the same error.

@mariusmateoc That is very strange. Have not seen this yet at all. But yeah can you try to npm rm -g ember-cli.
Seems that npm has some issues with installing these 3 packages globally at once.

@Globegitter Thanks, removed all 3 packages with npm uninstall -g <package_name>, then I install them separately as follows:
npm install -g sails
npm install -g ember-cli
npm install -g sane-cli

Now it work as it should. Have a nice day!

@mariusmateoc Glad you got it working. Do you think you could do a PR on the gh-pages branch to the troubleshooting section, in the docs.md file? Would be really helpful.

Thank you for adding that @mariusmateoc

FYI I encountered the same error, tried the uninstall/install of all 3 separately first; didn't work.  Then removed lines 27 + 29 alluded to earlier, and it worked.  Thanks

@e-karma I am glad you got this working. Which lines exactly did you remove?

@Globegitter thanks for sharing these options to server side rendering, will be very useful.
I was using onw sails.js build-in feature to load and render a static version of the system but https://prerender.io/ seens to be a better option


This adds a configuration file that will cause for stale issues to be automatically closed

The time frames currently set will consider a PR as stale after 180 and will
close it after another month.

Marking issues with 'tag: pinned' keeps them open. If we decided to go for this we should first mark all issues that shouldn't be closed.

FWIW, I went through older tickets and have marked some of them as 'pinned' (so they won't get closed). @heller,  @biddisco, @msimberg Please mark tickets dear to you as well.

I'll merge this already now. @sithhell, @biddisco if you haven't had time look through the issues you'll still have 6 months to do so and a 1 month warning before an issue is closed.


Always include classes from all native transports no matter on which …

…platfrom netty-all is build
Motivation:
While building netty-all we should always include all classes for native transports no matter if the native part can be build or not. This was it is easier to test locally with a installed snapshot of netty-all when the code that uses it does enable a specific native transport depending on if the native bits can be loaded or not.
Modifications:
Always include classes of native transports no matter on which platfrom we build. When a release is done we ensure we include the native bits by using the uber-staging profile.
Result:
Easier testing with netty-all snapshots.

@netty-bot test this please


⚠ Bofrost.be has degraded performance

In 9955fe1, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1456 ms

Resolved: Bofrost.be performance has improved in b3c2536 after 9 minutes.


htmlAttached: accessing html in parts.

In Numbas 3, when calling htmlAttached I could access the html from the parts prompt, which I used to hide some elements. This doesn't seem possible any longer in Numbas 4.
The example given in the documentation:
question.signals.on('HTMLAttached',function() {
    question.display.html.find('.statement #secret').hide();
});

fails with the error: TypeError: question.display.html.find is not a function.
Replacing find with querySelector:
question.signals.on('HTMLAttached',function() {
    console.log(question.display.html.querySelector('.statement #secret'));
});

shows the element #hide if it is in the question statement, but returns null if it is in the part prompt.
Here is a link to a question showing this behaviour:
https://numbas.mathcentre.ac.uk/question/share/edit/718371ca-c65a-49d2-86c0-52fbbc4a4ca2

Thanks for reporting this. It broke in Numbas 5, since part HTML is now generated separately to the rest of the question HTML.
I've fixed the documentation - the question.display.html needed to be wrapped in jQuery $(), so it now reads $(question.display.html).find('.statement #secret').hide().
The HTMLAttached signal is now only triggered once all the parts have had their HTML generated. Parts now also have a signal box, so you can do
question.getPart('p0').signals.on('HTMLAttached',function() {
   ...
})

Fantastic! Thank you @christianp A HTMLAttached signal for each part is actually nice, as it gives greater control.


Conform to Helm best practices for structure of templates/

Specifically make changes to comply with the rules:

Each resource definition should be in its own template file.
Template file names should use dashed notation, not camelcase.
Template file names should reflect the resource kind in the name.

See guidelines at https://github.com/helm/helm/blob/master/docs/chart_best_practices/templates.md.

A largish diff, but no actual content changes (just broke up existing files into multiple files and changed names).

I believe there is a bug. When you enable persistence, helm cannot parse the yaml file redis-pod.
Error message:
Error: YAML parse error on openwhisk/templates/redis-pod.yaml: error converting YAML to JSON: yaml: line 74: did not find expected '-' indicator


Warnung "admin.0 - ical has an invalid jsonConfig

Admin logs error:
  {
  "instancePath":"/items/_options/items/daysPast",
  "schemaPath":"#/definitions/numberProps/additionalProperties",
  "keyword":"additionalProperties",
  "params":{"additionalProperty":"trim"},
  "message":"must NOT have additional properties"
  },
  {
  "instancePath":"/items/_options",
  "schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if",
  "keyword":"if",
  "params":{"failingKeyword":"then"},
  "message":"must match \"then\" schema"
  }

Component NUMBER does not have an attribiute 'trim'

fixed with 1.13.6

NEXT error:
ical has an invalid jsonConfig: [{"instancePath":"/items/_calendars/items/calendars/items/3","schemaPath":"#/definitions/passwordProps/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"attr"},"message":"must NOT have additional properties"},{"instancePath":"/items/_calendars","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match "then" schema"}]

This error looks like a schema problem ...

ical has an invalid jsonConfig: [{"instancePath":"/items/_calendars/items/calendars/items/3","schemaPath":"#/definitions/passwordProps/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"attr"},"message":"must NOT have additional properties"},{"instancePath":"/items/_calendars/items/calendars","schemaPath":"#/patternProperties/%5E.%2B/allOf/23/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match "then" schema"},{"instancePath":"/items/_calendars","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/8/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match "then" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match "then" schema"}]

will be handles at schema:
https://github.com/ioBroker/adapter-react-v5/issues/292

schema has been fixed.

ical has an invalid jsonConfig: [{"instancePath":"/items/_calendars/items/calendars/items/5","schemaPath":"#/items/allOf/6/then/allOf/1/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"width"},"message":"must NOT have additional properties"},{"instancePath":"/items/_calendars/items/calendars","schemaPath":"#/patternProperties/%5E.%2B/allOf/27/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match "then" schema"},{"instancePath":"/items/_calendars","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/9/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match "then" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match "then" schema"}]

@mcm1957
Hallo fyi
Ich habe heute die dieselbe Meldung bekommen
admin.0 | 2024-10-05 13:31:56.132 | warn | ical has an invalid jsonConfig: [{"instancePath":"/items/_calendars/items/calendars/items/5","schemaPath":"#/items/allOf/6/then/allOf/1/additionalProperties","keyword":"additionalProperties","params":{"additionalProperty":"width"},"message":"must NOT have additional properties"},{"instancePath":"/items/_calendars/items/calendars","schemaPath":"#/patternProperties/%5E.%2B/allOf/27/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"/items/_calendars","schemaPath":"#/properties/items/patternProperties/%5E.%2B/allOf/9/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"},{"instancePath":"","schemaPath":"#/if","keyword":"if","params":{"failingKeyword":"then"},"message":"must match \"then\" schema"}]

Diese Issue ist seit längerer Zeit geclosed.


enhanced horizontal bar system

btw what are all this earlier commits in this PR?
enhanced horizontal bar system:
You need the new Lara object in the wad below for the new animations:

Keep the action button pressed to make Lara hold the bar.
press forward to swing,
press back or (back and forward) to make Lara turn around.
if you release the action key while lara is swinging she jumps off.

horizontal_bar_Lara.zip
here is the wad with the new Lara animations


Pre-filled link to create github release

Just figured out this is feasible. Can't do it now, so writing down the details

read the tag message into variable
figure out github repo url

parse from git remote get-url origin, turn into https variant, strip .git

print link to https://github.com/someAccount/someRepo/releases/new?tag=the-tag-0.1&title=the-tag-0.1&body=theTagMessage

Why not just create release on tag? I'm sure there's an action for that.


Category Zoom

Hi,
I was going to look at the category zoom next.
My thinking is to use a similar method to panning with a one step zoom, testing whether the mouse is left or right of centre and showing that sides bar.
For pinch zoom we could have left bar, right bar, left bar etc or check which part of the screen has been pinched (that might be difficult!)
Any thoughts would be greatly appreciated

I think that is a good way to approach it. You might find that the zoom becomes very sensitive when there are only a few labels. it might make sense to have some sort of parameter to control how much you need to zoom before stepping


⚠ Bofrost.de has degraded performance

In 5d7cf39, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1400 ms

Resolved: Bofrost.de performance has improved in aba5afb after 6 minutes.


Cloning doesn't overwrite identity

Fixes #8486

I opened a separate issue to add the relevant tests


Whitelist domains to external requests

I propose that instead of overloading Ord with external features, such as tracking Runes balance or Sats balance (https://github.com/ordinals/ord/issues/3875), we consider whitelisting popular domains like mempool or blockchain.info. This would allow us to make API requests to these services directly within Ordinals.
Additionally, we should develop a way for Ord to communicate more effectively with marketplaces and galleries that those whitelisted addresses ARE whitelisted so they can whitelist on their iframe too.

This would make it impossible to run a self-contained index, as well as break whenever those externals sites went down, or changed their API, which is likely to happen because they have much less stringent backwards compatibility guarantees compared to ord.


add examples of data citation to notes branch

also, preferred-citation

also, preferred-citation

I think this is superfluous, now that 1.2.0 is out? Or do you mean real-world examples, as in tracking actual uses f these features?
Feel free to close if this is something that needn't be addressed anymore @jspaaks.

FWIW, I'm currently looking into a corpus of CFF files to figure out how the format is used in the wild. type usage is one of the things I'm interested in.

notes branch has gone away, closing this issue


WIP: Support to datetime picker

https://github.com/chmln/flatpickr
Task

[x] Add a dependency to my package.json
[x] Create a test page(for debug)
[x] Create a style

i want to use this: https://github.com/chmln/flatpickr


Format permalink differently when only posting a title

When POSSE to Twitter, bri.gy uses just the title if there is one.  This is great behaviour for my long-form posts.  brid.gy currently formats the link at the end of the tweet the same way, though, as a parenthetical.  Since my followers are pretty used to that link not being a continuation unless there's an ellipse, it can be confusing.  I propose that if using a title (maybe "if use a title that is different/shorter than the content" or "if I have a title and also content" since if I have both assumedly I intend both to be consumed by humans) the tweet have a slightly different format:
<title>: <permalink>

Totally agree with this... <self-serving-suggestion>I vote I add it to brevity and then have Bridgy use brevity</self-serving-suggestion>
Also when publishing a note longer than 140 characters, I'd like to keep the ellipsis but lose the parentheses. e.g.,
Wow, fascinating article. Always impressed when someone has the strength to break away from a cult… I really… https://kylewm.com/2015/11/wow-fa...

instead of
Wow, fascinating article. Always impressed when someone has the strength to break away from a cult… I really… (https://kylewm.com/2015/11/wow-fa...)

this all sgtm. I'm a bit wary of punctuation changes like this since they can devolve into bikeshedding and/or making it user configurable. these specific changes don't seem like those, though, and do seem like the right idea.


Return moves, not orders in TOO queue

The payload is returning a list of moves, and the UI also refers to
the list as a collection of moves. To avoid confusion, the DB query
should return moves as well. In addition, this makes it easier to
order the moves by status.
Description
Explain a little about the changes at a high level.
Reviewer Notes
Is there anything you would like reviewers to give additional scrutiny?
Setup
Add any steps or code to run in this section to help others prepare to run your code:
echo "Code goes here"

Code Review Verification Steps

[ ] If the change is risky, it has been tested in experimental before merging.
[ ] Code follows the guidelines for Logging
[ ] The requirements listed in
Querying the Database Safely
have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change
this article explains more about the approach used.

Screenshots
If this PR makes visible UI changes, an image of the finished UI can help reviewers and casual
observers understand the context of the changes. A before image is optional and
can be included at the submitter's discretion.
Consider using an animated image to show an entire workflow instead of using multiple images. You may want to use GIPHY CAPTURE for this! 📸
Please frame screenshots to show enough useful context but also highlight the affected regions.

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against 50e2afec4cc4303417fecf98c5162c87d36433ea


GUI - Version calculation of score

Hi,
thx for the great work. I have learned a lot and the speaker-recognition on command line works fine. The gui has in my environment linux python2.7 a problem. The calculation of scores is not working.
Is there a option to check if the "learned models" are available and consistent?
On my investigation I have found one little mistake in gui.py in def updateUserInfo there the line
349 u = self.serdata[userindex] should be updated to
u = self.userdata[userindex]
Regards from Germany

Thanks. The GUI is more or less a simple and dirty demo. I myself didn't fully remember the correct steps to make it work smoothly. But since you can load model by manually clicking the load button, I assume it should work fine.


add create/delete to ts categories and create/update/delete to ts groups

Branch is based off of work done in PR: https://github.com/USACE/cwms-radar-api/pull/369. Once that is merged the diff will look correct


Fixed broken invitation link in the README

closes #1946

Thanks @schmelto !

Thanks for your contribution!


the link in the readme to fedify.dev/tutorial 404s

maybe you already know but thought I would mention

Now it's available. https://fedify.dev/tutorial/


Fixes the grateful shutdown of cas

Closes #2700

the JdbcAuditTrailManager needs to be created as bean so that the destroy method is called

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.ppolivka seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Error: failed to download "stable/nfs-server-provisioner"

Trying to run a simple install but suddenly getting this message.
``helm install stable/nfs-server-provisioner```
I've previously installed other packages.

hey @stefanthorpe! The nfs-server-provisioner chart is being downloaded from the stable repo. The first thing you'll want to do is make sure that the helm repo list has the following line:
$ helm repo list
NAME  	URL
stable	https://kubernetes-charts.storage.googleapis.com
local 	http://<IP_ADDRESS>:8879/charts

If you do not see the stable repo listed, you can add it via $helm repo add stable https://kubernetes-charts.storage.googleapis.com
Can you try that out and let me know what you see?

That's the odd thing I have it and have used several other stable charts:
stefan@stefan-XPS-13-9365:~$ helm repo list
NAME     	URL
stable   	https://kubernetes-charts.storage.googleapis.com/
local    	http://<IP_ADDRESS>:8879/charts
incubator	http://storage.googleapis.com/kubernetes-charts-incubator
stefan@stefan-XPS-13-9365:~$ helm install stable/nfs-server-provisioner
Error: failed to download "stable/nfs-server-provisioner"
stefan@stefan-XPS-13-9365:~$

Hello Folks! I am taking the liberty to join the thread for I was about to open a new issue, but found this one first.
We have been experiencing a similar glitch, with the command helm upgrade with --install flag though. So the attempt was the following:
helm upgrade --install --namespace logmon --values ~/.kubernetes-yaml/logmon/prometheus-helm-values.yaml --version "v2.2.1" "prometheus" stable/prometheus
But getting the error message for older helm version:

Error: file "stable/prometheus" not found

Now in 2.91 updated to:

Error: failed to download "stable/prometheus" (hint: running helm repo update may help)

When I test both helm repo list and helm search prometheus, here are the outputs:
ubuntu@ip-10-0-90-213:~$ helm repo list
NAME            	URL
stable          	https://kubernetes-charts.storage.googleapis.com
local           	http://<IP_ADDRESS>:8879/charts

and
ubuntu@ip-10-0-90-213:~$ helm search prometheus
NAME                                 	CHART VERSION	APP VERSION	DESCRIPTION
stable/prometheus                    	6.7.2        	2.2.1      	Prometheus is a monitoring system and time seri...
stable/prometheus-cloudwatch-exporter	0.1.2        	0.1.0      	A Helm chart for prometheus cloudwatch-exporter
stable/prometheus-mysql-exporter     	0.1.0        	v0.10.0    	A Helm chart for prometheus mysql exporter with...
stable/prometheus-node-exporter      	0.2.0        	0.15.2     	A Helm chart for prometheus node-exporter
stable/prometheus-postgres-exporter  	0.2.0        	0.4.6      	A Helm chart for prometheus postgres-exporter
stable/prometheus-pushgateway        	0.1.2        	0.4.0      	A Helm chart for prometheus pushgateway
stable/prometheus-rabbitmq-exporter  	0.1.3        	v0.28.0    	Rabbitmq metrics exporter for prometheus
stable/prometheus-redis-exporter     	0.1.2        	0.16.0     	Prometheus exporter for Redis metrics
stable/prometheus-to-sd              	0.1.0        	0.2.2      	Scrape metrics stored in prometheus format and ...
stable/elasticsearch-exporter        	0.1.4        	1.0.2      	Elasticsearch stats exporter for Prometheus
stable/stackdriver-exporter          	0.0.4        	0.5.1      	Stackdriver exporter for Prometheus
stable/weave-cloud                   	0.2.2        	0.2.0      	Weave Cloud is a add-on to Kubernetes which pro...
stable/kube-state-metrics            	0.7.1        	1.2.0      	Install kube-state-metrics to generate and expo...
stable/mariadb                       	4.2.2        	10.1.33    	Fast, reliable, scalable, and easy to use open-...

The head scratching session lasted for a while! Then together with another colleague we've noticed a discrepancy between the version we were passing as an argument and the actually correct one listed above (i.e 6.7.2 instead of 2.2.1 which is the app version, not the chart version) By changing the passed version to the correct one did help and now we can correctly install such chart.
Nevertheless we would like to propose to add as a return message not only the comment to try update the repo list, but to also double check that a valid existing chart version number is used.
Hope it could help and please let me know if this was actually obvious. IMHO, there is a difference between saying:

Error: file "stable/prometheus" not found or Error: failed to download "stable/prometheus" (which is already somewhat more accurate)

and something like:

Error: failed to download "stable/prometheus - We couldn't found the specified chart version

or

Error: failed to download "stable/prometheus - Argument X does not match current available chart's  attributes

In other words, a sort of case in-esac structure that will return a better output message.
Thanks and have a good one!

@stefanthorpe - wow that's strange. What version of helm are you running? I'll try to reproduce. Did you also try a helm repo update?
@carmat88 -- thanks for your input. Agreed and it's always good to have more detailed error messages! If you'd like to contribute and them more user friendly, please feel free.
I wonder if changing error messages like that breaks backwards compatibility. cc/ @technosophos

Hi everyone
I faced the same issue on MacOS X.
Adding --debug helped me trace the problem which as file permissions/missing folder:
Error: open /Users/user/.helm/cache/archive/prometheus-8.8.0.tgz: permission denied
I created the necessary folders and then it work. I also executed with sudo which also did the trick. Maybe this is not the case however i am justing adding here in case someone else hits the same issue like mine.

Closing due to inactivity. Please open a new ticket against Helm 3 if this issue persists. Thanks!

This worked for me {"helm repo add stable https://charts.helm.sh/stable"}


Flutter Doctor Error after upgrading to version 3.0.1

Steps to Reproduce

Flutter upgrade
Upgrading Flutter to 3.0.1 from 3.0.0 in C:\Users\ricfs\development\sdks\flutter...
Running flutter doctor...

Logs

Logs
PS C:\Users\ricfs> flutter upgrade
Upgrading Flutter to 3.0.1 from 3.0.0 in C:\Users\ricfs\development\sdks\flutter...
Checking Dart SDK version...
Downloading Dart SDK from Flutter engine caaafc5604ee9172293eb84a381be6aadd660317...
Expanding downloaded archive...
Building flutter tool...
Running pub upgrade...
Upgrading engine...
Downloading android-arm-profile/windows-x64 tools...               317ms
Downloading android-arm-release/windows-x64 tools...                82ms
Downloading android-arm64-profile/windows-x64 tools...              98ms
Downloading android-arm64-release/windows-x64 tools...              76ms
Downloading android-x64-profile/windows-x64 tools...                81ms
Downloading android-x64-release/windows-x64 tools...                70ms
Downloading android-x86 tools...                                   583ms
Downloading android-x64 tools...                                   564ms
Downloading android-arm tools...                                   520ms
Downloading android-arm-profile tools...                           193ms
Downloading android-arm-release tools...                           129ms
Downloading android-arm64 tools...                                 573ms
Downloading android-arm64-profile tools...                         206ms
Downloading android-arm64-release tools...                         146ms
Downloading android-x64-profile tools...                           215ms
Downloading android-x64-release tools...                           154ms
Downloading android-x86-jit-release tools...                       232ms
Downloading Web SDK...                                           1.045ms
Downloading CanvasKit...                                           724ms
Downloading package sky_engine...                                   47ms
Downloading flutter_patched_sdk tools...                           121ms
Downloading flutter_patched_sdk_product tools...                   116ms
Downloading windows-x64 tools...                                   954ms
Downloading windows-x64/windows-x64-flutter tools...             1.942ms
Downloading windows-x64/flutter-cpp-client-wrapper tools...          8ms
Downloading windows-x64-profile/windows-x64-flutter tools...      1.610ms
Downloading windows-x64-release/windows-x64-flutter tools...      1.656ms
Downloading windows-x64/font-subset tools...                        57ms
Flutter 3.0.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision fb57da5f94 (27 hours ago) • 2022-05-19 15:50:29 -0700
Engine • revision caaafc5604
Tools • Dart 2.17.1 • DevTools 2.12.2
Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.1, on Microsoft Windows [versÆo 10.0.22000.675], locale pt-BR)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[✓] Chrome - develop for the web
[☠] Visual Studio - develop for Windows (the doctor check crashed)
✗ Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know about this issue at https://github.com/flutter/flutter/issues.
✗ Exception: Bad UTF-8 encoding (U+FFFD; REPLACEMENT CHARACTER) found while decoding string: [
{
"instanceId": "052523f1",
"installDate": "2022-03-28T23:10:08Z",
"installationName": "VisualStudio/17.2.1+32516.85",
"installationPath": "C:\Program Files\Microsoft Visual Studio\2022\Community",
"installationVersion": "17.2.32516.85",
"productId": "Microsoft.VisualStudio.Product.Community",
"productPath": "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe",
"state":<PHONE_NUMBER>,
"isComplete": true,
"isLaunchable": true,
"isPrerelease": false,
"isRebootRequired": false,
"displayName": "Visual Studio Community 2022",
"description": "IDE avan�ado, gratuito para estudantes, colaboradores de software livre e indiv�duos",
"channelId": "VisualStudio.17.Release",
"channelUri": "https://aka.ms/vs/17/release/channel",
"enginePath": "C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service",
"installedChannelUri": "https://aka.ms/vs/17/release/channel",
"releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.2#17.2.1",
"thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=661288",
"updateDate": "2022-05-20T15:35:53.9934502Z",
"catalog": {
"buildBranch": "d17.2",
"buildVersion": "17.2.32516.85",
"id": "VisualStudio/17.2.1+32516.85",
"localBuild": "build-lab",
"manifestName": "VisualStudio",
"manifestType": "installer",
"productDisplayVersion": "17.2.1",
"productLine": "Dev17",
"productLineVersion": "2022",
"productMilestone": "RTW",
"productMilestoneIsPreRelease": "False",
"productName": "Visual Studio",
"productPatchVersion": "1",
"productPreReleaseMilestoneSuffix": "1.0",
"productSemanticVersion": "17.2.1+32516.85",
"requiredEngineVersion": "3.2.2148.26540"
},
"properties": {
"campaignId": "2030",
"channelManifestId": "VisualStudio.17.Release/17.2.1+32516.85",
"nickname": "",
"setupEngineFilePath": "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe"
}
}
]
.  Doctor found issues in 1 category.

Well, is not happening for me
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.0.1, on Microsoft Windows [Version 10.0.19043.1706], locale de-AT)
[√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.2)
[√] Android Studio (version 2020.3)
[√] Android Studio (version 2021.2)
[√] IntelliJ IDEA Community Edition (version 2019.1)
[√] IntelliJ IDEA Community Edition (version 2021.1)
[√] VS Code (version 1.65.2)
[√] Connected device (4 available)
[√] HTTP Host Availability
• No issues found!

Duplicate of https://github.com/flutter/flutter/issues/102451
(This is unrelated to 3.0.1; you must have updated Visual Studio during step 2.)


Refactor for local cache

Better division for the file system configuration and constructors.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/7926/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/7945/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/7946/
Test PASSed.

alluxio-bot, merge this please.


feat(rpc): rpc add cors setting

Codecov Report

Merging #54 (a32406b) into main (5ac8679) will increase coverage by 9.79%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #54      +/-   ##
==========================================
+ Coverage   43.07%   52.87%   +9.79%
==========================================
  Files          43       20      -23
  Lines        2340      418    -1922
  Branches       67       21      -46
==========================================
- Hits         1008      221     -787
+ Misses       1332      197    -1135

Impacted Files
Coverage Δ

...kb-contracts/lib/bridge-lockscript-lib/src/test.rs

...ules/eth-contracts/contracts/libraries/Address.sol

...ain-modules/eth-contracts/contracts/test/ERC20.sol

...dules/ckb-contracts/tests/src/utils/case_runner.rs

...ffchain-modules/ckb-contracts/types/src/convert.rs

...les/eth-contracts/contracts/libraries/SafeMath.sol

...-modules/ckb-contracts/types/src/recipient_cell.rs

offchain-modules/ckb-contracts/types/src/hasher.rs

...tracts/lib/recipient-typescript-lib/src/actions.rs

...tracts/types/src/generated/recipient_typescript.rs

... and 13 more

Continue to review full report at Codecov.

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


Continue training

Hi, I need to continue a training for a purpose of adaptation. What is the easiest way to do so, considering that I need to store all training parameters (especially global step and Adam)

It seems that right now the Adam variables get stored, as well as the global step.
You can check this by running and continuing a test and print out the variable before and after using tf.Print.

Alternatively, you can print out the variables that are being stored during the initialization of the saver, here:
https://github.com/ufal/neuralmonkey/blob/master/neuralmonkey/tf_manager.py#L90

Therefore I must be doing something wrong? I only added a line to main:
initial_variables="baseline_model/variables.data.index"
This alerts me that some variables are not in the checkpoint and based on the log the global step is not set. I also tried to provide other variables.data.* files.

Drop the ".index" suffix

What do you mean "based on the log"? Global step is not logged. You must use tf.Print to get the value. The list of variables and their shapes in the log is a list of trainable variables, not global variables. Global variables get stored.

Perfect, thank you. Now it didn't warn about missing variables. As a log I meant the tensorboard output and the fact that performance dropped due to high learning rate (or not having correct variables).
Now it works

What works? The global step and adam vars get loaded?

The global step looks like it got loaded and I suppose the Adam too. Only (cosmetical) problem is, that the tensorboard do not start at the correct step but starts from zero. Couldn't it be somehow augmented so whenever globalstep is loaded the step variable in learning_utils will also increase? But it is only for better visualization.

I have checked it and I can confirm that global step as well as whole Adam is stored in the checkpoint


🌐 Add Korean translation for docs/ko/docs/tutorial/dependencies/index.md

Add Korean translation for docs/ko/docs/tutorial/dependencies/index.md
Related [FEATURE] Korean translations https://github.com/tiangolo/fastapi/issues/2017

LGTM 👍

📝 Docs preview for commit 49630fb7685e2481c0af6e8c9e7c21d16136c939 at: https://649a1a917ce52313fb50ea45--fastapi.netlify.app

Thank you @KdHyeon0661! ☕
It seems this was handled in https://github.com/tiangolo/fastapi/pull/10989, so I'll now close this one. But if you feel that should be updated, feel free to add new PRs. Thanks! 🍰


Round trip WYSIWG LabOP editor, LLMs, Microsoft Word

Making a note of this idea that was brainstormed on 2023-04-25's weekly meeting:
(I may have been inspired about this idea from recently reading this blog post, might be handy: https://ben.balter.com/2014/03/31/word-versus-markdown-more-than-mere-semantics/)
A key functionality of LabOP, is that it should be an easily editable, as well as executable, format for laboratory protocols. Currently, we have the LabOP editor (https://github.com/Bioprotocols/laboped), which provides a GUI for editing the full power of LabOP, to represent graph-like and otherwise non-linear or parallelized protocols with conditional based execution.
However, many protocols (or subprotocols) are simply linear (serial execution of steps without conditions or feedback), and may not need the full power of the LabOP editor. Furthermore, many laboratory users would be terminally discouraged by having to turn to editing Python or RDF, or even raw Markdown LabOP representations.
The likely user preferred export/executable format for such a linear protocol, is a numbered list (with, optionally, indented sub-lists representing, perhaps, notes on the step, or substeps etc.).
Currently LabOP has the ability to export to Markdown (and via Markdown, to a read only PDF), which is a great solution to export such protocols that are well represented as numbered lists. Markdown however, is not a good solution to edit such protocols, as most users do not have a WYSIWYG Markdown editor on their computer (although many are freely available, it is an additional step & barrier to entry). Editing the Markdown raw text, i.e. via their likely installed plaintext editor, may also be terminally discouraging to users.
Here I suggest a few things:
1. LabOP have a Microsoft Word .docx specialization (This could be as simple as Pandoc or OpenOffice conversion from Markdown to .docx)

However, if instead converting directly into .docx, there is an option to stash LabOP informative metadata into the hidden .docx XML. See how Zotero interfaces with .docx for an example with inserting citations into the .docx.
.docx also has the advantage of being able to be imported into & edited on Google Docs, but perhaps with an unclear maintenance of any LabOP stashed metadata.
One could also consider HTML as an alternative to .docx document format with markup, but most users do not have a WYSIWYG HTML editor on their computer, unlike .docx files, as most users already have the Microsoft Office suite or competitive equivalents (Open Office, Apple Pages etc.). See also: https://github.com/Bioprotocols/labop/issues/158
Or alternatively the LabOP RDF file itself could stashed somewhere in .docx ZIP archive. (https://en.wikipedia.org/wiki/Office_Open_XML#:~:text=zipped)

2. LabOP have the ability to injest / back-translate a suitable .docx, back into LabOP RDF.

In a simple case, a user might edit a single parameter (i.e. change 50 µL -> 100 µL in a single place). That type of change should be easily able to be back-translated into LabOP RDF.  The change could also be forward propagated to all the places that value is used elsewhere in the protocol (or not, if the user wishes it to not be propagated).
Presumably, this back translation might need the context of the original LabOP RDF protocol which was exported from. Or, such context being stashed in the hidden metadata of the .docx.

3. LabOP should take advantage of the ability to diff .docx files, (i.e. the "Compare Documents" functionality), to better perform the back translation. 1,2,3 taken together, could then make for a Round trip WYSIWYG LabOP Editor, for simple edits.
4. If, a user makes a complex edit in Microsoft Word, i.e. they write in natural language, and then a large language model (LLM) would convert their edit into a LabOP compliant document.

A improper LLM edit would be caught by either the LabOP .docx -> LabOP RDF translator, or, by the human user. (i.e. a non-sensical edit by the LLM would be obviously wrong to one of the two parties).
An example is given below:

(Original LabOP exported .docx)
4. Put on pipette tip on pipette M300 left, from tipbox in Slot 5
5. Transfer 100 µL from Well A1 into Well A2
6. Drop pipette tip into trash at location slot 12

(User makes an edit)
4. Put on pipette tip on pipette M300 left, from tipbox in Slot 5
5. Transfer 100 µL from Well A1 into Well A2, and then mix
6. Drop pipette tip into trash at location slot 12

->(LLM converts near-LabOP-docx into LabOP-backtranslateable-docx)->
(This may or may not, actually work with stashed metadata / encapsulated RDF on the .docx XML backend, if it exists)
4. Put on pipette tip on pipette M300 left, from tipbox in Slot 5
5. Transfer 100 µL from Well A1 into Well A2
6. Mix Well A1
   a. Aspirate 80 µL from Well A1
   b. Dispense 80 µL into Well A1
   c. Goto substep a. 4 more times (5 times total)
7. Drop pipette tip into trash at location slot 12

(Example .docx showing this formatting)
LabOP_example.docx
5. A well functioning LLM assistant for converting near-LabOP-complaint-docx, into LabOP-compliant-docx (and therefore onwards into RDF), might be a mechanism for supervised or automated conversion of generic natural language laboratory protocols, found publicly or provided privately by users, into LabOP RDF protocols.

I pulled out the .XML file that is representing the numbered list with lettered sublists within the above LabOP_example.docx, in case people are interested what it actually looks like in the backend of the .docx:
document.xml.zip
(This is a .docx that was made as a blank file in Microsoft Word, uploaded, maintained, and edited to include the numbered list as lettered sublist in Google Docs, then it was downloaded & unzipped - so, it might be a Google preferred subset of the .docx XML markup that plays a bit more nicely with interoperable use).


seq_task does not work

seq_task does not work, with following code and cmd, locust 0.9.0:
locust -f test.py --host=http://<IP_ADDRESS>:81 --no-web -c 1

from locust import HttpLocust, TaskSet, task
from locust import seq_task

class MyTaskSet(TaskSet):
    def on_start(self):
        print "start"

    @seq_task(1)
    def step1(self):
        print "step 1"

    @seq_task(2)
    @task(2)
    def setp2(self):
        print "step 2"

    @seq_task(3)
    @task(3)
    def step3(self):
        print "step 3"

class MyLocust(HttpLocust):
    task_set = MyTaskSet

sequence is random, no pattern, remove @task() with only @seq_task() make no difference

I think you should use TaskSquence instead of TaskSet as the super class.

I think you should use TaskSquence instead of TaskSet as the super class.

My mistake, thx, close this one.


Likely overpadded motion blur struct

Bevy version
Latest main.
What you did
Had a look at the newly merged motion blur PR.
What went wrong
https://github.com/bevyengine/bevy/blob/main/crates/bevy_core_pipeline/src/motion_blur/motion_blur.wgsl#L21
If I'm not mistaken the padding is meant to ensure the fields add up to 16 bytes.
Since there is a f32 and a u32 before the padding, the "hole" is 8 bytes, but the padding adds 12 bytes via vec3<f32>.
In this case the wgsl should change to vec2<f32> as well as the corresponding Rust side ShaderType struct.

The example doesn't even seem to compile for wasm
error[E0063]: missing field `_webgl2_padding` in initializer of `bevy::bevy_core_pipeline::motion_blur::MotionBlur`
  --> examples/3d/motion_blur.rs:24:26
   |
24 |             motion_blur: MotionBlur {
   |                          ^^^^^^^^^^ missing `_webgl2_padding`

For more information about this error, try `rustc --explain E0063`.
error: could not compile `bevy` (example "motion_blur") due to 1 previous error


[WIP] docs. DO NOT MERGE!

Coverage remained the same at 96.899% when pulling 69a4fe5232587a27d7bd5b95c77a2e62f7f9b548 on JWO719:feature/docs into c05a945ddb23a8f08dd3963a80323d3a2c0efff6 on ReactiveX:master.

I have to test something locally and pushing to the branch in the fork repo will update this repository. I'll close this for now and create a new one when auto deployment is done. Sorry for that:D


[ReadMe] Base layer term seems overloaded

In ReadMe.md, there are references to "base layer" but seems to be an overloaded use of the term:

The high level components of the spec include:
•An image manifest and filesystem serialization (base layer)
•A process of hashing the image format for integrity and content-addressing (base layer)
•Signatures that are based on signing image content address (optional layer)
•Naming that is federated based on DNS and can be delegated (optional layer)

Maybe change:
"base layer" --> REQUIRED
"optional layer" --> OPTIONAL

Base layer is a term from the OCI Scope Table. I will try and add a clarifying statement but we should use the same language: https://www.opencontainers.org/governance/oci-scope-table

Fixed in https://github.com/opencontainers/image-spec/pull/124

@philips Thanks for the quick action on this.
It's a relatively minor nit, but I think REQUIRED and OPTIONAL are more generally understood than "base layer" and "optional layer" (though I now better understand the context after being pointed to the opening sentences defining these in the OCI Scope Table.)
Would you (or others) have any concern if I submitted a PR in that direction?

@RobDolinMS Honestly I would rather just fix the Scope Table to use this standard language. :(
If you can add clarifying information to this project I would take a PR though.


determine why github pages deployment failed

I merged dev into main via #823. This triggered the action that deploys to the site scadnano.org, which is (I believe)
https://github.com/UC-Davis-molecular-computing/scadnano/actions/runs/3281808663
The action appeared to run without error.
The newest stable version of scadnano is 0.17.8: https://github.com/UC-Davis-molecular-computing/scadnano/releases/tag/v0.17.8
However, many hours later, and after hard-refreshing on several browsers, scadnano.org still has the old version 0.17.7:

Determine if there is a problem with the automated deployment and fix.

Ben Lee<EMAIL_ADDRESS>set up this automated deployment action. If you have trouble diagnosing the problem, he may have some ideas for how to help.

Not sure if this is the issue, but we are using Ubuntu 18 in the GitHub Actions, which is deprecated and will be unsupported by April next year. We should switch to ubuntu-latest.


missingMethod parameters not an array

When defining missingMethod in my controllers $parameters seems to be a string and not an array. Is there any reason for this to be documented as / defaulted to an array in the abstract controller?
    /**
     * Handle calls to missing methods on the controller.
     *
     * @param  array   $parameters
     * @return mixed
     *
     * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
     */
    public function missingMethod($parameters = [])

Interesting... missingMethod appears on Laravel 4.2 docs (http://laravel.com/docs/4.2/controllers#handling-missing-methods) but not on 5.0+ docs. Also, missingMethod works as expected in Laravel 4.2: $parameters is actually an array and not a string. (I encourage you to try it and see for yourself).
Are there plans to remove this funcionality or it's just being refactored/documented?

Didn't notice the documentation! I should have mentioned I'm using 5.1. I have quite a few 4.2 projects so never have had a problem.
I did noticed a revert of a commit from Graham that does show routing methods being deprecated, I believe one or more of them methods is called when missingMethod is called after closer inspection. So this could be the case.


Possible problem of concurrence in DefaultTokenServices

In the following code:

OAuth2AccessToken existingAccessToken = tokenStore.getAccessToken(authentication);
        OAuth2RefreshToken refreshToken = null;
        if (existingAccessToken != null) {
            if (existingAccessToken.isExpired()) {
                if (existingAccessToken.getRefreshToken() != null) {
                    refreshToken = existingAccessToken.getRefreshToken();
                    // The token store could remove the refresh token when the
                    // access token is removed, but we want to
                    // be sure...
                    tokenStore.removeRefreshToken(refreshToken);
                }
                tokenStore.removeAccessToken(existingAccessToken);
            }
            else {
                // Re-store the access token in case the authentication has changed
                tokenStore.storeAccessToken(existingAccessToken, authentication);
                return existingAccessToken;
            }
        }

I'm using the default implementation, but I have a problem of concurrence in this case:
Application A = OAuth2 server
Application B = Consumes the Application A and has his own services.
Application C = Consumes the Application B.
Application D = Consumes the Application B.
The user logs in the Application C, and logs in Application D. Both applications (C and D) receive the same token, because the Application B logs in Application A, and the Application A gives the same token to Application B.
So, when the Application C call the refresh token, the Application C receives a new token, but the Application D keeps the first access token, then the user logs out from Application D.
It would be interesting to have a boolean to deactivate the reuse of the access token or simply remove the reuse of access token.
This is my case, I do not know if is a common case or a specific case. If it is a specif case, I can implement my own TokenServices.
Thank you.

If all "Applications" are OAuth2 clients they can't get the same token (in the default TokenStore implementations). I'm not sure I follow. Where do you see an access token being re-used across clients? Which TokenStore are you using?

1 - Where do you see an access token being re-used across clients?
No. I think you misunderstood what I said before because I couldn't explain properly. Let me try again.
I am using DefaultTokenServices.
The Application C and D are not OAuth2 clients.
If you replace Application C and D for one mobile app, the same thing will occur.
If the user logs in two or more cellphones (all mobile app will be the same clientId because are different installations). So, when one of the cellphones calls the refresh token, the user will log out in the other cellphones, and this isn't a good experience for the user.

I suggest, if possible, add the access token reuse control per client.

If C and D are not OAuth2 clients what are they doing with tokens?

C and D don't access the tokens directly. C and D access B. B has tokens. However, C and D call a login service of B, and B redirect this login service adding clientId and clientSecret to the request and redirect to A the login. So, when the B returns the token to C and D both receive the same token.
But this isn't the point. How I said before, this problem could occur with mobile applications or browsers. If the user logs in two browsers, and each browser has a different session, one browser can log out the other one.

If  the user logs in two browsers, and each browser has a different session, one browser can log out the other one.

Only if B makes the mistake of using an access token as a session identifier. C and D should have their own, independent cookies if they need independent sessions. I'm not sure what the connection is to OAuth yet.

Okay, C and D have independent cookies and independent sessions, and that's the point.
When the user logs in C and D, B associates the access token retrievied for each session (but it is the same token).
B needs to associate the access token with the session because B will need to use the access token to call some services of A (the OAuth Server). Each time C or D make requests to B, B will verify if the access token associated to the session is expired. If the token is expired, B will call the refresh token service to renew the session.
As C and D have the same token, if C calls B before D, and B renew the  token of C, D logs out.
One solution for this problem is: B finds the sessions who are using the access token and change all sessions when B renew the token. But it doesn't sounds good.
I think each time the user logs in, a new access token should be generated. I don't know if I right understood  the concept of the token of OAuth2. I understand that the access token can be used to call services after the log in, each log in is a unique log in, so each login should have a unique token.
I hope I was more clear this time. This is a little complicated to explain.
If you want to, we can discuss this and make a meeting via Skype.

If the user logs out of B from either of his sessions, C or D, they do not affect each other. So I think your "logout" scenario is a little hazy, but I think I get what you mean now, because  if the token expires that's a different question. You are right that B holds 2 copies of the same access token, and that one of them will refresh before the other, at which point there might be a problem because they won't agree as to the correct access token value, and one will keep cancelling the other by using the refresh token. I haven't actually seen this happen but I can believe it (I'd like someone to confirm it if I don't have time to).
To be clear, as far as I can see the app will not be broken and the user might not even notice, but there will be a lot more chatter between the app and the auth server than is strictly necessary, Is that what you are worried about?  (If you use one of those then it will always have the single authoritative value for the current access token for this client.)
I would also like some help understanding how this scenario can arise in practice. C and D might be different browser processes I guess, but why is the user logged on twice to the same app? Different devices I suppose, is the obvious answer. I would still expect it's quite uncommon because mobile devices usually prefer password grant, hence the token will be different and probably should include information about the device in the token, making it unique. But I digress.

I am also using default implementation of DefaultTokenServices.java in my project. I have question similar to the one mentioned in this thread.
If user is logged in to the application form more than two different browsers using same account info (eg. username and client_id is same in all the cases), then will the access token generated in every cases (on each browser) be same or different.
In my case, If I logged into application using three different browsers(A, B, C) then for two browsers it generates different access token but for the third browser(Say C) it returns the same access token generated already either for A or B.
After debugging I found authenticationKeyGenerator.extractKey(authentication) stement is used inside getAccessToken(authentication) method and returns same key third time which matches the key generated for A or B. So it returns the same existing access token.
As per my requirement,  different access token should be generated, each time user logged into the application and after logout access token is deleted from the db.
My question is why extractKey(authentication) method returns different key in the case of two different browsers using the same account info (username, client_id) and when third comes into picture it returns the key generated previously in either case.
Thanks

AFAIK the default id generator considers the username, client id and scopes. Maybe your third token was for a different scope?

No, In all the cases username, client id and scopes are same ?

I don't have time this week to build an example, but as soon as possible I will put a project in my repositories to show such scenario.
Thank you for your attention.

Ok Thanks ..

Dear All,
the case reported by mundodojava is right. We've noticed the same behaviour. The race condition affects the update inside the storeAccessToken(OAuth2AccessToken token, OAuth2Authentication authentication) method, line 148, class org.springframework.security.oauth2.provider.token.store.JdbcTokenStore.
We reckon that you should change the storeAccessToken method to introduce a check if the access_token already exists. At the moment if the race condition happens a org.springframework.dao.DuplicateKeyException will be raised and this exception is not managed. The execution is in transaction but you've set a optimistic lock, so the update can be executed by other threads.
Regards,
Francesco.

@fsforna that's a different problem. @mundodojava does not have a DuplicateKeyException in his scenario. The duplication is on the client (two different clients in fact), and the problem is that they keep cancelling one another's tokens once the first one (duplicate) expires.
I think you just need a transactional token services (should) be automatic since 2.0.7 as long as you @EnableTransactionManagement. See issue #276 for more detailed discussion.

We encountered the same issue reported here:
https://github.com/jhipster/generator-jhipster/issues/1759
Do you reckon that if we use the 2.0.8 snapshot-release the issue will be resolved?
Thank you.

Dear @dsyer,
we noticed the @Transactional annotation was moved over methods respect your last commit; by the way, the issue #276 seems to be still open, such as I look to explain in my post.

Issue #276 is closed. Would it make sense for you to try a snapshot if 2.0.7 isn't working?

This is still an issue as far as I can tell. The way I see it is that you don't need any special setup whatsoever... I just have a authentication_id as the primary key (seems to be recommended from schema referenced in tests and tickets on this topic) and a bash script such as this which repeatedly makes the same call to get a token (notice the & so there are multiple calls coming in at the same time):
#!/bin/bash
for i in {1..10}
do
	echo $i;
	curl -k -X POST -H "Authorization: Basic REDACTED=" "https://localhost:8080/oauth/token?grant_type=password&username=manager&password=password" &
done

This results in multiple threads ultimately coming into JdbcTokenStore.storeAccessToken at the same time and (despite the removeAccessToken) results in multiple INSERT calls for the same authentication_id. The database constraints and the @Transactional don't help here... the database just enforces the rules and a DuplicateKeyException is thrown.
The only easy solution I have seen work is to make DefaultTokenServices.createAccessToken synchronized. The other solutions of somehow elegantly handling the DuplicateKeyException would probably also work. I'm hestitant to use synchronized for performance reasons but its the quickest solution for me. Of course, it doesn't help if you have multiple auth servers on one database either. At that point a more elegant solution would be needed with full database locks.
public class LockedTokenServices extends DefaultTokenServices {

	@Override
	public synchronized OAuth2AccessToken createAccessToken(OAuth2Authentication authentication)
			throws AuthenticationException {
		return super.createAccessToken(authentication);
	}
}

Probably would also need to do the same with refreshAccessToken.
Anyone have any better thoughts on this? I'd rather handle the DuplicateKeyException in code...

I had a same issue where duplicate rows were being generated when multiple threads coming into JdbcTokenStore.storeAccessToken at the same time.
I resolved this issue by extending DefaultTokenServices and handle the duplicate key exception.
public class CustomTokenServices extends DefaultTokenServices {

    private static final Logger LOGGER = LoggerFactory.getLogger(CustomTokenServices.class);

    @Override
    public OAuth2AccessToken createAccessToken(OAuth2Authentication authentication) throws AuthenticationException {
        try {
            return super.createAccessToken(authentication);
        }catch (DuplicateKeyException dke) {
            LOGGER.info(String.format("Duplicate user found for %s",authentication.getUserAuthentication().getPrincipal()));
            return super.getAccessToken(authentication);
        }catch (Exception ex) {
            LOGGER.info(String.format("Exception while creating access token %s",ex));
        }
        return null;
    }
}

Any feedback on this approach is appreciated

Same problem here. I am running a simple load test with just 4 concurrent users trying to authenticate with username/password and getting DuplicateKeyException.

@bilak and I had a long discussion about this on gitter (see the link to his issue above). He found that Postgres required a different workaround than other databases, but a combination of transaction isolation and retry would always work I believe.
Your load test is probably not very realistic though, or if it is, then maybe you should think about how your client apps are implemented (how would one client be sending concurrent requests for the same user?).

@dsyer This is a very straight forward and common case, where the same user is logged in on multiple browser and when they try to hit a request this exception occurs. I have fix it with a way around mentioned above.

OK, but I still don't believe you have the right issue. Please attach a sample to #1033.

I resolved the problem for application using UPSERTS, in my case Postgres 9.5+ INSERT .. ON CONFLICT DO:
@Bean
public TokenStore tokenStore() {
    JdbcTokenStore tokenStore = new JdbcTokenStore(dataSource);
    tokenStore.setInsertAccessTokenSql("insert into oauth_access_token as t (token_id, token, authentication_id, user_name, client_id, authentication, refresh_token)\n" +
        "values (?, ?, ?, ?, ?, ?, ?)\n" +
        "on conflict on constraint pk_oauth_access_token  do\n" +
        "update set\n" +
        "    token_id = excluded.token_id,\n" +
        "    token = excluded.token,\n" +
        "    authentication = excluded.authentication,\n" +
        "    refresh_token = excluded.refresh_token\n" +
        "  where t.authentication_id = excluded.authentication_id");
    return tokenStore;
}

I had a same issue where duplicate rows were being generated when multiple threads coming into JdbcTokenStore.storeAccessToken at the same time.
I resolved this issue by extending DefaultTokenServices and handle the duplicate key exception.
public class CustomTokenServices extends DefaultTokenServices {

    private static final Logger LOGGER = LoggerFactory.getLogger(CustomTokenServices.class);

    @Override
    public OAuth2AccessToken createAccessToken(OAuth2Authentication authentication) throws AuthenticationException {
        try {
            return super.createAccessToken(authentication);
        }catch (DuplicateKeyException dke) {
            LOGGER.info(String.format("Duplicate user found for %s",authentication.getUserAuthentication().getPrincipal()));
            return super.getAccessToken(authentication);
        }catch (Exception ex) {
            LOGGER.info(String.format("Exception while creating access token %s",ex));
        }
        return null;
    }
}

Any feedback on this approach is appreciated

I think this also have a DuplicateKeyException，Because When I get accesstoken ,It will restore into database.
we can use pessimism lock or synchronized  can solve this problem.
`public class LockedTokenServices extends DefaultTokenServices {
@Override
public synchronized OAuth2AccessToken createAccessToken(OAuth2Authentication authentication)
		throws AuthenticationException {
	return super.createAccessToken(authentication);
}

}`

Closing this as questions are better suited on Stack Overflow. We prefer to use GitHub issues for bugs and enhancements.


Cell Update Bug

When running the game in extended mode, all cells are converted to standard cells upon updating the game to the second round (the first round after initialization).

Fixed in 3.0.1