PR: Add fzf and fcitx-qt5 as conda requirements

Description of Changes
Part of https://github.com/spyder-ide/spyder/issues/21257
Issue(s) Resolved

Fixes #4120 (for conda installations using the conda-forge channel)
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: dalthviz

fcitx-qt5 is only on conda-forge channel?
https://anaconda.org/conda-forge/fcitx-qt5

Yes, that's correct. It should be available in the channel defaults once the Anaconda team adds packages for Spyder 6.


Naked Variable Interface

We have determined that it would be desirable that we have a lightweight variable interface which we can pass to Dask, and potentially use for ActiveStorage initialisation within Dask as well.
It would need the following methods, and only these:

shape,
__get_item__
'dtype`
size
ndim
get_chunk_index

To implement this we'd also need the filter pipeline and compression information as well as the b-tree cached in this object.
We need a route to get this from an h5netcdf object via it's ._h5ds link to a pyfive object, so we need that method on our pyfive datasetobject. How we get to this is a moot point, do we get to it via a method on the h5netcdf Variable object (if so, we'd need to implement support for doing it with h5py objects as well ... ) or we could do it as a method which is in pyfive.

Actually, it turns out that the obvious thing to do here is to make the new h5d.DatasetID class introduced as part of #4 cache all the relevant metadata. A partial implementation of that appears in e32a1b0.
It is partial, because it's become apparent that implementing references properly means potentially iterating through file metadata using visititems  while trying to some dereferencing.  The obvious solution is to keep a dummy dataset object here, which can deliver the offset address, but it's klunky.  For now we'll do that. But this note is by way of record why.

This is addressed by 2d88101.


Proposal: add option to show image when map's current zoom is out of layer's zoom range

Latest my pull request (#3505) has some trouble about cache when zoom out after zoom in.
       var zoom = 10;

       map = L.map('map', {
         maxZoom: 12,
         minZoom: 8,
         crs: L.CRS.Simple
       });
       map.setView(map.unproject([512, 512], zoom), zoom);
       // ...
       var layer1 = L.tileLayer('http://tiles.smellman.org/red/{z}/{x}_{y}.png', {
         attribution: 'Map data ©',
         continuousWorld: true,
         zIndex: 2,
         minZoom: 8,
         maxZoom: 11,
         opacity: 0.5
       }).addTo(map);
       var layer2 = L.tileLayer('http://tiles.smellman.org/takano32_test/{z}/{x}_{y}.png', {
         attribution: 'Map data ©',
         continuousWorld: true,
         zIndex: 1,
         minZoom: 11,
         maxZoom: 12
       }).addTo(map);

PR 3505 Problem demo
In this case, start at zoom 10 and zoom-in to 11 is ok. But zoom-out from 11 to 10 show zoom 11's cache.
I make a proposal to add option like a errorTileUrl to L.tileLayer.
       map = L.map('map', {
         maxZoom: 12,
         minZoom: 8,
         crs: L.CRS.Simple
       });
       // ...
       var layer1 = L.tileLayer('http://tiles.smellman.org/red/{z}/{x}_{y}.png', {
         attribution: 'Map data ©',
         continuousWorld: true,
         zIndex: 2,
         minZoom: 8,
         maxZoom: 11,
         opacity: 0.5,
         outOfZoomTileUrl: './empty.png'
       }).addTo(map);

outOfZoomTileUrl proposal demo
New option: outOfZoomTileUrl used when map's current zoom is out of layer's zoom range. In this case, empty.png will use instead of tile url when zoom level is 12. Also, browser don't get 404 errors by zoom level.

I see the problem, although I think it should probably be handled differently — e.g. by clearing the tile layer buffers when your going past the zoom range.

@IvanSanchez Thank you. Your patch is good for our products.


Code refactoring, clean-up, review, javadoc, and Maven site enhancements

Use this ticket to encapsulate all the clean-up and quality work.

Work done on this ticket was really for Issue#7. This ticket is closed.


Add Material UI Dialogs

PR Details
This PR updates the admin and contact support menus to use Material UI Dialogs instead of sub-pages for add and edit functionality.
How Has This Been Tested?
This has been tested locally using docker-compose. Unit tests for the webapp were verified to work using npm.
Types of changes

[ ] Defect fix (non-breaking change that fixes an issue)
[ X ] New feature (non-breaking change that adds functionality)
[ ] Breaking change (fix or feature that cause existing functionality to change)

Checklist:

[ ] My changes require new environment variables:

[ ] I have updated the docker-compose, K8s YAML, and all dependent deployment configuration files.

[ ] My changes require updates to the documentation:

[ ] I have updated the documentation accordingly.

[ X ] My changes require updates and/or additions to the unit tests:

[ X ] I have modified/added tests to cover my changes.

[ X ] All existing tests pass.

These changes look good, but I am seeing some failing unit tests:

Mind checking if the tests work for you now?

I resolved the merge conflicts and update the add/edit page headers to not display so the dialog box doesn't look out of place


IL2CPP call not supported

Using the latest release of Utf8Json,  in our Unity Game on iOS we get the following error :
NotSupportedException: /Users/builduser/buildslave/unity/build/External/il2cpp/il2cpp/libil2cpp/icalls/mscorlib/System.Reflection.Emit/AssemblyBuilder.cpp(20) : Unsupported internal call for IL2CPP:AssemblyBuilder::basic_init - System.Reflection.Emit is n

Utf8Json.Resolvers.DynamicObjectResolver..cctor ()
Rethrow as TypeInitializationException: The type initializer for 'Utf8Json.Resolvers.Internal.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateOriginal' threw an exception.
Utf8Json.Resolvers.DynamicObjectResolver..cctor ()
Rethrow as TypeInitializationException: The type initializer for 'Utf8Json.Resolvers.DynamicObjectResolver' threw an exception.
Rethrow as TypeInitializationException: The type initializer for 'Utf8Json.Resolvers.Internal.DefaultStandardResolver.InnerResolver' threw an exception.
Rethrow as TypeInitializationException: The type initializer for 'Utf8Json.Resolvers.Internal.DefaultStandardResolver' threw an exception.
Rethrow as TypeInitializationException: The type initializer for 'Utf8Json.Resolvers.StandardResolver' threw an exception.

This happens when calling Utf8Json.JsonSerializer.Serialize with a file stream and a data structure containing various element including a structured List.

for IL2CPP, you need to use pre-code-generation.
https://github.com/neuecc/Utf8Json#pre-code-generationunityxamarin-supports

Thanks ! I clearly missed that part. This process seems very heavy for iOS.
Anyway to avoid getter/setter being exported ? As it render automation impossible due to some property from UnityEngine not being exported properly because of missing namespace reference.

Can you show the target class, which is a simple example?

Sure. Here is a simple version that cause problem :
using System;
using UnityEngine;

namespace ReboundCG.Model
{
    [Serializable]
    public class Instruction
    {
        public string Id;

        public Sprite SpriteImage
        {
            get
            {
                Sprite sprite = Resources.Load<Sprite>(Id);
                if (sprite == null)
                    sprite = Resources.Load<Sprite>("Strat_Placeholder");
                return sprite;
            }
        }

        public string Name { get { return string.Format("ORDER{0}", Id); } }
    }
}

Ok, I have two patterns of solution.

use [IgnoreDataMember], it marks to do not serialize target property.
create custom external formatter(SpriteFormatter like Verctor2Formatter, etc.).

Thanks ! Exactly what I was looking for !


Parse info about all the available devices

I have parsed all the available devices
[{'name': 'Lid Switch', 'event': 'event0'}, {'name': 'Power Button', 'event': 'event1'}, {'name': 'Sleep Button', 'event': 'event2'}....{'name': 'Apple SPI Keyboard', 'event': 'event12'}, {'name': 'Apple SPI Touchpad', 'event': 'event13'}]

It is a list of dicts containing name of the device and the event filename.
Plan is to develop this into a console application which displays all the available devices. This can be done by listing the names of the devices from the dicts. When the user chooses a device from the list, we read the corresponding event file and write it into a log file.

@shreyamalviya Need you opinion on this. If you are okay with this, I will add more commits.


[1.0] Rename project folder to "config"

🛠 Changelog

This is to prepare for a single app named "tilavarauspalvelu"

🧪 Test plan

Automated tests
Check that Platta environments still work (should be fine)

🚧 Dependencies

None

🎫 Tickets

TILA-3547

Merged #1340 to this PR so that they can be merged to main together.

/ff


Document CockroachDB geospatial support for 20.2

This is a tracking issue for all of the work to document geospatial features for the 20.2 release.

[ ] #7223
[ ] #6677
[ ] #7567
[ ] #7580
[ ] #7572
[ ] #7571
[ ] #7570
[ ] #7582
[X] #5066

See also:

cockroachdb/cockroach#19313

@awoods187 FYI - using this as the tracking issue for all geospatial-related docs work.  As more issues accumulate I will edit the description to break the issue list into subsections, etc.

Let me know if you think we should make a geospatial docs project board or if that's overkill. I would like to see the meta-issue grouped above in priority similar to our meeting yesterday.

I think that's a great idea.  I will create a docs project board and take a shot at prioritizing the issues and send you a link to review.

FYI I'm punting on listing all the spatial issues here -- added a link to the project board instead.


Addressed configurator pending review comments

…r than generating multiple events. Added a list of events during event init.

Closing this pull request. Need to generate new PR because of conflicts.


updating Microsoft.AspNet.* packages from nuget to version 5.2.3 / 3.2.3

When I compile an asp.net mvc project having a reference for the System.Web.Mvc 5.2.3 assembly and a reference for the latest Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc assembly I get following warnings on build:
9>ASPNETCOMPILER : warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy
After the update the warnings are gone.

thanks


Add download resume and recover

Closes #70.
Ended up not needing the initial download size (using the -r option) from the mentioned issue. Adding -C - and attempting to recover if curl fails was enough to fix the mentioned issue.

Reopen if not resolved by v0.6.0.


feat(compiler-core): add onContextCreated option to CodegenOptions

I haven't added to  onContextCreated to CodegenOptions to avoid circular dependency as it is defined in options.ts and CodegenContext is  in codegen.ts.

This will only allow use of it when calling generate in TS - is that intentional? (which I think is ok since this should be considered internal API)

Yes, it was intentional.


Chore/339 update docs links

Closes #339

@ValentinTrinque Could you change the link in the About section to https://docs.fairground.vega.xyz/docs/vega-wallet/ - I don't seem to have the access rights.


Failed to install platoon on Win7,is it unable to work on win7?

Is platoon unable to work on win7?

It will not work. Ref


Oops! could not connect

whenever i try to connect it gives me this message:
Oops! could not connect
Failed to connect: could not start new connection: failed to start connection endpoint:
could not configure device: failed to create wg interface: failed to create TUN device myst: could not set MTU for tunnel: 'powerhell - command netsh interface ipv4 set subinterface "myst" mtu=1420 store=presistent': exit status 1 output: the win32 internal error "no process is on the other end of the pipe" 0xE9
someone advised me to download and install wireguard manually but doesn't work.
I have just downloaded the software on my pc today and this is my first time using it.
Windows 10 x64

Hello there!
Could you please try installing: https://www.wintun.net/
then, move the dll file to the directory of Mysterium dVPN.
After that, restart the app (in case issue persists)> make a backup and delete the app > Reinstall app

Hello there!
Could you please try installing: https://www.wintun.net/
then, move the dll file to the directory of Mysterium dVPN.
After that, restart the app (in case issue persists)> make a backup and delete the app > Reinstall app

What is the location of the mysterium dvpn directory?


Tile38 - Geofence around a Volume

The Tile38 website says (link):
A geofence is a virtual boundary that can detect when an object enters or exits the area. This boundary can be a radius or any search area format, such as a bounding box, GeoJSON object, etc.
Also, the Set documentation says that the Z coordinate is application-specific such as elevation, or a timestamp, etc..
What I was trying to figure out was a way to geofence a volume and not an area. Somehow giving it a GEOJSON with a height variable and tile38 distinguishes inside which zone it is based on height even if the latitude & longitude is the same for the 2 zones.
{          "type":"Feature",          "properties":{             "id":12345,             "name":"Zone1"          },          "geometry":{             "type":"MultiPolygon",             "coordinates":[                [[[                         144,                         -37,                         17                      ],                      [                         144,                         -38, 17                      ],                      [                         145,                         -37, 17                      ],                      [                         145,                         -38, 17                      ], [                         144,                         -37, 17.99                      ],                      [                         144,                         -38, 17.99                      ],                      [                         145,                         -37, 17.99                      ],                      [                         145,                         -38, 17.99                      ]                   ]]]          } }
{          "type":"Feature",          "properties":{             "id":12346,             "name":"Zone2"          },          "geometry":{             "type":"MultiPolygon",             "coordinates":[                [[[                         144,                         -37, 18                      ],                      [                         144,                         -38, 18                      ],                      [                         145,                         -37, 18                      ],                      [                         145,                         -38, 18                      ], [                         144,                         -37, 18.99                      ],                      [                         144,                         -38, 18.99                      ],                      [                         145,                         -37, 18.99                      ],                      [                         145,                         -38, 18.99                      ]                   ]]]          } }
For example, I run a command SET testing point1 POINT 144.5 37.5 17.5 it should give me an output that it is inside Zone 1 and outside Zone 2.
I have a workaround for this. I am Adding L18/ L17 as the prefix for the filename and my Tils38 querries on a webhook for that level. But would love to have the feature in Tile38.

Tile38 is designed for 2D geo coordinates [-180,-90] to [180,90]. The z coordinate is allowed for objects, but there are limitations for geofencing and queried, as you have discovered. It looks like you found a decent workaround. This is similar to how others are adding timestamps to objects, and later filtering on time ranges.
Another option is to use the FIELD option; SET testing obj1 FIELD zmin 18 FIELD zmax 19 ....  Then query using the WHERE option; INTERSECTS testing WHERE zmin 18 19 WHERE zmax 18 19 ...


Proxy /ident for helper mode

Tested locally in storybook

What endoint does helper use on /ident. I would like to be aware so we can consider other options in the future.

Can you do a new release? No one will be able to test the helper component I'm working on without this.

Working on it. Trying to iron out some build issues.
There is a big red X on https://github.com/fs-webdev/create-react-app/pull/102

finally figured it out. react-scripts 2.0.0 was released.


add ADR Remove Semver From the API

Checklist

[ ] You added tests to cover the change
[ ] mvn clean install build and test completes
[ ] You changed or added to the documentation

Codecov Report

Merging #6 (f5fb871) into main (2cc4ea0) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main       #6   +/-   ##
=========================================
  Coverage     65.86%   65.86%
  Complexity      286      286
=========================================
  Files           108      108
  Lines          2780     2780
  Branches        446      446
=========================================
  Hits           1831     1831
  Misses          708      708
  Partials        241      241

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 2cc4ea0...f5fb871. Read the comment docs.


docs(esl-animate): esl-animate documentation

Closes #1279

:tada: This PR is included in version 4.8.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Connection on demand for DML clauses

Fixes #1683

This now looks good to me.

Looks good to me.


Copy world doesn't work with fixed trips

Bug description
When copying the world of the ABM, persons are copied in order of appearance in the locations. That means that person IDs change but the order of the person vector may change. Since trips are accessed via
auto& person      = m_persons[trip.person_id];
this is an issue and leads to an error.
This can be either resolved by keeping the order of the persons during a copy operation on the world OR by accessing people not with array indices but only by their unique person ID.
Version
Mac
To reproduce
Go to branch abm_paper_test_bs.
Use the code
// Create the sampled simulation with start time t0.
auto world = mio::abm::World(num_age_groups);
create_sampled_world(world, input_dir, t0, max_num_persons);
auto world_copy = world;
// auto world_copy = world; // COPY CONSTRUCTOR DOESN'T WORK. LOCATIONS AREN'T ASSIGNED!
auto sim = mio::abm::Simulation(t0, std::move(world_copy));

in lines 897 ff.
Relevant log output
Assertion failed: (index != INVALID_LOCATION_INDEX && "unexpected error."), function find_location, file world.cpp, line 191.

Add any relevant information, e.g. used compiler, screenshots.
No response
Checklist

[X] Attached labels, especially loc:: or model:: labels.
[X] Linked to project

@reneSchm fixed it with the following code:
World(const World& other)         : parameters(other.parameters)         , m_persons()         , m_locations()         , m_trip_list(other.m_trip_list)         , m_cemetery_id(add_location(LocationType::Cemetery))     {         for (auto& origin_loc : other.get_locations()) {             if (origin_loc.get_type() != LocationType::Cemetery) {                 // Copy a location                 m_locations.emplace_back(                     std::make_unique<Location>(origin_loc.copy_location_without_persons(parameters.get_num_groups())));             }         }         for (auto& person : other.get_persons()) {             // add all persons in order. copy_person also adds them to their respective location             auto& origin_loc =                 get_individualized_location({person.get_location().get_index(), person.get_location().get_type()});             m_persons.push_back(std::make_unique<Person>(person.copy_person(origin_loc)));         }         use_migration_rules(other.m_use_migration_rules);     }
It is live on the branch abm_paper_test_bs


variables are not used and cause errors

Pull Request Checklist
Is this in reference to an existing issue?
I created Issue #72
General

[ ] Update Changelog following the conventions laid out on Our CHANGELOG Guidelines

[ ] Update README with any necessary configuration snippets

[ ] Binstubs are created if needed

[ ] RuboCop passes

[ ] Existing tests pass

New Plugins

[ ] Tests

[ ] Add the plugin to the README

[ ] Does it have a complete header as outlined here

Purpose
Known Compatibility Issues

nevermind


Fixes map restarting bug

Here's a video showing the bug with restarting a map. You can see the notes persist between restart, and also how it doesn't start to spawn note until you reach the playback_position where you initiated the restart.
https://user-images.githubusercontent.com/216870/114287212-39489600-9a33-11eb-9f73-07d663c3fb51.mp4
Here's a video showing the behavior after the fix.
https://user-images.githubusercontent.com/216870/114287253-96444c00-9a33-11eb-92e1-11c25062981e.mp4

Nice; Thanks a lot for the fix!


Support vision

@JanCong if you get this up to date I think it may be ready to merge.

@seawolflin is this ever going to be merged?

@seawolflin it works great, i also switched to rxjava3 instead of 2 on this repo if someone needs it.
Basically is your repo with rxjava3 retrofit
https://github.com/Vavaste/openai-java-rxjava3


Return content of /index.html instead of 404

The PR that implements the feature request detailed in https://github.com/koute/cargo-web/issues/100.
I don't think it is exactly clean enough to merge in its current state, but I have tested it and observed that it worked as intended, returning the index.html file instead of a 404 response when a requested file path doesn't exist.
This would allow a yew application with routing to return to a routed page when a page refresh is performed, improving developer ergonomics.

Thanks for the PR!
Hmm... I think it would be better to make this a little more configurable. Say, instead of this:
index-on-404 = true

something like this would be more elegant and flexible:
404-path = "/index.html"

Also, in cmd_start instead of adding extra code into the else block you could do something like this:
+ let mut artifact = last_build.deployment.get_by_url( &path );
+ if artifact.is_none() {
+     if let Some( not_found_path ) = project.404_path() {
+         artifact = last_build.deployment.get_by_url( &not_found_path )
+     }
+ }
+ if let Some( mut artifact ) = artifact {
- if let Some( mut artifact ) = last_build.deployment.get_by_url(&path) {

I've made the requested changes.
I have observed some strange behavior as the result of supporting the different routes.
Lets assume that I attempt to do the following with 404-path = "/index.html" set in my Web.toml, and there isn't a real index.html provided in a /static directory.
Successful load

I attempt to get http://[::1]:8000/b.
The server can't find /b so it returns index.html
index.html causes my_app.js to load.
The server finds my_app.js and app bootstraping is able to occur.

Failed load

I attempt to get http://[::1]:8000/b/a.
The server can't find /b/a so it returns index.html
index.html causes b/my_app.js to load.
The server can't find b/my_app.js and returns the content of index.html again.
What should be a script is just the content of the index.html and it fails to execute, stopping the WASM bootstrapping process.

So it can be seen that this PR allows the app to start from any 1-path-segment route, but any more segments breaks the way the browser loads subsequent resources with the current setup.

This is the html returned when http://[::1]:8000/b/a is requested:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1" name="viewport" />
    <script>
        var Module = {};
        var __cargo_web = {};
        Object.defineProperty( Module, 'canvas', {
            get: function() {
                if( __cargo_web.canvas ) {
                    return __cargo_web.canvas;
                }

                var canvas = document.createElement( 'canvas' );
                document.querySelector( 'body' ).appendChild( canvas );
                __cargo_web.canvas = canvas;

                return canvas;
            }
        });
    </script>
</head>
<body>
    <script src="my_app.js"></script>
</body>
</html>

I think this problem can be fixed by changing this line to make the browser fetch it from an absolute location:
<body>
    <script src="/my_app.js"></script> <!-- Absolute path now -->
</body>

Sounds good to me!

I think aside from the small question above, this should be ready for another review.

@hgzimmerman Sorry for the delay! Looks good to me, thanks a lot! :+1: I'll merge it in once we get the latest nightly stabilized.

@koute are there any remaining blockers before this can be merged?

I'm around for the near future if you want me to get this in a mergable state again.

@koute will be nice to merge this feature. Now I have to execute 4 commands with cargo watch to run my project when with this PR only I would need to use cargo web. @hgzimmerman told you that he can get this in a mergable state.

With the time passed since this was started, I no longer plan to get this feature merged. Someone else is welcome to take up the mantle if they so choose.


Setup Airbrake for your Python application

Installation
pybrake requires Python 3.6+.
pip install -U pybrake

Configuration
(You can find your project ID and API key in your project's settings)
import pybrake

notifier = pybrake.Notifier(project_id=<Your project ID>,
                            project_key='<Your project API KEY>',
                            environment='production')

Send a test error
To test that you've installed Airbrake correctly, try triggering a test error.
try:
    raise ValueError('hello')
except Exception as err:
    notifier.notify(err)

Full documentation
For more information please visit our official GitHub repo.

ok


Feature request: autoclose xml

It would be great if the plugin could autoclose xml tags as well.

I have created a fork of this package that includes autoclosing xml tags, which is itself is now a package in Atom, seeing as this one is no longer being maintained.
https://atom.io/packages/autoclose-html-plus

Thanks!


Enhancement Request: Set the value of the editor using markdown

The way I picture this working is a function being added to the editor object like editor.setValue(markdownString).
This would internally check editor.mode and then either just insert the markdownString into the editor (if in markdown mode) or run editor.parseMarkdown(markdownString) and then either render or insert the resulting HTML string into the editor (if in html or wysiwyg mode respectively).
It also wouldn't hurt to make this an option to pass into the woofmark() function with a name like option.initialValue or something.
P.S. Thanks for this great extensible library.

I use a command that update the chunk with the new value:
var newString = 'new **markdown** value';
editor.runCommand(function(chunks, mode) {
  chunks.after='';
  if (mode == 'html') {
    chunks.before = editor.parseMarkdown(newString);
  } else {
    chunks.before=newString;
  }
});

Perhaps this should be integrated into the editor.value() method -- that way value('new **markdown** value') could be used as a setter and a getter. I would be happy to open a pull request for this as it seems a very common thing to want to do and an easy addition.

Sounds good to me

I seemed to be able to make a simpler fix which added a setter ability to the value() method; see #27.

@jywarren Awesome, I'll close this when that gets merged, thank you for your efforts!

4.1.0


Preload images

Hi!
FastImage.preload works fine on IOS, but doesn't work on Android.
I have tried on Pixel 2 XL (Android 10) and Redme 4X (Android 6.0.1).
react-native-fast-image - "^8.1.5"
react-native - "0.61.2"
@DylanVann maybe I missed some additional steps for running it on Android?

"react-native": "0.60.5",
"react-native-fast-image": "^8.1.5"
I use
FastImage.preload([{ uri: 'https://xxxxxxx./1.png' }, { uri: 'https://xxxxxxx./1.png' }])
but the images are loading not ahead of time
I expect they appear immediately, but they are loading (like they are not preloaded)
<FastImage
            style={[styles.defaultIcon, iconStyle]}
            source={{
              uri: imageUri, // 'https://xxxxxxx./1.png'
              priority: FastImage.priority.high,
            }}
            resizeMode={FastImage.resizeMode.contain}
            onLoad={this.onLoad}
          />

Please, tell me what I am doing wrong?

@vitto-moz
yes,  preload method is not Promise, you can see it in the interface
interface FastImageStaticProperties {
    resizeMode: typeof resizeMode;
    priority: typeof priority;
    cacheControl: typeof cacheControl;
    preload: (sources: Source[]) => void;
}

As option you can try to simulate some delay before rendering the images, but it's tricky, you never know when all images will be loaded

there is my case:
I have the app screen, not the main one (1), which appears right after the app started, but those (2) I should switch to from the main one (1).
as a part of the initialization I use
FastImage.preload([{ uri: 'https://xxxxxxx./1.png' }, { uri: 'https://xxxxxxx./1.png' }])
then after a 1 minute, I'm switching to the screen, where I use these images (guess the minute should be enough). But the images behave like they loading the first time.

@vitto-moz Is it the same behaviour on IOS and Android ?

@avet-m  we have an android only app, I will try to make the ios build and let you know

Same here.
I'm using Image.getSize() to preload/cache images for now.

any updates on it? it works perfectly on iOS but it's like no any preload effect for Android

Same issue for me, did anyone solve this problem? Thanks

Same here.
I'm using Image.getSize() to preload/cache images for now.

Doesn't seem to work on iOS as using the only-if-cached option does not show the image and the the queryCache results are still empty.

It works for me.
import FastImage from 'react-native-fast-image'
import {createImageProgress} from 'react-native-image-progress'
import Progress from 'react-native-progress/Bar'

const Image = createImageProgress(FastImage);

<Image
  source={{ uri: 'http://loremflickr.com/640/480/dog' }}
  indicator={Progress.Pie}
  indicatorProps={{
    size: 80,
    borderWidth: 0,
    color: 'rgba(150, 150, 150, 1)',
    unfilledColor: 'rgba(200, 200, 200, 0.2)'
  }}
  style={{
    width: 320,
    height: 240,
  }}
 renderError={() => {
    return <PreloadView />
  }}/>

any updates?

Any updates?

Still reproduce on react-native 0.65.1 and react-native-fast-image v8.5.11
Any news on android?
A related issue with the fix in 2018 https://github.com/DylanVann/react-native-fast-image/issues/121#issuecomment-361808157

Damn need it :'(

Kommt vielleicht etwas spät, aber zwischendurch läuft das auf Android und auf IOS,
Das einzige Problem, das ich mit FastImage Preload habe, ist das es ein Limit für die Preloads gibt.

Maybe a bit late, but in the meantime it's running on Android and IOS,
The only problem I have with FastImage Preload is that there is a limit to the preloads. I have to display the product images of a market and preload does not manage to cash all images.

I switched to expo-images

any news on this ?

This improved preload for me. Based on https://github.com/bumptech/glide/issues/543
react-native-fast-image+8.6.3.patch


Issue 75

work in progress
This PR addresses #75.

The implementation and tests are mostly copy/pasting from your int example. While the single test included passes, I want to add a bit more. To do so, I'd like to do some test refactoring to use table driven tests. Additionally, I was going to add a docker-compose file to make it easy for people to get a local demo up easily (and also to have something to test against). That is also a WIP. I thought I'd check-in before going to deep.

oh, just realized my master is behind...more to come!

I think docker-compose is unnecessary.
Please create an issue before you start working on PR.
Also isolate problems you are trying to solve.
Float32 might not work due to json limitation but you can try.

ah i see that you already started an implementation. i'll close this and revisit your skipped test. now that my master is up to date i'll make a new PR from there.


Fix doc of LinearOperator

Should we fix the signature, too?
-    """Common interface for performing matrix vector products
+    """LinearOperator(shape, matvec, rmatvec=None, matmat=None, dtype=None, \
+rmatmat=None)
+
+    Common interface for performing matrix vector products

SciPy doc shows the signature of __new__(*args, **kwargs)

https://cupy--4441.org.readthedocs.build/en/4441/reference/generated/cupyx.scipy.sparse.linalg.LinearOperator.html

Jenkins, test this please.

Jenkins CI test (for commit c424ee4ae0333bd6933ec46e0c8f8edb318c4094, target branch master) succeeded!

LGTM.


PowerToys not working because PowerToys.PowerLauncher.exe - Bad Image

Microsoft PowerToys version
"0.57.0"
Running as admin

[X] Yes

Area(s) with issue?
General
Steps to reproduce

Open PowerToys (preview) app from Start Menu using Run as Administrator.
Press Yes in User Account Control Dialog.
Then, error window show in the screen with message PowerToys.PowerLauncher.exe - Bad Image

PowerToysReport_2022-04-05-15-26-25.zip

✔ Expected Behavior
No response
❌ Actual Behavior
No response
Other Software
No response

it worked. Thank You

Hi, It looks like a botched .net 6.0.3 install. Could you please see if repairing (or uninstalling/installing) the .net framework 6.0.3 desktop runtime fixes this? Please remember to restart as well and let us know if it works for you. https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.3-windows-x64-installer
/needinfo


[vulkan] Add support for VK_EXT_subgroup_size_control

This commit plumbs through support for VK_EXT_subgroup_size_control in Vulkan HAL driver. The extension is marked as optional and requested when available. SPIR-V executable FlatBuffer gains a field to encode the requested subgroup size from CodeGen, 0 meaning no requirement.
This is to be used in a later commit to enable selecting wave32 mode for AMD RDNA architectures.

FYI this missed some cases that are important to check in the future; specifically when no subgroup infos are needed the resulting vector will not be emitted and the runtime needs to handle that case (currently there's a null access violation), and more importantly no additional verification was added to the runtime side to ensure the provided subgroup sizes have coverage of the entire export table (so there's currently a buffer overrun). Fixing as part of #11287 but we'll want to be a bit more thorough when changing these files in the future :)

Oops, sorry. Thanks for fixing it! Noted, I'll be more cautious next time. :)


Could you please help me with how to modify the default_font setting?

Code Example:
var _string = "[fnt1]Juju is the best {_value},he is powerful"
{_value} will be replaced with "[fnt2]mage[/f]" during actual gameplay.
The expected display should be:
"[fnt1]Juju is the best [fnt2]mage[/f],he is powerful"
However, the actual display results in:
"[fnt1]Juju is the best [fnt2]mage[/f]，? ? ?"
This issue occurs because [fnt1] is a Chinese font, and __scribble_state.__default_font does not support Chinese.
What I have in mind is that I might need to modify __scribble_state.__default_font = "fnt1" before rendering the string, but I'm not sure whether this is possible.
I’ve had difficulty finding similar information online, so I’m afraid I’m bothering you with this.
Or should I modify the settings elsewhere?
I apologize for the inconvenience.

You can use scribble_font_set_default() to set the default font.
In your case, instead of using [/f] I'd use [fnt1].

Thank you so much, Juju.
Especially for your suggestion ‘instead of using [/f] I'd use [fnt1],’ which is something I could have thought of. However, when I ran into problems, my thinking got stuck in a dead end, and I couldn't get out of the maze.
I really appreciate your support.
By studying Scribble's functions, I made my own editor, and I'm using it to remake my game.
I'll send you good news later.

Glad I could help.


cmd/gd: fix version error log

Fix for a minor issue with error logs about missing versions (caught by go vet).

Thanks!


iOS Simulator XCode build (Fluter Add to App) stopped working: fatal error: 'Flutter/Flutter.h' file not found

Steps to Reproduce

Build the flutter submodule using "flutter build ios --no-codesign"
Run pod install in iOS project folder
Build for simulator on XCode 12.4

Expected results:
Application should build for simulator. (Confirmed that it works when deploying to physical device from XCode)
Actual results:
XCode build results in error inside webview_flutter pod target:
In file included from /Users/christopher/.pub-cache/hosted/pub.dartlang.org/webview_flutter-1.0.7/ios/Classes/FLTCookieManager.m:5:
/Users/christopher/.pub-cache/hosted/pub.dartlang.org/webview_flutter-1.0.7/ios/Classes/FLTCookieManager.h:5:9: fatal error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
        ^~~~~~~~~~~~~~~~~~~
1 error generated.

Logs

[✓] Flutter (Channel beta, 1.26.0-17.8.pre, on macOS 11.1 20C69 darwin-x64, locale en-US)
• Flutter version 1.26.0-17.8.pre at /Users/christopher/gitrepos/flutter
• Framework revision 044f2cf560 (6 days ago), 2021-02-24 13:02:05 -0800
• Engine revision 042c82b02c
• Dart version 2.12.0 (build 2.12.0-259.16.beta)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/christopher/Library/Android/sdk
• Platform android-29, build-tools 29.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.4, Build version 12D4e
• CocoaPods version 1.10.1
[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] Connected device (1 available)
• Stephen’s iPhone (mobile) • e277a9b432a8b945e5ed2a372969883c8a8a88b4 • ios • iOS 14.4
• No issues found!

@cf-lam
Can you provide ios/podfile ? Try to integrate below snippet in it:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

Also, provide flutter run --verbose and attach the entire log in a text file.
Alternatively, try below commands and see if it helps or shows same error:
$ rm ios/Flutter/Flutter.podspec
$ flutter clean

@cf-lam
Can you provide ios/podfile ? Try to integrate below snippet in it:

Before you try adding anything, please attach your existing Podfile.  Have you made any manual changes to it?

Here's the full build log corresponding to the Podfile above. Excluding arm64 architecture at Pod project level resulted in a ton of Swift linking errors. Excluding arm64 architecture for all the other flutter pod targets resulted in other linker errors.
Build nOCD-QA_2021-03-10T16-47-36.txt

It's failing compiling a webview_flutter x86 file because the linker flags aren't right.  It's -F/Users/christopher/gitrepos/nocd-ios-client-2/my_flutter/.ios/Flutter/engine but it needs to be -F/Users/christopher/gitrepos/nocd-ios-client-2/my_flutter/.ios/Flutter/engine/Flutter.xcframework/ios-x86_64-simulator/
CocoaPods can't find the arm64 simulator Flutter.xcframework slice (because it's not supported):
warning: [CP] Unable to find matching .xcframework slice in '/Users/christopher/gitrepos/nocd-ios-client-2/Pods/../my_flutter/.ios/Flutter/engine/Flutter.xcframework Flutter framework ios-x86_64-simulator ios-armv7_arm64' for the current build architectures (arm64 x86_64).

and so it's not setting up the linker flags correctly.  You need to exclude arm64 for sdk=iphonesimulator* for ALL targets, including your app target as described in https://flutter.dev/docs/development/add-to-app/ios/project-setup#apple-silicon-arm64-macs.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Upgrade to v4 aws provider

what

[x] Upgrade to v4 aws provider
[ ] All tests pass

[x] Current tests pass
[ ] Tests do not check website inputs. The website_inputs is unavailable in the tests.
[ ] Tests do not check cors. The cors_rule_inputs is available but unused.

[ ] Doc updates

[ ] Do we need a migration doc ?
[ ] Should we reference pinning provider versions outside of this module to ~> 3.0 and to use version 0.47.0 of this module ?

[ ] Should we upgrade current user to the module in this PR to see how difficult it is ? The v4 upgrade guide linked below have the import statements available per resource

why

Team decision has been to not pin modules to major versions so better to role forward
Many errors with v4 in cloudposse/s3-bucket module

│ Error: Unsupported attribute
│
│   on .terraform-mdev/modules/s3_bucket/main.tf line 166, in resource "aws_s3_bucket" "default":
│  166:         for_each = local.s3_replication_rules == null ? [] : local.s3_replication_rules
│
│ This object does not have an attribute named "s3_replication_rules".

references

Closes https://github.com/cloudposse/terraform-aws-s3-bucket/issues/132
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/version-4-upgrade
https://github.com/hashicorp/terraform-provider-aws/releases/tag/v4.0.0
Versions

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket
https://registry.terraform.io/providers/hashicorp/aws/3.74.1/docs/resources/s3_bucket

notes

grants.permissions is now grant.permission and permission no longer takes a list(string) but a string as per the terraform resource (doc)
lifecycle_rules now requires an id for each rule (doc)
The aws_iam_policy_document data source has deprecated the policy input and recommends using source_policy_documents instead (doc)
Versioning must be set before replication

Error: error deleting S3 bucket versioning (eg-test-s3-replication-test-40355): InvalidBucketState: A replication configuration is present on this bucket, so you cannot change the versioning state. To change the versioning state, first delete the replication configuration.

/test all

/test all

/test all

/test all

/test all

/test test/terratest

/test all

/test all

/test all

LGTM, Lots of changes, but this is a major version update

this module remain in review for too long.. it worked for me when i used commit hash of the this pull request commit. so I will be using it this way until it go to master:
module "s3-bucket" {
  # version     = "0.47.0"
  # source      = "cloudposse/s3-bucket/aws"
  source = "github.com/cloudposse/terraform-aws-s3-bucket?ref=f4d675faafa1a17611d7d965b1a4ecac195171df"
  ...
}

/test all

/test all


Aligning with UTransport::register_listener() and UTransport::unregister_listener() with UListener (this time using instance equality)

Hey there :wave:
Based on #65, I took my (third!) shot at aligning our UTransport trait closer to the spec.
In particular, I have removed the requirement for the implementation to explicitly manage listeners using String identifiers, instead leaning on concrete implementations of the UListener trait.
This change is to align with registerListener() and unregisterListener() by bringing in a UListener trait.
As you read the code, you can see that there was a need for a new wrapper type called ListenerWrapper around UListener in order to allow us to disambiguate between specific instances of UListener. The wrapper is also hashable to make it easy to use within containers that require that such as HashSet and HashMap. The ListenerWrapper need only be used in the up-client-foo-rust implementation. uEs just impl UListener.
Largely resolves the issues I had with the first and second attempts over in #67 and #68 thanks to that wrapper type.
I'm looking to see how this would impact current and future implementations of UTransport for UPClients. Feedback would be great from @AnotherDaniel, @sophokles73, @evshary in particular :slightly_smiling_face:
I migrated up-client-zenoh-rust over to using UListener to see how it'd work out if you want to see real-world usage.

@sophokles73, @evshary -- could you folks take a look at this one?
I got the PR for up-client-zenoh-rust into better shape too, if you're interested in seeing what this looks like in practice.

OK, took all your feedback @sophokles73 except for a couple I had some comments on -- can you take a look again?

@sophokles73 -- any other open concerns on this one other than the Hash? :slightly_smiling_face:

For the time being, it seems to be desirable to be able to use UUri as a key at all, which your implementation allows us to do.

Yup, it would be a big help.

I am still not very happy with the overall ambiguity of the UUri type, but that is a problem out of scope of this PR.

I'd be interested in hearing more about this in an issue on up-spec :slightly_smiling_face:

All in all, this LGTM but I would like to check if this approach works with some of my (private) MQTT transport code before merging, though.

Sounds like a plan! Can you ping on here with your further feedback?

@sophokles73 Updated based on your latest feedback :+1:

@PLeVasseur I have played around with the UListener trait in the context of my MQTT transport implementation. I did not run into any problems per se, but I have to admit that I did like the possibility to pass in a closure instead of a Trait object.
Did @evshary test this successfully in up-client-zenoh?

@PLeVasseur I have played around with the UListener trait in the context of my MQTT transport implementation.

:hugs:

I did not run into any problems per se, but I have to admit that I did like the possibility to pass in a closure instead of a Trait object.

I agree that passing in a closure does lend itself to more flexibility. On the other hand, I found that if I have a closure which must use some state, this can be clunky, whereas it gets easier to handle using the trait object.
No free lunch, etc :slightly_smiling_face:

Did @evshary test this successfully in up-client-zenoh?

I'm not sure. I ended up doing the leg-work of transitioning up-client-zenoh-rust over to using the UListener trait, but that PR is going to need to be rebased after @evshary's PR goes in updating to 1.5.7

Did @evshary test this successfully in up-client-zenoh?

Not yet. I can do the test on that.

Quick but not rigorous test, it works in UPClientZenoh.

Could you link that here? I'm curious to read :smile:

So, are we good to merge or do you want to add doc comments to the trait functions first, @PLeVasseur?

So, are we good to merge or do you want to add doc comments to the trait functions first, @PLeVasseur?

IMHO it makes sense for me to:

make the trait async and make both on_receive() and on_error() be async functions
add a bit more doc comments above them both clarifying that these functions should finish "fast" and if you have a sync or blocking operation to pass that off within the function

WDYT?

Wondering if I've run afoul of something in our CI.
I'm getting an error like this in the latest build:
2024-04-03T19:09:27.0641482Z 2024-04-03 19:09:27 [ERROR] failed to fetch crates: error: duplicate key `async-std` in table `dev-dependencies`
2024-04-03T19:09:27.0643140Z   --> Cargo.toml:65:1
2024-04-03T19:09:27.0643756Z    |
2024-04-03T19:09:27.0644472Z 65 | async-std = { version = "1.12.0" }
2024-04-03T19:09:27.0645414Z    | ^
2024-04-03T19:09:27.0646006Z    |
2024-04-03T19:09:27.0646518Z
2024-04-03T19:09:29.4203855Z 2024-04-03 19:09:27 [ERROR] `cargo metadata` exited with an error: error: duplicate key `async-std` in table `dev-dependencies`
2024-04-03T19:09:29.4205599Z   --> Cargo.toml:65:1
2024-04-03T19:09:29.4206246Z    |
2024-04-03T19:09:29.4206668Z 65 | async-std = { version = "1.12.0" }
2024-04-03T19:09:29.4207271Z    | ^
2024-04-03T19:09:29.4207686Z    |
2024-04-03T19:09:29.4207972Z
2024-04-03T19:09:29.4225586Z ##[error]Process completed with exit code 1.

From what I can tell though, I don't see async-std duplicated in the Cargo.toml.
Huh... any thoughts?

@sophokles73 -- made some updates, could you take a look now? :slightly_smiling_face:

updated UListener to be an async trait
updated tests to comply with 1.
added doc comments for on_receive() and on_error() to clarify these should return immediately
added a couple of doc examples of impls of UListener

@sophokles73 -- Updated based on your feedback. Could you take a look again?

@PLeVasseur would you like to squash this, maybe into two commits, the first one for updating the deps and the second one for the rest?

@PLeVasseur would you like to squash this, maybe into two commits, the first one for updating the deps and the second one for the rest?

I like this idea. I need to get better at making conscientious commits when merging PRs. Was a bit too hacky :slightly_smiling_face:
Went ahead and did this.


Write documentation on contributing

Via gitbook, add a new page on how to contribute. How to get in contact, how to help with issues, etc.

Done - https://adaptcms.gitbooks.io/adaptcms/content/get-involved/contributing.html


Account delete is not allowing when master keys gets updated/changed

Environment info

NooBaa Version: 5.15.3
Platform: standalone

Actual behavior
noobaa-cli account delete --name test 2>/dev/null
{
"error": {
"code": "InternalError",
"message": "The server encountered an internal error. Please retry the request",
"detail": "Error: master key id is missing in master_keys_by_id\n    at NCMasterKeysManager.decryptSync (/usr/local/noobaa-core/src/manage_nsfs/nc_master_key_manager.js:305:59)\n    at NCMasterKeysManager.decrypt (/usr/local/noobaa-core/src/manage_nsfs/nc_master_key_manager.js:294:21)\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async /usr/local/noobaa-core/src/manage_nsfs/nc_master_key_manager.js:335:29\n    at async Promise.all (index 0)\n    at async NCMasterKeysManager.decrypt_access_keys (/usr/local/noobaa-core/src/manage_nsfs/nc_master_key_manager.js:333:39)\n    at async fetch_existing_account_data (/usr/local/noobaa-core/src/cmd/manage_nsfs.js:416:30)\n    at async fetch_account_data (/usr/local/noobaa-core/src/cmd/manage_nsfs.js:385:16)\n    at async account_management (/usr/local/noobaa-core/src/cmd/manage_nsfs.js:336:18)\n    at async main (/usr/local/noobaa-core/src/cmd/manage_nsfs.js:112:13)"
}
}
Expected behavior

Steps to reproduce

More information - Screenshots / Logs / Other output

Thanks @ramya-c3 for opening this issue - A fix PR https://github.com/noobaa/noobaa-core/pull/8090 is under code review.


[Question]Timeout when join the node into the openyurt cluster.

What happened:
I am a new one to use openyurt. When I use yurtctl  to  install the openyurt cluster, I fail to join the node into the master.
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Here is the command I used
./yurtctl join <IP_ADDRESS>:6443 --token z5r7g5.mlfntm1tke1vrmwh     --discovery-token-ca-cert-hash sha256:7d565f0f1931b8db5106849abd55313b416bcf1c2be55e2aafdaa2d6fcd23bd2  --node-type=edge-node

Here is the log
W1109 23:22:19.558285   29375 join.go:213] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
Error: error execution phase initialize: couldn't validate the identity of the API Server: Get https://<IP_ADDRESS>:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Also, the token is not expired. Here is the commnad and the output:
kubeadm token list
TOKEN                     TTL         EXPIRES                     USAGES                   DESCRIPTION                                                EXTRA GROUPS
z5r7g5.mlfntm1tke1vrmwh   13h         2021-11-10T22:56:29+08:00   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token

There is the pod run in the master node :
kubectl get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   controlplane-slave204                      4/4     Running   0          10h
kube-system   coredns-546565776c-mw2l9                   1/1     Running   0          10h
kube-system   coredns-546565776c-q89tx                   1/1     Running   0          10h
kube-system   kube-flannel-ds-55jl9                      1/1     Running   0          10h
kube-system   kube-proxy-xg78z                           1/1     Running   0          10h
kube-system   yurt-app-manager-75b7f76546-59799          1/1     Running   0          10h
kube-system   yurt-app-manager-75b7f76546-js5b5          1/1     Running   0          10h
kube-system   yurt-controller-manager-697877d548-fwq76   1/1     Running   0          10h
kube-system   yurt-tunnel-server-65db8dc68c-kscd2        1/1     Running   0          10h

Thanks a lot.
Environment:

OpenYurt version:
Kubernetes version (use kubectl version):
OS (e.g: cat /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

others
/kind question

@littletiger123 Thank you for raising issue.
@zyjhtangtang Would you be able to rely this issue?
/assign @zyjhtangtang

You can execute this command on the edge node to test the network. curl -k https://<IP_ADDRESS>:6443/healthz @littletiger123

You can execute this command on the edge node to test the network. curl -k https://<IP_ADDRESS>:6443/healthz @littletiger123

Hi，it may not work
curl -k https://<IP_ADDRESS>:6443/healthz
curl: (56) Proxy CONNECT aborted

I  used the command curl  -k https://<IP_ADDRESS>:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s it worked on the master while not working on the edge.
Also, I tried telnet <IP_ADDRESS> 6443 , it worked on the edge.

I have fixed the problem, thanks. Maybe we can improve the yurtctl join command to add the argument which is the path of the kubernetes-node-linux-amd64.tar.gz.

I have fixed the problem, thanks. Maybe we can improve the yurtctl join command to add the argument which is the path of the kubernetes-node-linux-amd64.tar.gz.

@littletiger123 would you like to introduce the detail info about yurtctl join improvement?

I have fixed the problem, thanks. Maybe we can improve the yurtctl join command to add the argument which is the path of the kubernetes-node-linux-amd64.tar.gz.

@littletiger123 would you like to introduce the detail info about yurtctl join improvement?

I tried many times for the command. It always download the kubernetes-node-linux-amd64.tar.gz. Maybe we can download once and we can use the argument added for the local path of the kubernetes-node-linux-amd64.tar.gz.

I have fixed the problem, thanks. Maybe we can improve the yurtctl join command to add the argument which is the path of the kubernetes-node-linux-amd64.tar.gz.

@littletiger123 would you like to introduce the detail info about yurtctl join improvement?

I tried many times for the command. It always download the kubernetes-node-linux-amd64.tar.gz. Maybe we can download once and we can use the argument added for the local path of the kubernetes-node-linux-amd64.tar.gz.

I have fixed the problem, thanks. Maybe we can improve the yurtctl join command to add the argument which is the path of the kubernetes-node-linux-amd64.tar.gz.

@littletiger123 would you like to introduce the detail info about yurtctl join improvement?

I tried many times for the command. It always download the kubernetes-node-linux-amd64.tar.gz. Maybe we can download once and we can use the argument added for the local path of the kubernetes-node-linux-amd64.tar.gz.

@littletiger123 Thanks for feedback. but how to verify local kubernetes-node-linux-amd64.tar.gz is the newest file?


Extend blog data with an image

Since the configuration for using images with Gatsby + Netlify CMS is not easy or straightforward, I think it would help a lot of people if the example included the use of images.
For example I had my assets folder combined with my markdown files in the root of my project, but for the admin interface to display the images the original (uploaded) images files need to be located in the gatsby static folder otherwise they can't be served. But this also means you need to configure the static folder to be picked up by the gatsby-source-filesystem plugin. Things like that...

Definitely - are you up for opening a PR for that? Happy to support for sure.

@erquhart I don't think I'll manage to create a PR any time soon

I'll leave it open in case someone is up to it 👍 Thanks for raising!


Document usage of CMIP6 Object Store - via terminal and Notebooks

Document usage of CMIP6 Object Store - via terminal and Notebooks

identify users: Met Office, Jeremy, CEH, BAS,

Turing Inst/BAS: Scott Hosking has expressed interest

advertise to users
get user feedback

NOTE: JASMIN Cloud can see Caringo, but not external clients. Groups on DataLabs could use their own PANGEO stack to talk directly to the CMIP6 store.

We have a notebook: https://github.com/cedadev/cmip6-object-store/tree/master/notebooks


Set minimum python version to 3.7

Close #252

Thanks for updating this! The PR looks ready to merge. I pushed one commit with a minor update to the installation guide, and removing an empty file that seemed unused.


stopwatch.py

I can add the stopwatch GUI  program  in the mini-project folder  this program can help to  now GUI program

@basheerali  contribute to https://github.com/Ishaan28malik/Get-Dev-Resources instead


Suggestion for solution #476.

Reads files inside data/ and makes data available in .Site.Data. May need some refactoring.

Hei og takk for sist!
No har ein også #748 -- men løysinga di er både enkel og fleksibel mht. format. Det blir kanskje heller eit spørsmål om "globale data" eller data som høyrer ei side til
Kan du fjerne den utkommenterte seksjonen og gjere ein "push -f" (overskrive innsjekkinga di).
To others: Sorry about the nynorsk language.

Verden er liten. ;)
Første innsjekk er overskrevet.
And to the english version...
I thing a "global data" solution is wanted in #476, and it's the most appealing solution to me. A "site data" solution could be to create a special directory inside the data directory.

This should work and is simple enough, @spf13 ?
It should support sub-folders, but that's simple to add.

Looks really good. It's pretty much exactly like how I would do it (except in needs tests ;) ) .
About sub directories, where would they appear?    .Site.Data[subdir][filename] seems like the obvious place to me.

 .Site.Data[subdir][filename] is clever -- then it's easy to iterate over all data files for a given subdir, but I suggest using path (i.e. Unix style slashes) and not filepath for the subdir key.
@klakegg do you have any time to spare to take a stab at adding support for subfolders? There are examples of using the filepath.Walk some other places in the Hugo code base. Note the ERROR logging on symbolic links -- this might be good to copy over, as this seems to confuse users.
Also some tests would be cool!

I think using Filesystem is better because of less duplication (symlinks) and included caching.
Files in data/ are imported before data in subfolders allowing overriding using subfolders.

Filesystem vs Walk, I don't care.
But overriding in sub-folders will get confusing pretty fast.

I think people would expect to be able to create more than one level of subdirs and address the data items in a way that matches that directory structure
Ideally something like this: /data/sub1/sub2/mydata.json ==> {{ sub1.sub2.mydata.mykey }}

Any thoughts @spf13 ?

If /data/sub1/sub2.json sets key 'mydata.mykey' to 'foo', and you have a file /data/sub1/sub2/mydata.json setting 'mykey' to 'bar'. What to you expect .Site.Data.sub1.sub2.mydata to return?
Btw, now also with test. ;)

In that case I would expect /sub2/mydata.json's value, but that isn't override as a feature -- I would even consider returning an error for these duplicates so the user can do some renaming.

Oh, and the failing test is most likely due to Go maps' random iteration order.

The implementation is now changed to support any amount of subfolders. The test is still unstable (not changed) and will be updated if this is the solution we want.

There is some spring code cleaning to be done here, but:

It's simple enough after some limited tests, It does what I would expect.
I might tone down the duplicate check to just log an ERROR and not STOP -- but that's details

So, @spf13 - to sum up (with my special $ syntax):
/data/my.json$mkey:1234 => {{ .Data.my.mkey }} ==> 1234
/data/sub1/my.json$mkey:1234 => {{ .Data.sub1.my.mkey }} ==> 1234
/data/sub1.json$mkey:1234 => {{ .Data.sub1.my.mkey }} ==> 1234 ==> boom ERROR
It wold need documentation and tests, but from a bird's perspective, it looks correct, right?

@bjornerik I don't follow the special $ syntax. Does that just mean the files content after it?
I think we are heading in a very good direction.
I think duplication should just log an ERROR.

the $ syntax is just there to separate the file (my.json) with the key inside the file (mkey). It's just for this discussion and not part of any API.

Ok. I think this looks really good. We should fix the tests, merge it, and add documentation.

@klakegg could you fix/add some tests and doc?

@klakegg bump. It isn't that busy in the government :-) If this is going into the 0.13 release it needs docs/tests -- and I'm too lazy/busy doing it myself.

OK, I need this one, so I'll finish it.

Replaced by #885


Tighten security of our Auth Token (JWT) via CSRF prevention techniques

References

Replaces #2922 , which was unable to be implemented because of conflicts with both Shibboleth (as Spring Security's CSRF protection requires sending back a token header, which cannot be sent via redirects after login in Shib), and conflicts with hosting backend and frontend on separate origins (as Spring Security's CSRF protection relies on cookies, which cannot be sent cross origin)
Corresponding UI PR: https://github.com/DSpace/dspace-angular/pull/907
Also fixes #2938

Description
This PR takes a different approach of tightening our security while keeping Spring Security's default CSRF protection disabled.
Our application security is tightened in the following ways:

By default, each Auth Token (JWT) can only be used from the origin in which it was created.  I.e. each JWT knows which origin sent the original authentication request, and that same origin is the only one that can reuse the generated token.  This is achieved by validating against the Origin header (which aligns with OWASP's CSRF Prevention technique of "Verifying Origin with Standard Headers"). This feature can be disabled via jwt.login.token.include.origin=false (but is enabled by default)

If Origin header not provided in the request, the Referer header will be used. If neither are provided (e.g. Angular Universal SSR does not always provide these headers), then we look for a custom X-DSpace-UI header sent from the UI/client.

Authentication Token is only sent/read via Authorization header (which is not susceptible to CSRF attacks), except in one scenario:

If Shibboleth is enabled, then the ShibbolethAuthenticationFilter will generate a single-use cookie to pass the token back to the UI/client (as a header cannot be passed via a redirect).  This single-use cookie is secure (requires HTTPS to read), disables Javascript access (HTTPOnly), but can be sent cross origin (SameSite=None).  (Keep in mind though that the Token within the cookie can only be used by one, trusted origin.)
This Cookie is not allowed/created or read if Shibboleth is not enabled.  I.e. if Shibboleth is disabled, DSpace will only send/receive auth tokens via Headers.

Updated /logout endpoint to require POST requests (previously it allowed for GET or POST).  This aligns with the OWASP principle "Do not use GET requests for state changing operations"

A few additional minor changes were included:

Removed old jwt.login.token.include.ip setting, as it has been replaced by jwt.login.token.include.origin
Added a large amount of new JavaDocs and inline code comments to better describe how authentication works (especially how Shibboleth authentication works).
Added tests to verify that Auth Tokens can never be used by untrusted Origins (i.e. any not listed in rest.cors.allowed-origins).
Updated all jwt.shortLived.* settings to default to the same values as the corresponding jwt.login.* setting (except the "expiration" which is the only difference between these tokens).  This just makes it easier to configure both values at once (as often they should be kept in sync in a given site).
Updated Spring Boot's application.properties to include server.forward-headers-strategy=FRAMEWORK. This seems like a "sane default" for DSpace as it ensures Spring Boot will try to handle X-Forwarded-* Headers automatically (by default they are ignored).  I ran into this while testing the previous PR (#2459  across IPs/origins and found these headers were being dropped.  This setting can be overridden in local.cfg however (as most Spring settings can be overridden in our local.cfg) if ever needed.

Instructions for Reviewers

Review the code & the tests, as I tried to write tests to validate all the new code/behavior. There are also tests that validate Cookies are being trusted when shib is enabled, and ignored when not enabled.
Test authentication via HAL Browser.  Verify Logout requires POST
Test authentication via Angular UI : Requires installing https://github.com/DSpace/dspace-angular/pull/907
Test authentication via Shibboleth : Requires installing https://github.com/DSpace/dspace-angular/pull/907  (I have not tested this yet, but I suspect it should still work based on my reading of the Shibboleth code)

TODO: Once this PR is accepted, minor updates to the REST Contract will need to be made to clarify that the /logout endpoint requires POST and that all other methods will return a 405 error.
Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[x] My PR passes Checkstyle validation based on the Code Style Guide.
[x] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[x] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[x] If my PR includes new, third-party dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[ ] If my PR modifies the REST API, I've linked to the REST Contract page (or open PR) related to this change.

@paulo-graca : thanks for the review here & the extra information.
Based on the info you've given, my suspicion is the problem is with the new jwt.login.token.include.origin setting.  By default, it's set to true, which means you cannot reuse a JWT from a different origin.  This backend code determines the origin based on the Origin, Referer or X-DSpace-UI header (in that order).  If none of those headers exist, then the JWT is signed with an empty origin.
This all works great using Password Auth, and it sounds like it works fine using Shib from the Hal Browser.  I suspect the difference with Shib via the UI is the number of redirects (as you've noted).  I was hoping that Shib would automatically set a Referer header as part of it's redirect....but it's possible that's not happening.
So, I think what may be occurring here is this: technically everything works, but the JWT is created with a null/empty Origin, and then attempted to be used by the UI (under a different Origin) and the JWT usage therefore gets blocked.
As a simple test, I'd suggest trying to retest with jwt.login.token.include.origin = false.  If my suspicions above are correct, this likely will work for Shibboleth + Angular UI.   If that's indeed the case, I'll have to dig in to see if I can figure out a way for Shibboleth to work when that setting is true (as it's more secure to block JWTs from being used from different Origins).

@tdonohue Has you suggested I tested again, but now with this setting on my local.cfg
jwt.login.token.include.origin = false
and it worked as expected.

@paulo-graca : I've just pushed up a fix which I believe will fix the issue of getting Shibboleth working from the Angular UI when using the default setting of jwt.login.token.include.origin = true.   Simply put, the fix ensures that the redirectUrl sent to Shib (and later received back after a successful login) is trusted as the Origin, which allows the JWT origin check to succeed.
If you could give this new version a test, I'd appreciate it!

@paulo-graca : Could you provide more information about when that error occurs, or perhaps check your logs for other odd behavior or exceptions?  That exception almost seems to be saying that you have something that is not a JWT Auth Token in your Authorization Header or (single-use) Authorization-cookie cookie.   That's really odd, as I'm not sure how a completely invalid JWT would have gotten in that header or cookie....unless maybe the original JWT Auth Token could not be created or threw an earlier error (check a bit earlier in your logs to see if there's a earlier error here).
I'll also start to investigate if there's a way to get a simple Shib environment running locally in Docker -- it is sounding like I might need to debug this behavior more.  Thanks!

Probably there was something between my tests that polluted cookies request.
Using this setting:
jwt.login.token.include.origin = true
Some requests after POST to /Shibboleth.sso/SAML2/POST:
GET https://myhost.pt/server/api/authn/shibboleth?redirectUrl=https://myhost.pt/items/981a864e-eb03-402d-9c3e-9eae71e578ec
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJlaWQiOiI5MzEwNTRkYy1mNGMyLTQwZTgtYWNlMy0zN2QyODhiODc1MTIiLCJzZyI6W10sImV4cCI6MTYwNTAwMDMwOH0.LIiKfsjrNMVkw3lMAOGyZYqcmspQU9za7kZjIk7I0J4
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Connection: close
Content-Language: en
Content-Length: 0
Date: Tue, 10 Nov 2020 08:55:07 GMT
Expires: 0
Location: https://myhost.pt/items/981a864e-eb03-402d-9c3e-9eae71e578ec
Pragma: no-cache
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Set-Cookie: JSESSIONID=179AE714C54E0D5B6340D3F667E91F67; Path=/server; Secure; HttpOnly
Set-Cookie: Authorization-cookie=eyJhbGciOiJIUzI1NiJ9.eyJlaWQiOiI5MzEwNTRkYy1mNGMyLTQwZTgtYWNlMy0zN2QyODhiODc1MTIiLCJzZyI6W10sImV4cCI6MTYwNTAwMDMwOH0.LIiKfsjrNMVkw3lMAOGyZYqcmspQU9za7kZjIk7I0J4; Secure; HttpOnly; SameSite=None
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block

The requested page (redirection after login):

GET  https://myhost.pt/server/api/authn/status
{"id":null,"okay":true,"authenticated":false,"type":"status","_links":{"eperson":{"href":"https://myhost.pt/server/api/authn/status/eperson"},"self":{"href":"https://myhost.pt/server/api/authn/status"}}}

Here is my request log:
2020-11-10 08:54:31,253 INFO  org.dspace.usage.LoggerUsageEventListener @ anonymous::view_item:handle=123456789/26
2020-11-10 08:55:08,005 INFO  org.dspace.content.MetadataValueServiceImpl @ anonymous::delete_metadata_value: metadata_value_id=1400
2020-11-10 08:55:08,110 INFO  org.dspace.content.MetadataValueServiceImpl @ anonymous::delete_metadata_value: metadata_value_id=1401
2020-11-10 08:55:08,123 INFO  org.dspace.eperson.EPersonServiceImpl @ anonymous::update_eperson:eperson_id=931054dc-f4c2-40e8-ace3-37d288b87512
2020-11-10 08:55:08,178 INFO  org.dspace.authenticate.ShibAuthentication<EMAIL_ADDRESS>has been authenticated via shibboleth.
2020-11-10 08:55:08,179 INFO  org.dspace.eperson.EPersonServiceImpl @ myemail@example.com::update_eperson:eperson_id=931054dc-f4c2-40e8-ace3-37d288b87512
2020-11-10 08:55:08,179 INFO  org.dspace.app.rest.security.EPersonRestAuthenticationProvider @ paulo.graca@fccn.pt::login:type=explicit
2020-11-10 08:55:08,453 INFO  org.dspace.authenticate.ShibAuthentication @ Added current EPerson to special groups: []
2020-11-10 08:55:08,500 INFO  org.dspace.eperson.EPersonServiceImpl @ paulo.graca@fccn.pt::update_eperson:eperson_id=931054dc-f4c2-40e8-ace3-37d288b87512
2020-11-10 08:55:19,446 WARN  org.dspace.app.rest.security.jwt.JWTTokenHandler @ EPerson<EMAIL_ADDRESS>at Origin 'https://myhost.pt' tried to reuse a token which is not valid for this Origin or EPerson.
2020-11-10 08:55:22,144 INFO  org.dspace.usage.LoggerUsageEventListener @ anonymous::view_item:handle=123456789/26

But using:
jwt.login.token.include.origin = false
GET https://myHost.com/server/api/authn/shibboleth?redirectUrl=https://myHost.com/home
Response:
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJlaWQiOiI5MzEwNTRkYy1mNGMyLTQwZTgtYWNlMy0zN2QyODhiODc1MTIiLCJzZyI6W10sImV4cCI6MTYwNTAwNjA4OX0.r_5zQEx6EQV-LprfGDSG-7kAvGI30N_5w2XtzYqhS8c
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Connection: close
Content-Language: en
Content-Length: 0
Date: Tue, 10 Nov 2020 10:31:29 GMT
Expires: 0
Location: https://myHost.com/home
Pragma: no-cache
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Set-Cookie: JSESSIONID=926A9DA8B513FC4E772FF53E6A85D778; Path=/server; Secure; HttpOnly
Set-Cookie: Authorization-cookie=eyJhbGciOiJIUzI1NiJ9.eyJlaWQiOiI5MzEwNTRkYy1mNGMyLTQwZTgtYWNlMy0zN2QyODhiODc1MTIiLCJzZyI6W10sImV4cCI6MTYwNTAwNjA4OX0.r_5zQEx6EQV-LprfGDSG-7kAvGI30N_5w2XtzYqhS8c; Secure; HttpOnly; SameSite=None
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block

Request:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: pt-BR,pt;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Cookie: JSESSIONID=FE54FFD223CC4915A56E4FF7BE96091E; dsLanguage=pt; dsAuthInfo={%22accessToken%22:%22eyJhbGciOiJIUzI1NiJ9.eyJlaWQiOiI5MzEwNTRkYy1mNGMyLTQwZTgtYWNlMy0zN2QyODhiODc1MTIiLCJzZyI6W10sImV4cCI6MTYwNTAwMTkyOX0.X7tW5IE3h66_ReYCv58BITKjtUvd-lRomK3uH4R5t_k%22%2C%22expires%22:1605001929000}; klaro-931054dc-f4c2-40e8-ace3-37d288b87512={%22authentication%22:true%2C%22preferences%22:true%2C%22acknowledgement%22:true%2C%22google-analytics%22:true}; _shibsession_64656661756c7468747470733a2f2f646576352e72636161702e7074=_f4994568f21e8c13ccf0192808fb3b4a
Host: myHost.com
Referer: https://login-conta-dev.ciencia-id.pt/
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36

The requested page (redirection after login):

GET  https://myhost.pt/server/api/authn/status
{"id":null,"okay":true,"authenticated":true,"type":"status","_links":{"eperson":{"href":"https://myHost.com/server/api/eperson/epersons/931054dc-f4c2-40e8-ace3-37d288b87512"},"self":{"href":"https://myHost.com/server/api/authn/status"}}}

Server side log:
2020-11-10 10:31:00,165 INFO  org.dspace.usage.LoggerUsageEventListener @ anonymous::view_site:site_id=987ebb10-97f6-477b-b249-d9191fe81677
2020-11-10 10:31:29,111 INFO  org.dspace.content.MetadataValueServiceImpl @ anonymous::delete_metadata_value: metadata_value_id=1459
2020-11-10 10:31:29,117 INFO  org.dspace.content.MetadataValueServiceImpl @ anonymous::delete_metadata_value: metadata_value_id=1460
2020-11-10 10:31:29,122 INFO  org.dspace.eperson.EPersonServiceImpl @ anonymous::update_eperson:eperson_id=931054dc-f4c2-40e8-ace3-37d288b87512
2020-11-10 10:31:29,141 INFO  org.dspace.authenticate.ShibAuthentication<EMAIL_ADDRESS>has been authenticated via shibboleth.
2020-11-10 10:31:29,142 INFO  org.dspace.eperson.EPersonServiceImpl @ myEmail@example.com::update_eperson:eperson_id=931054dc-f4c2-40e8-ace3-37d288b87512
2020-11-10 10:31:29,142 INFO  org.dspace.app.rest.security.EPersonRestAuthenticationProvider @ myEmail@example.com::login:type=explicit
2020-11-10 10:31:29,309 INFO  org.dspace.authenticate.ShibAuthentication @ Added current EPerson to special groups: []
2020-11-10 10:31:29,311 INFO  org.dspace.eperson.EPersonServiceImpl @ myEmail@example.com::update_eperson:eperson_id=931054dc-f4c2-40e8-ace3-37d288b87512
2020-11-10 10:31:40,448 INFO  org.dspace.content.MetadataValueServiceImpl @ anonymous::delete_metadata_value: metadata_value_id=1461
2020-11-10 10:31:40,452 INFO  org.dspace.content.MetadataValueServiceImpl @ anonymous::delete_metadata_value: metadata_value_id=1462
2020-11-10 10:31:40,454 INFO  org.dspace.eperson.EPersonServiceImpl @ anonymous::update_eperson:eperson_id=931054dc-f4c2-40e8-ace3-37d288b87512
2020-11-10 10:31:40,467 INFO  org.dspace.authenticate.ShibAuthentication<EMAIL_ADDRESS>has been authenticated via shibboleth.
2020-11-10 10:31:40,467 INFO  org.dspace.eperson.EPersonServiceImpl @ myEmail@example.com::update_eperson:eperson_id=931054dc-f4c2-40e8-ace3-37d288b87512
2020-11-10 10:31:40,467 INFO  org.dspace.app.rest.security.EPersonRestAuthenticationProvider @ myEmail@example.com::login:type=explicit
2020-11-10 10:31:43,111 INFO  org.dspace.usage.LoggerUsageEventListener @ myEmail@example.com::view_site:site_id=987ebb10-97f6-477b-b249-d9191fe81677

@paulo-graca : Thanks for including the two different request behaviors.  The key difference that I see is that when you set jwt.login.token.include.origin = true, you are seeing this in your logs:
2020-11-10 08:55:19,446 WARN  org.dspace.app.rest.security.jwt.JWTTokenHandler @ EPerson<EMAIL_ADDRESS>at Origin 'https://myhost.pt' tried to reuse a token which is not valid for this Origin or EPerson.

That message is saying that a JWT Auth Token is successfully being created (after a successful Shibboleth login), but when the UI goes to use it, the Origin from the UI doesn't match & therefore gets blocked.  That log statement is saying that the UI is sending a request with Origin=https://myhost.pt, but that Origin seems not to match the Origin that initially signed/created the JWT Auth Token.
The Origin that signs the JWT Auth Token is set via the JWTTokenHandler.getRequestOrigin() method in this PR...it uses several different sources, accepting the first one that is not empty.  First, it checks the Origin header, then the Referer header, then our custom X-DSpace-UI header and finally if none of those have values it uses the ?redirectUrl param that Shibboleth tends to use.
Strangely, in your example, it looks like the redirectUrl param also uses "https://myhost.pt", which means it should match the Origin of your UI.  So, that makes me wonder if your Shibboleth is passing back an Origin or Referer HTTP Header that is being used instead.  I notice in the second example, your Request includes Referer: https://login-conta-dev.ciencia-id.pt/.... Maybe it's possible that's the Origin being used to sign the JWT token (that's just a guess though).
If you wanted to, you could enable debug logging and look for a DEBUG message that says "Using Origin '[ ]' for token signing key..." (as that's the Origin that originally signs the JWT, see JWTTokenHandler.buildSigningKey() method in this PR.   My guess is that might report that the token is being signed by https://login-conta-dev.ciencia-id.pt....which means that when https://myhost.pt tries to use the same token, it gets blocked.
All that said, I'm not yet sure how to solve this.  I didn't expect Shibboleth to return an Origin or Referer Header...and if it did, I expected the Referer to point back at the DSpace UI (as that's what started the request off).  Your logs here seem to imply that the Referer might sometimes point at the Shibboleth server (I'm assuming that's what https://login-conta-dev.ciencia-id.pt is) ....which might mean we need to ignore it when Shibboleth is enabled.

@tdonohue
I did some test on our dev server (https://dspace7test.dev01.4science.cloud/) and it doesn't seem to work properly, Indeed both password ans shibboleth authentications work only if i configure jwt.login.token.include.origin = false in the local.cfg file.
Also trying to authenticate from my local angular application to remote server works only with jwt.login.token.include.origin = false even if I've added http://localhost:4000 to rest.cors.allowed-origins property

@paulo-graca and @atarix83 : I've just pushed up a major fix which I hope will resolve issues with Shibboleth (I've also verified that Password Auth now works again from the UI or from the HAL Browser).  This fix adds more logic to the ShibbolethLoginFilter (renamed from ShibbolethAuthenticationFilter) which determines when a Shib redirect is going to occur, so that the Auth Token can be signed with the Shib redirectUrl as the Origin.  This ensures that the Auth Token is not accidentally signed with the wrong Origin (which was previously resulting in the UI not being able to use the token when jwt.login.token.include.origin = true).
Overall, I think this newly pushed up code should fix things for Shibboleth (based on my analysis of the logs/headers that @paulo-graca previously shared above).  As noted, I've already verified it fixes issues with Password auth as well.
If you two could find time to retest this in the next week, I'd appreciate it.  Thanks!

Password authentication works for me with most recent changes.

Didn't change jwt.login.token.include.origin. It's as is. The default setting.
But it doesn't work with Shibboleth authentication:
POST https://dev5.rcaap.pt/Shibboleth.sso/SAML2/POST

and the 401 error (didn't happen to see this error yet):
GET https://myhost.pt/server/api/authn/shibboleth?redirectUrl=https://myhost.pt/home

With jwt.login.token.include.origin = false the result is the same as above.

The same 401 error occurs also with HAL Browser, but after refreshing the page, I'm sign in:

Closing, replaced by #3103.  I've figured out a way to simply enable CSRF Protection in Spring Security with customizations to allow it to work for Shibboleth & cross domain. Therefore, this "tighten security" approach is no longer necessary.  That said, some minor useful code comments, etc from this PR will be copied into #3103


Run installer

This change is

The installer is building and appears to install, but neither software launches.

I'm still looking into where/how build artifacts get uploaded with this GHA, but the installer itself is ready for testing.

https://github.com/sillsdev/wesay/actions/runs/10612871182
This is the most recent Installer CI run, before I restored the original GHA run settings. The artifacts are at the bottom of the page.

Installer works, so we can merge this!


skin elements with an empty name throw runtimes

System.ArgumentException: An item with the same key has already been added. Key:
at OpenDreamClient.Interface.InterfaceMenu.AddChild(ElementDescriptor descriptor) in OpenDreamClient\Interface\InterfaceMenu.cs:line 49
Example elements that get flagged as duplicates:
elem
	name = ""
	command = ""
	category = "&Audio"

These end up rendering as spacers/horizontal rules, which is why they're used for Goon.

Fixed by #1402


ember-href-to last version throws ember warnings for some deprications

I have the last version of ember-href-to 4.1.0 and it throws a deprecation warning with this id  ember.built-in-components.import
testem.js:967 DEPRECATION: Using Ember.LinkComponent or importing from 'LinkComponent' has been deprecated, install the @ember/legacy-built-in-components addon and use import { LinkComponent } from '@ember/legacy-built-in-components'; instead [deprecation id: ember.built-in-components.import] See Ember.js - Deprecations  for more details.

And this when I debug the depreciation cause

This is now hard error under ermber-source v4.0

Sorry, I completely missed this. I'll try to address this early next week if no one else gets to it first.

Hard error in ember-release now indeed.

Sorry for the delay. This has been fixed in v5.0.0


Kelvintaph Crusader grants bonus even if a unit dies

One of my archers died fighting the witch, but the other 4 units made it to the escape point.  I received the bonus gems & XP anyway (see screenshot).  Yes, this was my first completion.

I tried to find an issue with the level's bonus objective, but it seemed solid from my basic understanding.  I can send you my code to reproduce if you like.

This may be a systemic problem with bonus goals.  I just had the same thing happen on Goalkeeper in the Desert:


Unable to load_state_dict from eca_resnet50_k3557.pth.tar

Hi,
i have tried to load_state_dict from eca_resnet50_k3557.pth.tar file and has already rename the keys, but meets a RuntimeError: Error(s) in loading state_dict for ResNet:
size mismatch for layer2.0.eca.conv.weight: copying a param with shape torch.Size([1, 1, 5]) from checkpoint, the shape in current model is torch.Size([1, 1, 3]).
size mismatch for layer2.1.eca.conv.weight: copying a param with shape torch.Size([1, 1, 5]) from checkpoint, the shape in current model is torch.Size([1, 1, 3]).
just like this, from layer2 to layer4
Could you please let me know how to solve this?
Thanks！

@guangdafan  Simply use this in your bottleneck block to make it work:
if self.planes == 64:
        self.eca = eca_layer(k_size = 3)
elif self.planes == 128:
    self.eca = eca_layer(k_size = 5)
elif self.planes == 256:
    self.eca = eca_layer(k_size = 5)
elif self.planes == 512:
    self.eca = eca_layer(k_size = 7)

@guangdafan  Simply use this in your bottleneck block to make it work:
if self.planes == 64:
        self.eca = eca_layer(k_size = 3)
elif self.planes == 128:
    self.eca = eca_layer(k_size = 5)
elif self.planes == 256:
    self.eca = eca_layer(k_size = 5)
elif self.planes == 512:
    self.eca = eca_layer(k_size = 7)

@guangdafan For context you can visit my reproduced ECANets here - https://github.com/digantamisra98/Reproducibilty-Challenge-ECANET

@guangdafan For context you can visit my reproduced ECANets here - https://github.com/digantamisra98/Reproducibilty-Challenge-ECANET

Hi,
i have tried to load_state_dict from eca_resnet50_k3557.pth.tar file and has already rename the keys, but meets a RuntimeError: Error(s) in loading state_dict for ResNet: size mismatch for layer2.0.eca.conv.weight: copying a param with shape torch.Size([1, 1, 5]) from checkpoint, the shape in current model is torch.Size([1, 1, 3]). size mismatch for layer2.1.eca.conv.weight: copying a param with shape torch.Size([1, 1, 5]) from checkpoint, the shape in current model is torch.Size([1, 1, 3]). just like this, from layer2 to layer4
Could you please let me know how to solve this?
Thanks！

hi, how can i use eca_resnet50_k3557.pth.tar in the windows?
.tar file cannot be decompressed!

hi, how can i use eca_resnet50_k3557.pth.tar in the windows? .tar file cannot be decompressed!
You don't need to decompress it. Use it directly!


Can I start a container and skip the setup form

Version of Kpow
CE 90.1
Describe the issue
I'm interested in starting up a container with my cluster config already defined in env vars. But doing so still takes me to the Setup form.
We have a cluster that uses SSL. I've set up a docker-compose file with the environment vars that should be enough for kpow to connect. I've provided the file below.
Additional context
Current Docker Compose file
version: '2.1'

services:
  kpow:
    image: factorhouse/kpow-ce
    ports:
      - "3000:3000"
    volumes:
      - /etc/pki/tls/private/kafka.server.truststore.jks:/truststore.jks
      - /etc/pki/tls/private/kafka.server.keystore.jks:/keystore.jks
    environment:
      ENVIRONMENT_NAME: staging
      CLUSTER_ID: staging
      BOOTSTRAP: hostname1:9093,hostname2:9093,hostname3:9093
      SECURITY_PROTOCOL: SSL
      SSL_KEY_PASSWORD: redacted
      SSL_KEYSTORE_LOCATION: /keystore.jks
      SSL_KEYSTORE_PASSWORD:  redacted
      SSL_KEYSTORE_TYPE: jks
      SSL_TRUSTSTORE_LOCATION: /truststore.jks
      SSL_TRUSTSTORE_PASSWORD: redacted
      SSL_TRUSTSTORE_TYPE: jks

Hi @IanWhitney - you can now start the community edition with limited environment variables (as of 90.1.20221012)
We are still going through our soft launch of the community edition, so we are still in the process of writing the supported documentation (sorry about that!)
The environment variables you have in your Docker Compose YAML should work fine with the latest version.
Please note the community edition will only support a limited subset of environment variables (basically, only cluster/connect/schema env vars). We will document specifically what environment variables are supporting in the coming days.
Please do not hesitate to reach out to us if there's anything else you need help with :)

Thanks! I look forward to experimenting more with kpow.

The configuration docs can be found here: https://docs.kpow.io/ce/configuration/
We are still pushing content across to our CE documentation, but the basis is here :)


Interpolated variable values

Given:
---
a: A
b: $a$ B
c: $b$ C $b$
...

Produce:
---
a: A
b: A B
c: A B C A B
...

The algorithm that performs this feat is relatively trivial.

On a quick glance at the Mustache spec, I didn't see this feature. I may have missed it though. If it's not a part of the Mustache spec, my instinct is that I wouldn't support merging a pull request that implements this. This doesn't strike me at first glance like a common use case, but I'd welcome more discussion.
I've pasted the contributing section from the README below.

Contributing
Project Status: Inactive
This code is not being actively developed. It was created to fulfill my pandoc writing needs, and the current feature set is adequate for me.
If you have a feature request, it is unlikely that I will be able to implement it for you. You can create an issue to generate discussion. If you implement a feature, you can file pull request and I will review it eventually, as time permits. If you're interested in making major additions to the code, I'd be happy to welcome a new maintainer to the project.


Expose feature points as an experimental WebXR feature

This PR introduces feature points as an experimental feature when running on top of BabylonNative.  Feature Points are the base understanding of the world geometry for AR Devices which are the foundation of planes and scene meshes.  The high level overview of the feature can be seen in FeaturePoints.md.
This PR adds a new webxr.nativeextensions.d.ts file which allows us to extend the WebXR spec beyond what is currently supported in the browser today, which allows us to create extended support for native functionality on BabylonNative.
This PR also adds a new WebXRFeaturePointSystem to track feature points the common flow for using this system is as follows

Enable the feature on the XRSession using the new feature key: WebXRFeatureName.FEATURE_POINTS
Register an observer for: onFeaturePointsUpdatedObservable, which returns the current frame's updated feature points as a list of feature point IDs
On callback look up the updated feature point in the module's exposed featurePointCloud member and perform any app side logic based on the updated feature point values.
Alternatively you can process the entire featurePointCloud on demand which should remain durable across frames.

At a high level, should this functionality live in Babylon.JS/NativeXr or should this extension be added to a custom repo/native plugin? It seems like the choice of adding this feature here may be done out of convenience.
Thus far, I have not seen any examples of Babylon.js logic for BabylonNative that has not had a parallel mapping to web/webxr. It seems like this sets a new precedent and may detract from the developer assurance that Babylon.js code will work on the web. Would it make more sense if these javascript files were included in the BabylonNative repo, that way they were only referenceable if someone was actually building a native experience?

At a high level, should this functionality live in Babylon.JS/NativeXr or should this extension be added to a custom repo/native plugin? It seems like the choice of adding this feature here may be done out of convenience.
Thus far, I have not seen any examples of Babylon.js logic for BabylonNative that has not had a parallel mapping to web/webxr. It seems like this sets a new precedent and may detract from the developer assurance that Babylon.js code will work on the web. Would it make more sense if these javascript files were included in the BabylonNative repo, that way they were only referenceable if someone was actually building a native experience?

I think this is definitely open for debate.  Right now there are various features that are supported on only on specific web browsers which we have as part of BabylonJS.  In general I wanted this feature to serve as a first step towards giving us a fast track to unlocking native only extensions without having to go through the full WebXR proposal process, so I definitely want this to be part of the conversation.

At a high level, should this functionality live in Babylon.JS/NativeXr or should this extension be added to a custom repo/native plugin? It seems like the choice of adding this feature here may be done out of convenience.
Thus far, I have not seen any examples of Babylon.js logic for BabylonNative that has not had a parallel mapping to web/webxr. It seems like this sets a new precedent and may detract from the developer assurance that Babylon.js code will work on the web. Would it make more sense if these javascript files were included in the BabylonNative repo, that way they were only referenceable if someone was actually building a native experience?

I think this is definitely open for debate. Right now there are various features that are supported on only on specific web browsers which we have as part of BabylonJS. In general I wanted this feature to serve as a first step towards giving us a fast track to unlocking native only extensions without having to go through the full WebXR proposal process, so I definitely want this to be part of the conversation.

It would be great to get a feel for whether or not we could add this to the BabylonNative codebase and have it consumed by BabylonNative applications. I feel like we can better ensure a high quality Babylon.js experience by having this extensions javascript file only picked up by BabylonNative builds.
A bit unrealted to the code here, but I am also curious whether best practices suggest not registering type names when a WebXR/NativeXr feature is unavailable. Some examples for hand tracking that @RaananW  shared checked whether XRHand was undefined to gage whether or a feature was available. I think right now the NativeXr plugin registers all class definitions for all platforms whether or not they are supported.

Converting this to draft for now to avoid accidental merge. Waiting for some discussions to happen internally.

@RaananW  ok to merge?

Ok to merge :-)