unison: M5c -> M5d

Description of changes

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

M5e was just released

Result of nixpkgs-review pr 250709 run on x86_64-linux 1

1 package built:

unison-ucm

This PR was closed @matthiasbeyer, given that unison released M5e already. https://github.com/NixOS/nixpkgs/pull/250829 is up to bump unison to the latest version.

Yeah, my call  to nixpkgs-review took a bit to long and the PR was already closed when it posted... :shrug:

Thank for your the check nevertheless @matthiasbeyer


Fix validation flash errors in automate

Validation of automate model messages changed in https://github.com/ManageIQ/manageiq/pull/9527 though the resulting validation strings in the UI did not make much sense.
This PR modifies the validation messages so that the final strings look better.
Additionaly, this PR removes extraneous model validation from controller code.
Class edit error before:

Class edit error after:

Similarly for automate domain, namespace, class, method, instance and field addition / modification.

Looks good.

@mzazrivec @h-kataria
Can we enable this for darga (darga/yes). We have a ticket pending on this change
https://bugzilla.redhat.com/show_bug.cgi?id=1372768

This was on master before Euwe branch was created.

Darga Backport details:
$ git log
commit da4afe88ed6f2c66f8e9487fbd521dc948fc1185
Author: Harpreet Kataria<EMAIL_ADDRESS>Date:   Mon Sep 12 09:19:17 2016 -0400

    Merge pull request #10982 from mzazrivec/fix_flash_errors_in_automate

    Fix validation flash errors in automate
    (cherry picked from commit 3d9ddefd5909d6a6909ff7985699a0286d8d2a2d)

    https://bugzilla.redhat.com/show_bug.cgi?id=1372768


Range function resolution fails for column (tstzrange) and parameter (tsrange)

With the following database table:
create table public.some_record (
  during tstzrange
);

The following model:
public class SomeRecord
{
    public NpgsqlRange<DateTime> During { get; set; }
}

causes the following exception on insert:
2018-08-02 15:36:52.732 +02:00 [Error] [8504472] [14] [] [] [:] [Microsoft.EntityFrameworkCore.Database.Command] Failed executing DbCommand ("17"ms)
[Parameters=["@p0='[2018-08-02 15:36:51,)' (DbType = Object)"], CommandType='Text', CommandTimeout='600']"
""INSERT INTO public.some_record (during)
VALUES (@p0);"
Npgsql.PostgresException (0x80004005): 42804: column "during" is of type tstzrange but expression is of type tsrange
   at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext() in C:\projects\npgsql\src\Npgsql\NpgsqlConnector.cs:line 1032
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming) in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 444
   at Npgsql.NpgsqlDataReader.NextResult() in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 332
   at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1219
   at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1130

@dpsenner This is by design. NpgsqlRange<DateTime> is default mapped to tsrange, though other mappings also exist.
You should be able to configure SomeRecord.During to use tstzrange explicitly (e.g. annotations or the fluent API).
Could you give that a try and let us know how it goes?

@dpsenner We are also strongly encouraging users to take a look at our plugin for NodaTime which provides a significant improvement in date and time handling.

Thanks for having a look. We attempted to change our database models to use nodatetime Instant's but that works for tsrange while it shows the same symptoms for tstzrange. The query parameter is passed in as follows:
[2018-08-02T15:49:28Z,2018-08-02T15:54:28Z]' (DbType = Object)

and causes the same exception:
Npgsql.PostgresException (0x80004005): 42804: column "during" is of type tstzrange but expression is of type tsrange
   at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext() in C:\projects\npgsql\src\Npgsql\NpgsqlConnector.cs:line 1032
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming) in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 444
   at Npgsql.NpgsqlDataReader.NextResult() in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 332
   at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1219
   at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1130
   at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues)

I'm going to give your suggestion a shot tomorrow.

I just gave the column type a shot nonetheless and it improved the situation somewhat:

			builder.Property(t => t.During)
				.IsRequired()
				.HasColumnName("during")
				.HasColumnType("tstzrange");

The original was:
			builder.Property(t => t.During)
				.IsRequired()
				.HasColumnName("during");

Now values can be inserted and fetched from the database, but querying with a where clause does not work:
Instant dateTimeOffsetInRange = Instant.FromDateTimeOffset(DateTimeOffset.Now);
List<SomeRecord> userTransponderRecords = DbContext
				.SomeRecords
				.Where(t => t.During.Contains(dateTimeOffsetInRange))
				.ToList();

and produces the following stacktrace:
2018-08-02 17:57:58.799 +02:00 [Error] [6418856] [13] [] [] [:] [Microsoft.EntityFrameworkCore.Database.Command] Failed executing DbCommand ("8"ms) [Parameters=["@__dateTimeOffsetInRange_0='2018-08-02T15:57:56Z' (DbType = DateTime)"], CommandType='Text', CommandTimeout='600']"
""SELECT t.during
FROM public.some_record AS t
WHERE (t.during @> @__dateTimeOffsetInRange_0) = TRUE"
Npgsql.PostgresException (0x80004005): 42883: operator does not exist: tstzrange @> timestamp without time zone
   at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0.<<ReadMessage>g__ReadMessageLong|0>d.MoveNext() in C:\projects\npgsql\src\Npgsql\NpgsqlConnector.cs:line 1032
--- End of stack trace from previous location where exception was thrown ---
   at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming) in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 444
   at Npgsql.NpgsqlDataReader.NextResult() in C:\projects\npgsql\src\Npgsql\NpgsqlDataReader.cs:line 332
   at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1219
   at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior) in C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1130
   at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues)

@dpsenner Yes... we've seen this issue elsewhere when passing parameters that need non-default mappings.
I'll see what we can do to detect/add type casts to the SQL generation phase.
In the meantime, if this is a showstopper, my preferred workaround is to define a custom overloaded operator to patch the type resolution:
CREATE TYPE example_enum AS ENUM ('1', '2', '3', '4');

--
-- overloading the equality operator
--

CREATE FUNCTION example_enum_as_text(example_enum, TEXT) RETURNS BOOLEAN AS
$$ SELECT $1 :: TEXT = $2 :: TEXT; $$
LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;

CREATE OPERATOR = (
  procedure = example_enum_as_text,
  leftarg = example_enum,
  rightarg = TEXT,
  HASHES,
  MERGES);

--
-- overloading the equality operator (flipped)
--

CREATE FUNCTION example_enum_as_text(TEXT, example_enum) RETURNS BOOLEAN AS
$$ SELECT $1 :: TEXT = $2 :: TEXT; $$
LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;

CREATE OPERATOR = (
  procedure = example_enum_as_text,
  leftarg = TEXT,
  rightarg = example_enum,
  HASHES,
  MERGES);

Related
#428
https://github.com/aspnet/EntityFrameworkCore/issues/4978,

@austindrenski corrected analyzed this, EF Core is indeed missing a way to explicitly specify the store type for cases of non-default mappings.
However, with NodaTime you may be able to work around this... Instead of Instants you may try using OffsetDateTime (or ZonedDateTime), which we map to timestamptz by default. This is a pretty hacky workaround until https://github.com/aspnet/EntityFrameworkCore/issues/4978 gets resolved.

Finally, as @austindrenski wrote above, make sure you know exactly why you want to use timestamp with time zone - it's a really problematic database type, and most usages I've seen don't really make sense (timestamp without time zone should be used instead).

Am going to close this as there's nothing more to do in Npgsql (although the discussion can definitely continue).

Thanks to both of you again for looking into this. Unfortunately, @roji, neither OffsetDateTime, ZonedDateTime or LocalDateTime can be used in the model because Instant is the only class that implements IComparable<T> and therefore works in combination with NpgsqlRange<T> when writing a simple query like:
var instant = ...
var = DbContext
	.SomeRecords
	.Where(t => t.During.Contains(instant))
	.ToList();

@austindrenski @roji Would you please share with us your insights on these datatypes? Under what circumstances have you learned that the timezoned data types are problematic and in what respect are they problematic to you? Have you worked out guidelines when to use either datatypes with timezone or without?
To me it is clear that either datatypes store information as utc in the database and timezones affect only the reading and writing data from or into the database store. We delibaretly chose to use the timezoned datatypes because it provides autoconversion from and into the database clients timezone. In the first version we explicitly implemented all database model properties by using DateTimeOffset. This way, whoever works with the models knows that the timestamp given is offset from utc into the timezone of the machine where the application runs on. At the same time the npgsql provider (or the database) transforms both utc timestamps and timestamps that have a timezone offset to utc when writing them into the database. On top of that, when such timestamps are logged they can easily be correlated with the time on the machine where the application runs on without manual timezone conversions all over the place.
I hope to gain some insights from your valuable input that either shows that our findings were valid but cannot be implemented currently because dependencies are not ready for this yet. Or it makes us reconsider this decision and we exclusively use timestamps without timezone and implement conversions in the backend whereever a functionality forces us to do so.

@dpsenner You can find the answer and examples in npgsql/npgsql#1803. The long story short, DateTime couldn't be unambiguously mapped to PostgreSQL date time types because of the Kind property.

@dpsenner as I wrote in https://github.com/npgsql/Npgsql.EntityFrameworkCore.PostgreSQL/issues/63, if you want to know what I think about using timezone-aware types (and PostgreSQL timestamp with time zone), take a look at #303 and #473, but prepare yourself for a long and exhausting rant :) Below is an attempt at a compacted version.
PostgreSQL timestamp with time zone is quirky in that timezone conversions are introduced (at least potentially) when your application reads/writes timestamps from/to the database. Sit down and think if you really want this in a sane application (especially if you believe in the UTC-everywhere pattern).
Regarding DateTimeOffset... If you want to be UTC everywhere (and in most cases it's a very good idea), then I can't see any sense in having an offset alongside your timestamps in your entire application, which is what DateTimeOffset does. Once there's an offset, it's possible for that offset to be non-zero, and then any code that looks at a property of your DateTimeOffset (e.g. .Hour) will get skewed. In that sense DateTimeOffset doesn't really offer any protection against programmer error compared to DateTime - if you happen to have a non-UTC timestamp (offset != 0 for DateTimeOffset, kind != UTC for DateTime), your code wlil stop working. If you want to be UTC everywhere, you do not want any offset.
The best practice (IMHO) is to make sure any and all timezone conversions happen at the very edge of your application, e.g. when rendering a timestamp for user display based on that user's browser's configured timezone. Any incoming timestamps should be normalized to UTC timestamps as soon as possible, and the rest of your code should simply work with the assumption that they are UTC.
This isn't to say that DateTime is a great type - both DateTime and DateTimeOffset are quite bad. I'd recommend you take a look at NodaTime which clearly distinguishes between Instant - which is a simple point in time without a timezone - and LocalDateTime/ZonedDateTime which deal with human-intelligible concepts such as calendars, timezones and all the rest.

@roji For clarity to future readers:
If we were in the business of dictating schema redesigns, would it be your recommendation that @dpsenner change during from tstzrange to tsrange, and refactor away from both DateTime and DateTimeOffset?

@austindrenski it's hard to make sweeping recommendations without taking account any specific needs etc.
But yes, my personal opinion is that in the general case, unless your application has special needs and cannot be UTC-everywhere:

Avoid using DateTimeOffset.
If at all possible, use NodaTime, which makes most of these issues disappear.
If NodaTime isn't an option, use DateTime with Kind=UTC and make sure all timestamps are properly normalized/converted to UTC at the very edge.
Assume timestamps in your application are UTC, and add assertions in critical places to ensure this is so.
Consider using an analyzer to further enforce UTC DateTime (e.g. disallow DateTime.Now).

Note that this is my personal take on things and I'm sure many would disagree.

Incidentally I came to the same conclusions. If team lead agrees we are going to set sails with nodatime instants, tsrange and timestamp without timezones. Where required we will introduce additional columns for client local times and/or the timezone id of the client that created or updated that specific entity.

@dpsenner good to hear it, not everyone agrees with my views on date/time handling :)
Note that if you want to represent the client's timezone inside your database, you need a separate column in the database no matter what, since timestamp with time zone doesn't actually store a timezone. This is true whether you go with NodaTime or not.
Another important point is that DateTimeOffset does not contain a timezone - only an offset. Many people confuse the two, and end up storing a DateTimeOffset in SQL Server thinking that they've resolved the question. However, a timezone also has daylight saving rules, which ca be very significant and are completely ignored when all you have is an offset. That's another disadvantage of DateTimeOffset - it gives you the illusion of having taken care of the problem, whereas in fact you haven't. In that sense I prefer PostgreSQL which doesn't have an actual "timestamp with offset" type, but rather forces you to think about things and represent the timezone in a separate column if that's really what you want.
@austindrenski have we actually done any change in this issue? If not can you please remove the label and milestone?

@roji, that's what we went through when we discussed the proposal. :-) It took a significant amount of arguments until the underlying problems finally were understood by everyone and only then we were able to come to an agreement. Unfortunately we do also have the functional requirement to track the original time in the timezone when something was made or done. Currently we have three possible solutions for this and I would like to know what you think about these:
store a utc timestamp into a timestamp (without timezone) and the timezone id (i.e. Europe/Rome) where that instant came from
store a zoned datetime (not utc) into a timestamp (without timezone) column along with the timezone id (i.e. Europe/Rome) where that instant came from
store both utc into a timestamp, a zoned datetime into a timestamp and the timezone id (i.e. Europe/Rome) where that instant came from
We have also discussed to store the offset (in hours and minutes), but we are yet unsure about the implications and whether we actually should do so. The reasoning behind the previously mentioned options is that we surely need a system time that every participant can agree with. But we do also need the information of a local timestamp that easily allows to correlate "4am in america" with "4 am in europe" and "4 am in china" which is not possible with utc and the timezone id. Daylight savings would for instance shift the timestamps during summer and "4 am in europe" would suddenly become "3 am in europe".

Thanks for the interesting discussion. I agree with what @Brar wrote above, here's some more detail from my side.
Your first two options (if I understand them correctly) seem very similar - in both cases you have one column of type timestamp without time zone and one column of type text, for the timezone (e.g. Europe/Rome). The only difference is whether what you put in the timestamp column is a UTC timestamp or a timestamp local to the timezone specified in the other column. As @Brar said above, I'd go with option 1, first because it allows you to unambiguously read the UTC timestamp without looking at the timezone, assuming you have some places in the code where that's relevant. In other words, for cases where a UTC timestamp is enough, you have that in a simple column, and for cases where you need the original timezone, you have that as well.
But there's one more reason to prefer storing UTC. Timezones actually change from time to time: a country in GMT+2 can decide to become GMT+1 tomorrow (this is rare but it happens). So if you store a local timestamp in the database and the timezone changes, well, you're kinda screwed :) If you store UTC and only convert to local timestamps in your program when needed, then as long as your timezone database is up to date you'll always be OK.
I frankly don't see any added value to the 3rd option - it's needless duplication (and room for error). Once you have a (UTC) timestamp and a timezone, you can always easily convert back and forth, from UTC to local (according to the stored timezone) and back.

We have also discussed to store the offset (in hours and minutes), but we are yet unsure about the implications and whether we actually should do so. The reasoning behind the previously mentioned options is that we surely need a system time that every participant can agree with. But we do also need the information of a local timestamp that easily allows to correlate "4am in america" with "4 am in europe" and "4 am in china" which is not possible with utc and the timezone id. Daylight savings would for instance shift the timestamps during summer and "4 am in europe" would suddenly become "3 am in europe".

Here I'm a bit confused. First, "4AM in America" is a time with timezone, not a timestamp (there is no date). Once you put a date in there, "4AM on 1/1/2018 in EST", daylight savings no longer shifts things around, because a given date was always either in daylight savings or not... I also don't see the point of storing the offset (hours, minutes) - you're already storing the timezone (as an ID), which is much better.
To sum it up, just use UTC timestamps everywhere, all the time. If you have to know of a user's preferred timezone (for display purposes or anything else), store that separately and use that to translate the UTC timestamp as required, only where required. In NodaTime terms (and I definitely recommend you use NodaTime here), you're storing an Instant (globally agreed-upon point in time, regardless of calendar/timezone/human representation), plus a timezone. Whenever relevant, you can put the two together to create a ZonedDateTime.

The reasoning behind two timestamp columns was, that when a user reads that timestamp today it says "4 am" but it will tomorrow read "3 am" when daylight savings return to normal. Having a local time stored explicitly will make that record "4 am" forever, which is also what the user would expect. Please correct me if I'm wrong.

@dpsenner unless I'm totally mistaken about daylight savings (DST), every time zone has a DST definition: DST starts at a certain date, and stops at another date. When you read a UTC timestamp from the database (let's call it Instant) and convert it to a ZonedDateTime, NodaTime (or whoever) will consult their timezone database to see if DST is on for the date of the timestamp.
Long story short, date/time conversions aren't affected by the current timestamp - if DST changes between today and tomorrow, you will see the same thing. The only thing that matters is the timestamp itself, and the timezone.

I suggest you do a quick test to confirm the above... Write a trivial console program that uses NodaTime, and see what happens as you play around with your machine's date (in and out of DST). You shouldn't see any change in behavior in the program.

@dpsenner converting an UTC timestamp to a local timestamp is more than just adding an offset in hours.
There are changes in the assignment of a country to a specific time zone, introduction or dismissal of daylight saving time in a country and other weird things that might happen and be set in effect at a specific timestamp due to government decisions.
It's best to rely on tools that are backed by time zone databases that have all the knowledge of those details and do the heavy lifting for you.
TimeZoneInfo Methods are probably the most natural way for .Net but there is also https://github.com/LZorglub/TimeZone which uses the IANA time zone database (I haven't tried it).
The idea is to convert the timestamp back to its original value before displaying it to the user

Not to distract from the wider discussion, but while every time zone has a definition of DST, not every locale in the time zone necessarily observes it:
https://www.timeanddate.com/time/us/arizona-no-dst.html

To supplement what @Brar said above, NodaTime also uses the IANA timezone database, which is pretty much the standard outside of the Windows world. The advantage of NodaTime is a sane date/time type hierarchy along with the timezone database - basically everything is taken care of for you.

Not to distract from the wider discussion, but while every time zone has a definition of DST, not every locale in the time zone necessarily observes it:

Bah, date/time insanity... That's why it should all be delegated to a library which actually knows about all that complexity...

At least if I'm understanding you're scenario properly, you're not supposed to care about PostgreSQL at all, since you'll never be asking or to do any sort of conversions for you. This is precisely why you should avoid timestamp with time zone just sure UTC timestamps in the database, and if your really need to, a string coffee representing a timezone. Then, in your application you do any conversions if you need to.
Don't involve the database in any timezone-aware logic unless you need to - I'm not saying it should never happen, just that you want to avoid it if at all possible.

Does anyone happen to know how the timezone database is updated in the postgres database?

Not sure if there's anything more authoritative, but it's discussed here:
https://github.com/postgres/postgres/blob/master/src/timezone/README

You've got a point. There are however several database functions that return timestamptz datatypes and there are therefore scenarios where the query generator causes bad timestamps to be read from the database. NOW() is one of them. As a minimal bad example, a linq query containing DateTime.Now translates to a database query that contains NOW(). That causes a timestamptz column to be generated at runtime. This would result in timestamptz values to be materialized into Nodatime Instants with a timestamp that is not utc at all. To defend against this scenario I just hard-coded the connection string to contain Timezone=UTC which should ultimately override the timezone behavior. I'm not sure if that's enough as a solution. Do you know of any other pitfalls?

NOW() is one of them. As a minimal bad example, a linq query containing DateTime.Now translates to a database query that contains NOW()

Are you aware of DateTime.UtcNow in .Net and the other PostgreSQL date/time functions (https://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT)?
It should be possible to generate an UTC timestamp at every layer and combine it with the users' time zone id if you want to store or display it.

To supplement @Brar's comment (which is very correct), PostgreSQL NOW() indeed returns a timestamp with time zone, and the EF Core provider does translate DateTime.Now to NOW().
However, as @Brar suggests, if you use DateTime.UtcNow, the EF Core provider will translate that to NOW() AT TIME ZONE 'UTC', which returns a TIMESTAMP WITHOUT TIME ZONE. This is what you really want to use.
DateTime.Now should simply be banned from most code (at least from most server-side code), as it introduces a dependency on the local machine's configured timezone.

As a last comment I wanted to share with you an insight that I gained while attempting to find a valid way to convert a utc timestamp into a zoned timestamp that works fine without any magic conversions of the resulting timestamp happening. This is what I came up with, something that works regardless of the session timezone:
set timezone to 'UTC';
select
	'2018-06-06T12:00:00'::timestamp at time zone 'UTC' at time zone 'Europe/Rome', -- works
	'2018-06-06T12:00:00Z'::timestamp at time zone 'UTC' at time zone 'Europe/Rome' -- works

while the following is broken even though it appears to be the right syntax at first sight:
set timezone to 'UTC';
select
	'2018-06-06T12:00:00Z'::timestamp at time zone 'Europe/Rome', -- broken
	'2018-06-06T12:00:00'::timestamp at time zone 'Europe/Rome' -- broken

Happy coding and thanks for the productive conversation we had!


Question about ”generation of two-dimensional molecules“

Hi, thanks for you great work.
In your paper, you mentioned that this work is focused on two-dimensional molecules. From my understanding, two-dimensional molecules refer to molecules represented using a graph data structure. I would like to know the reason behind using this term.

Thank you for your thoughtful question.
In our research, we use the term "two-dimensional molecules" to primarily distinguish it from the "three-dimensional molecules" data, the latter of which incorporates additional spatial details, such as atomic coordinates.
When we refer to "two-dimensional molecules" in our paper, we mean representations that can effectively portray the topological structure of the molecules. These forms, such as molecular graphs and sequences, effectively delineate the structural arrangement of atoms and the types of bonds between them, as well as the various substructures within the molecule.
I hope this is more clear, and I'm happy to further elaborate if needed.

Thanks！


Questions about the computing time and unwrap_arbitrary inputs

Thank you a lot for creating this open phase-unwrapping package! This is indeed what I am searching hard.
I have some questions about the implementation of

I think you implement the edgelist algorithm. As far as I know, this algorithm minimizes L1 as the mcf method. Why this algorithm is NP-hard while mcf is not? Does it mean the edgelist is much slower than mcf?
How should I generate the edges and simplices in unwrap_arbitrary?

Thanks!

Hi @kanglcn, I'm glad you're interested in this tool!

I think you implement the edgelist algorithm. As far as I know, this algorithm minimizes L1 as the mcf method. Why this algorithm is NP-hard while mcf is not? Does it mean the edgelist is much slower than mcf?

Yeah, you're right; the edgelist method is equivalent to MCF (just a different formulation). Thus, it shouldn't be NP-hard.
I guess it means they belong to a subset of ILP problems that can be solved in polynomial time (correct me if I'm wrong).
In practice, assuming using the same solver for MCF and edgelist, I found sometimes edgelist has a slightly smaller equation matrix $\mathbf{A}$ and thus is faster to compute.

How should I generate the edges and simplices in unwrap_arbitrary?

I assume you have $N$ wrapped phase and their coordinates in an $M$-dimensional space ($\mathbf{\theta} \in \mathbb{R}^{\mathbf{N} \times \mathbf{M}}$). You can use the Delaunay or Convex Hull algorithm in SciPy to connect the points into a graph. They'll also compute the simplices for you.
https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.Delaunay.html#scipy.spatial.Delaunay
I hope this helps.

Hi @kanglcn ,
From simplices to edges:
edges = np.unique(np.stack((simplices, np.roll(simplices, 1, 1)), 2).reshape(-1, 2), 0)

unwrap_arbitrary requires edges to be always presented, while simplices is optional because some graphs are not simply compositions of simplices. If no simplices are given, the edgelist method is used. And yes, if the simplices are given, then it should be composed of the given edges.
$\mathbf{A}$ and the equation directly relate to Figure 1 in the edgelist paper.
Depending on which method you're using, each row in $\mathbf{A}$ represents an elementary cycle (i.e., a, b, and c nodes in the figure) or an edge (ab, ac, or bc).


[Enhancement] Add memory alloc profile log

Why I'm doing:
Add memory profile files into log/proc_profile to help position memory problems.
What I'm doing:
There are two params to collect profiles: proc_profile_collect_interval_s and proc_profile_collect_time_s.
proc_profile_collect_interval_s is the number of seconds between proc profile collections,
proc_profile_collect_time_s The number of seconds it takes to collect single proc profile.
What type of PR is this:

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.3
[ ] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

@mergifyio rebase

@mergifyio backport branch-3.1 branch-3.2


Query "Never Signed In" Accounts and suspend them

Good day, JLee!
Is there a way to query all accounts that were "Never Signed In" and suspend them also?
Thanks for any help.

Please post your question to the discussion group:
groups.google.com/group/google-apps-manager


[Project] Security and crypto review

We need to review conceptual articles and API reference to make sure we have current guidelines re. security and cryptography.
MD5 and SHA1 shouldn't be used anymore -> SHA256 / 384 / 512
Updates to conceptual docs (~50)

[ ] @mairaw to grab BI data to help with prioritization
[ ] review topics to make sure they have accurate guidance

API docs

[ ] add notes for MD5/SHA1/etc.

Samples
not removing samples from the APIs if they're useful. We'll just add notes to recommend other algorithms.

[ ] Remove MD5/SHA1 -> SHA256/384/512
[ ] Remove RC2/DES/TripleDES/Rijndael -> AES
[ ] SSL2,SSL3,TLS or SSLProtocols enum -> None ( it was Default before)
[ ] RSA/DSA: exposed two Windows implementations (older RSA/DSACryptoServiceProvider, newer RSA/DSACNG) and other restrictions on key sizes and parameters. The base class is RSA/DSA.
[ ] Remove RIPEMD160 -> SHA256
[ ] Remove MacTripleDES -> HMAC SHA256
[ ] Remove usage of the PrivateKey property

These are some raw notes to get this project started. We'll create individual issues as we go.
/cc @rpetrusha @bartonjs @AlexGhiondea @morganbr - please let me know if I missed anything or captured anything wrong

Closing, as Ron created a Security review project and converted all of these tasks to issues in that project.


MongoDB support?

i was looking at resourceful and it seems pretty awesome..
i was wondering if there was any change to add a MongoDB support in addition to CouchDB
thx

i've just seen https://github.com/codebrew/resourceful-mongo, sorry


Python 3.13 Versions

A question, not really an issue. When I install Python 3.13 I see that it is picking up release candidate 3 Python 3.13.0rc3 (main, Oct  2 2024, 16:40:04) and not the final version released on Oct 7. it probably makes no difference to me but I was wondering when the version that uv sees gets updated.

Are you on the latest version of uv? We released Python 3.13 last night, but the versions are tied to the uv version, so you need to update uv itself.


 There a unit test for this?

Wontfix!

Can't repro


add functionality to save cmdstan csvs for both models

@damonbayer As requested, here is functionality to save the raw cmdstan csvs. Feel free to change the directory of where to save them.
Not sure if we want to write a wrapper function around this that defaults to not saving (if someone runs this many times, these won't over write bc they are by default time-stamped).

Thanks! This is really useful to me, but I don't know if it needs to be part of the vignette for everyone to see. Up to you.

Agreed, probably not! Going to close


build android demo error

ERROR: missing input file '@local_jdk//:jre/lib/resources.jar'
ERROR: /home/wangmeng/.cache/bazel/_bazel_wangmeng/b0a6578298b02ab8f9d039326e51a46f/external/bazel_tools/tools/android/BUILD:104:1: @bazel_tools//tools/android:gen_java_lang_extras_jar: missing input file '@local_jdk//:jre/lib/resources.jar'
Target //tensorflow/examples/android:tensorflow_demo failed to build
Use --verbose_failures to see the command lines of failed build steps.
ERROR: /home/wangmeng/.cache/bazel/_bazel_wangmeng/b0a6578298b02ab8f9d039326e51a46f/external/bazel_tools/tools/android/BUILD:104:1 1 input file(s) do not exist
INFO: Elapsed time: 22.408s, Critical Path: 0.03s
FAILED: Build did NOT complete successfully

@wm901115nwpu : Could you please provide all information asked for in the issue template?
From the little snippet provided, it seems the issue is that bazel is unable to find some files it expects from the JDK, so perhaps your JDK installation is broken?
Full instructions to reproduce will be helpful.

I run bazel build -c opt //tensorflow/examples/android:tensorflow_demo
java version:java 9.0.4
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
bazel version: bazel release 0.10.0

Closing this as this appears to be a bazel issue.
See https://github.com/tensorflow/tensorflow/issues/16723#issuecomment-363985153
and follow progress on https://github.com/bazelbuild/bazel/issues/3988
Thanks!


Use main browser window instead of popup?

I've been noticing a problem w/Chrome lately where the Satellizer popup window is opening in the background, behind the current browser window.
It's confusing for users, b/c they click the button to login and nothing seems to happen. We're noticing this in Chrome (Version 46.0.2490.86 (64-bit)) on Mac OS. Not an issue with Safari or Firefox.
Chrome also has a pop up blocker enabled by default, and it's easy for users to miss that Chrome has blocked the popup window.
I'm noticing that some sites using social logins are not using pop up windows for social logins (StackOverflow, Buffer, HootSuite).
I also noticed the display: 'popup' entry in the configuration options. I tried passing window instead of 'popup` but that had no effect. In looking at the code, I don't see this setting being used (I could have missed it).
Is it possible to not use a pop up window?

+1 this

Is it possible to not use a pop up window?
No it is not supported, and there are no plans to add it.

Those sites you've linked are not single page apps. It doesn't matter if you redirect away to facebook, twitter, google and come back. That's not the case for Angular or any other single page apps where redirect/page refresh can reset your app state.
If you do not wish to you use a popup authorization flow, you may just use passport.js (assuming you are running Node on the back-end).
Personally, I have never run into any issues that you describe and I run Chrome with AdBlocker.

Got it, it makes sense... The pop is necessary b/c the SPA needs to maintain state while the redirects are occurring.
I'm at a loss to explain why Chrome is misbehaving in terms of the pop up window not appearing in the foreground.
Given others are not experiencing that, I have hope that it's just an isolated problem with my app and thus can be fixed.

@sunild Have you tried using an Incognito Chrome window without any extensions? There was a case a month ago, reported by one of the users here, where authentication was failing because of some Chrome extensions I can't recall anymore. Disabling that extension fixed the problem.

So the question is "why is there a display option" ?
I also need to use a redirection (or iframe) to display login form of my OAuth2. I thought that there were possibilities to use other way to display form that popup just because I saw that option. Right now, I'm sad because I will stop to use satellizer only because my client asked me to display login form in a new window or in iframe.
That's really a pitty because satellizer is way better than a lot of other Angular modules I tried...

+1
@sahat even if a redirect will reset application state in any case, we[your end users] should be able to choose if we want to use the main browser window regardless, and somehow worry about application state resets if at all it becomes necessary. This is an awesome library, but like @metal3d, my client has  requested main browser redirect implementation....sad.

I agree, for some apps the start of the application is when you log in so to be redirected and back is the start of the entire flow of the application. Sometimes an application reset is a good thing, especially if you want to reset the security state. This is more common in business apps I think.

At this time, I made a "workaround":
I've integrated the iframe url that I get from popup (and manipulate url to integrate some variable information) - then register "satellizer_token" in localStorage when frame redirects with "?code=..." + refresh window.parent (window.parent.location.reload())
On relead, satellizer seems to be ok with my token and that seems to work as expected... So I can confirm that tweaking makes the whole process working.
I really don't know the complexity that satellizer yields to be unable to use an iframe. And I really don't have the time right know to try to propose a PR.

@metal3d I am also facing a similar situation. Could you share the details of the workaround that you mentioned?

I had to find the popup url to create an iframe inside, configure oauth2 callback page to set a GET argument that I can check
Then when the oauth2 page back to my home page (with "?token" argument), I detect this argument, write localstorage value, redirect parent frame to my application...
A way complicated to implement solution, but I can confirm that after a long time of test, we could do it. I'm pretty sure that satellizer team can implement this...

Thanks a lot Patrice. That helps.
From: Patrice Ferlet<EMAIL_ADDRESS>Sent: Friday, October 21, 2016 5:03 AM
To: sahat/satellizer<EMAIL_ADDRESS>Cc: James, Viju<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [sahat/satellizer] Use main browser window instead of popup? (#656)
I had to find the popup url to create an iframe inside, configure oauth2 callback page to set a GET argument that I can check
Then when the oauth2 page back to my home page (with "?token" argument), I detect this argument, write localstorage value, redirect parent frame to my application...
A way complicated to implement solution, but I can confirm that after a long time of test, we could do it. I'm pretty sure that satellizer team can implement this...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_sahat_satellizer_issues_656-23issuecomment-2D255362839&d=CwMFaQ&c=UrUhmHsiTVT5qkaA4d_oSzcamb9hmamiCDMzBAEwC7E&r=KbeFpKIme5d4uNY0d_nDFAS6g3If3q0BAA3AQiKyQ4Y&m=IUuH3cr1GJvlpPvi9mYJuItyXMRknir44SS0xJ3kcZQ&s=m9jMRohni3cVyzeCMFDohw5mCMjOM86sQ_Z61JcY15U&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_APZPlCsGZy2jAUgp9SWtQ5Lyj6RbvlK1ks5q2KoEgaJpZM4Goqvu&d=CwMFaQ&c=UrUhmHsiTVT5qkaA4d_oSzcamb9hmamiCDMzBAEwC7E&r=KbeFpKIme5d4uNY0d_nDFAS6g3If3q0BAA3AQiKyQ4Y&m=IUuH3cr1GJvlpPvi9mYJuItyXMRknir44SS0xJ3kcZQ&s=j177yf8xK1Wl3vHcOG6Z99PRIZS0Z4dwkYECIbIF-hU&e=.

When I tried to use window as a value of display option I got this:
display must be one of the following values: async, iframe, page, popup, touch, wap
Maybe this helps someone.


Upgrade to v2.3/v2.4 results in post-setup failure

We are using actions/setup-node v2.2 in Yarn-based monorepo. We attempted upgrade to v2.3 and v2.4, but the updated version fails with error Error: Cache folder path is retrieved for yarn but doesn't exist on disk in post-setup step in workflows that also run yarn install command. (We have a workflow that runs yarn audit without actually installing the dependencies. and an upgrade to v2.3/v2.4 passes there without failures.)
Our usage:
    steps:
    - name: 'Checkout'
      uses<EMAIL_ADDRESS>    - name: 'Setup Node'
      uses<EMAIL_ADDRESS>      with:
        node-version: 14.x
        cache: 'yarn'

Logs from "Setup Node" step (identical for passing and failing builds):
Run<EMAIL_ADDRESS>  with:
    node-version: 14.x
    cache: yarn
    always-auth: false
    check-latest: false
    token: ***
Found in cache @ /opt/hostedtoolcache/node/14.17.4/x64
/usr/local/bin/yarn --version
1.22.11
/usr/local/bin/yarn cache dir
/home/runner/.cache/yarn/v6
yarn cache is not found

Logs from "Post Setup Node" in successful v2.4 run:
Post job cleanup.
/usr/local/bin/yarn --version
1.22.11
/usr/local/bin/yarn cache dir
/home/runner/.cache/yarn/v6
/usr/bin/tar --posix --use-compress-program zstd -T0 -cf cache.tzst -P -C /home/runner/work/<redacted>/<redacted> --files-from manifest.txt
Cache Size: ~0 MB (258 B)
Cache saved successfully
Cache saved with the key: node-cache-Linux-yarn-abc1f1c083ff490ac797c8966c624b3975d27c522daaed7ed60b66058fca009f

Logs from "Post Setup Node" in failed v2.4 run:
Post job cleanup.
/usr/local/bin/yarn --version
1.22.11
/usr/local/bin/yarn cache dir
/home/runner/.cache/yarn/v6
Error: Cache folder path is retrieved for yarn but doesn't exist on disk: /home/runner/.cache/yarn/v6

+1
I observed the same problem, and rolled back<EMAIL_ADDRESS>to prevent the Cache Size: ~0 MB problem.

+1
Seeing the same issue when using version 2.4.0 with npm caching.
Post job cleanup.
/opt/hostedtoolcache/node/14.17.4/x64/bin/npm config get cache
/home/runner/.npm
Error: Cache folder path is retrieved for npm but doesn't exist on disk: /home/runner/.npm

Hello everyone. Thank you for your report. The action on post-step fails If caching directory does not exists, that is why it has nothing to cache. The action throws an error to prevent saving empty folder.

Just a gentle ping.

Frankly, I was patiently waiting for a fix... Are you expecting us to do something about it? I don't think we can, since the post-step is not something the action users have any control over.

The current behavior is expected and correct. We don't have plans to change it.
If cache is enabled in YAML and build doesn't install any dependencies - nothing to cache and cache feature won't work properly. In previous version, we skipped such errors silently but starting from 2.4.0, we have decided to fail the builds to notify users that "cache doesn't work" and user can either fix his build or disable cache.

If cache is enabled in YAML and build doesn't install any dependencies - nothing to cache and cache feature won't work properly.

Doesn't this strip actions/setup-node build steps of their idempotence? That is, actions/setup-node build steps may behave differently based on the success or failure of other steps in the job, whether or not the job has been run before, and/or the results of previous jobs?
If so, I feel we may have lost something value here.

In previous version, we skipped such errors silently but starting from 2.4.0, we have decided to fail the builds to notify users that "cache doesn't work" and user can either fix his build or disable cache.

I personally would prefer the previous behavior, as I don't want to have to worry about whether or not setting the cache flag on actions/setup-node might cause otherwise successful jobs to fail. I get not wanting to silently swallow "cache doesn't work" issues — perhaps a clear warning in the job logs is more appropriate than a fatal error?
Here's a workaround I'm using for now, FWIW:
      # Workaround to avoid Post Use step failures. See: https://github.com/actions/setup-node/issues/317
      - run: mkdir -p /home/runner/.cache/yarn/v6
        continue-on-error: true

Appreciate your continued investment in this project, Dmitry and team! 🙇 🙏

If cache is enabled in YAML and build doesn't install any dependencies - nothing to cache and cache feature won't work properly.

Doesn't this strip actions/setup-node build steps of their idempotence? That is, actions/setup-node build steps may behave differently based on the success or failure of other steps in the job, whether or not the job has been run before, and/or the results of previous jobs?
If so, I feel we may have lost something valuable here.

In previous version, we skipped such errors silently but starting from 2.4.0, we have decided to fail the builds to notify users that "cache doesn't work" and user can either fix his build or disable cache.

I personally would prefer the previous behavior, as I don't want to have to worry about whether or not setting the cache flag on actions/setup-node might cause otherwise successful jobs to fail. I get not wanting to silently swallow "cache doesn't work" issues — perhaps a clear warning in the job logs is more appropriate than a fatal error?
Here's a workaround I'm using for now, FWIW:
      # Workaround to avoid Post Use step failures. See: https://github.com/actions/setup-node/issues/317
      - run: mkdir -p /home/runner/.cache/yarn/v6
        continue-on-error: true

Appreciate your continued investment in this project, Dmitry and team! 🙇 🙏

@dmitry-shibanov Finally, I had a chance to dive a bit deeper into the issue and add some debugging to the action upgrade PR. I see that Yarn cache exists, but post-setup is unable to find it (as you can see on the screenshot below). How do you suggest to proceed with that?

Hello @khitrenovich. Could you please provide repro steps or public repository ? I've tried to reproduce by my own, but it works as expected.

@dmitry-shibanov I was able to eliminate the failure after removing
env:
  FORCE_COLOR: true

setting from the job that was failing in the upgrade PR. My guess would be that the action relies on running terminal commands and parsing the output, which might be affected by the terminal settings. Removing the setting may provide a workaround, but making this a permanent limitation will be pretty inconvenient.
Here is the minimal workflow that will reproduce the issue on any Yarn-based repository:
name: Setup Node Test

on:
  workflow_dispatch:
  pull_request:

env:
  FORCE_COLOR: true

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - name: 'Checkout'
      uses<EMAIL_ADDRESS>    - name: 'Install Node.js'
      uses<EMAIL_ADDRESS>      with:
        node-version: 14.x
        cache: 'yarn'
    - name: 'Install dependencies'
      run: |
        yarn install --frozen-lockfile

Hello @khitrenovich. Thank you for your response. I think it's known problem. We had a similar issue. Please take a look and feel free to contact us if you have any questions.

Oh, good to know. Thank you for the reference!

Hello @khitrenovich. Thank you for your response. I think it's known problem. We had a similar issue. Please take a look and feel free to contact us if you have any questions.

Hi @dmitry-shibanov, considering this is a known problem, do you would have sense to revisit this and prevent user's using FORCE_COLOR: 1 or at least provide a warning/error message when using it?

If you're using NPM (and not Yarn), I modified @byrondover's solution to make it work for our use case:
      # Workaround to avoid "Post Run actions/setup-node" failures.
      # See: https://github.com/actions/setup-node/issues/317
      - run: mkdir -p /home/runner/.npm
        continue-on-error: true

Here's another workaround (thanks @daniellockyer!) https://github.com/TryGhost/Ghost/commit/aec14e5cf34bbb96720e303c32e1cae3fc884169
       - uses: actions/setup-node@v3
+        env:
+          FORCE_COLOR: 0

Rather than users having to disable colour output for the whole workflow (makes reading logs and diagnosing problems harder), or having to disable it for just the step as shown here, how about actions/setup-node disabling FORCE_COLOR by default, just for its own step?


UAA does not transfer/relay the user scopes from a token acquired from external OIDC IDP

What version of UAA are you running?
4.10.0
What output do you see from curl <YOUR_UAA>/info -H'Accept: application/json'
{"app":{"version":"4.10.0"},"showLoginLinks":true,"links":{"uaa":"http://localhost:8080/uaa","passwd":"/forgot_password","login":"http://localhost:8080/uaa","register":"/create_account"},"zone_name":"uaa","entityID":"uaa-8080-saml","commit_id":"a4132cb","idpDefinitions":{},"prompts":{"username":["text","Email"],"password":["password","Password"],"passcode":["password","One Time Code ( Get one at http://localhost:8080/uaa/passcode )"]},"timestamp":"2018-02-06T18:24:36+0000"}
How are you deploying the UAA?
As a war file in Tomcat
What did you do?
I want UAA to propagate the user scopes that it gets in a token which is acquired from external OIDC IDP.
For this example I have UAA-1 and UAA-2 where UAA-1 configures UAA-2 as external OIDC IDP.
If an application uses UAA-1 as external OIDC provider, and the user is authenticated via UAA-2, I want UAA-1 to simply relay the user scopes correctly to the down application.
Here are the excerpts from the uaa.yml of UAA-1 from my example above:
login:
oauth:
providers:
localuaa:
type: oidc1.0
authUrl: http://localhost/uaa/oauth/authorize
tokenUrl: http://localhost/uaa/oauth/token
tokenKeyUrl: http://localhost/uaa/token_key
issuer: http://localhost/uaa/oauth/token
linkText: Login with local UAA
showLinkText: true
addShadowUserOnLogin: true
relyingPartyId: $clientId
relyingPartySecret: $clientSecret
skipSslValidation: true
attributeMappings:
user_name: email
external_groups: scope
externalGroupsWhitelist:
- uaa.admin
scim:
external_groups:
localuaa:
uaa.admin:
- uaa.admin
From this config I expect that if a user is authenticated via UAA-2, UAA-1 will look for user scopes in the claim 'scope' and if 'uaa.admin' claim found then it will assign scope 'uaa.admin' to the user. The application that will use UAA-1 as Oauth/OIDC provider will get the token with required scope i.e. 'uaa.admin'
What did you expect to see? What goal are you trying to achieve with the UAA?
Explained above
What did you see instead?
The web application using the UAA-1 as an Outh2/OIDC provider does not get the user scopes mapped with external_groups. In other words the UAA-1 does not propagate the scopes of the user further down the chain.
My analysis:
Property 'externalGroupsWhitelist' is ignored while bootstrapping the OIDC IDP.
I checked here: https://github.com/cloudfoundry/uaa/blob/4.10.0/server/src/main/java/org/cloudfoundry/identity/uaa/provider/oauth/OauthIDPWrapperFactoryBean.java#L99
But may be I am wrong.
Even if the 'externalGroupsWhitelist' is used by the OIDC IDP, the only scope that appears in the id_token is 'openid':
See: https://github.com/cloudfoundry/uaa/blob/4.10.0/server/src/main/java/org/cloudfoundry/identity/uaa/oauth/UaaTokenServices.java#L494
Is there a way I can make the UAA to simply propagate/relay the user scopes to the calling application in case the user is authenticated via an external Oauth2/OIDC IDP?

@htulsiani
Thanks for creating this issue. When requesting an id token from the UAA, you are correct in that the scope claim is hardcoded to openid.
Resource Providers use scopes as a mechanism of checking to see if the client has permission to access a resource on behalf of a user. However in this use case, you should really be using an access token according to the oauth spec. This use case is not what the id token was designed for. (From the oidc spec: " It (id tokens) enables Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server, as well as to obtain basic profile information about the End-User in an interoperable and REST-like manner")
The claims added to the id token are specified in the oidc spec. The scope claim is not a 'standard claim', however the UAA does add it hardcoded to openid (from my understanding for backwards compatibility).
external_groups mapping if configured correctly should map to the roles claim in an id token.
FYI there is a story to investigate this issue and confirm that group mappings work for oidc. https://www.pivotaltracker.com/story/show/155573014

As an updated, we did confirm UAA is mapping over external groups from OIDC providers correctly. That is, UAA-zone-2 can map groups against a scope or roles claim from UAA-zone-1.  https://www.pivotaltracker.com/story/show/155573014 has more details.
However, one UAA-zone-1 cannot pass over its group information via OIDC to UAA-zone-2 as we do not expose a user's groups in the ID token from UAA-zone-1 today. We plan to address this in https://www.pivotaltracker.com/story/show/155611749.

Closing due to inactivity.


Incompatibility with werkzeuf 2.1.x (released on 2022-03-28)

  File "/home/bdauvergne/.tmp/tox-bdauvergne/passerelle/py3-django22-xmlschema14-codestyle-coverage/lib/python3.9/site-packages/pytest_httpbin/plugin.py", line 3, in <module>
    from httpbin import app as httpbin_app
  File "/home/bdauvergne/.tmp/tox-bdauvergne/passerelle/py3-django22-xmlschema14-codestyle-coverage/lib/python3.9/site-packages/httpbin/__init__.py", line 3, in <module>
    from .core import *
  File "/home/bdauvergne/.tmp/tox-bdauvergne/passerelle/py3-django22-xmlschema14-codestyle-coverage/lib/python3.9/site-packages/httpbin/core.py", line 22, in <module>
    from werkzeug.wrappers import BaseResponse
ImportError: cannot import name 'BaseResponse' from 'werkzeug.wrappers' (/home/bdauvergne/.tmp/tox-bdauvergne/passerelle/py3-django22-xmlschema14-codestyle-coverage/lib/python3.9/site-packages/werkzeug/wrappers/__init__.py)

from werkzeug.wrappers import Response as BaseResponse
it worked

I'm wondering if someone needs to fork httpbin at this point. @kennethreitz , are you not interested in keeping it working any more?

It does seem like a maintained fork would be helpful to apply this simple change.


14.2.0 does multiple resending of messages even if they arrived

For me and my friends it's really annoying that 14.2.0 is re- and resending the last message to the receiver even if it already arrived. AFAIS happens this always after reconnecting. So if if you have an unstable connection this is really a no go and we had to downgrade to 14.1.1-rc5 until this problem is solved.
But thank you for the good work on ChatSecure keep going on.  :-)

When you say re and re-sending, how many times are you seeing these messages? Is it only when one side drops off and reconnects? Is this with OTR on or off? Are both sides using ChatSecure or just one?
We didn't see this happen in any of our testing, but we did make adjustments to our code in the area of on/offline sending, so I can imagine there is some set of circumstances where it is happening.

Our configuration is OTR on. After the sender was offline and then goes online the last message is displayed on the receiver side again, this happens "endless". The sender does not see anything of this, just only the (one) original message. Both sides with ChatSecure.

I have experienced this as well. I notice it begins happening during a "sketchy" data connection - like going underground in a subway. It continues to happen when logging back online. I get the same message anywhere from 2-4 times every time I log out and then back in again. Both sides chatsecure-android. It started happening with the latest release, 14.2.0.

More info: The message that is repeating seems to be the first message in a conversation (like when you start and end a convo by going to "End chat"). Even if that conversation is ended (via the "End Chat" option), the account deleted on one end, then added again, it still repeats that first initial message AND the new initial message. At this point, I'm getting repeats of 4 initial messages from different convos with the same user. All 4 messages are reset/delivered over and over when the other end disconnects/connects.
I received these repeat messages when the OTHER user switched from cellular data to a wifi connection. Again, it seems to happen on changes to the data connection.

Thanks for all the detail. It seems the re-send/offline/queue logic we added is overzealous and overcompensating.

Sorry this has taken so long to fix, but it has been fixed now in this pull request: https://github.com/guardianproject/ChatSecureAndroid/pull/706
We'll finish testing and ship an update this week.

There is a release candidate build posted here: https://guardianproject.info/releases/ChatSecure-v14.2.1.apk

Can confirm this was fixed in 14.2.1!

Works for me in 14.2.1 as well, please consider pushing this release to the play store.

Oh I thought we did! Grrr. Will make that happen.

Has this been pushed to the play store?
Its very annoying...

Hey Guys what do you make all the day? When comes the update of chat secure in the playstore?

14.2.1  was published to Google Play.


when TestParallelize added t.Parallel(), the output is not expected

https://github.com/hoanhan101/ultimate-go/blob/master/go/testing/sub_test.go
test method: TestParallelize
before added output:
=== RUN   TestParallelize
11_test.go:82: Given the need to test downloading different content.
--- PASS: TestParallelize (1.04s)
=== RUN   TestParallelize/statusok
11_test.go:90: 	Test: 0	When checking "https://www.baidu.com" for status code 200
11_test.go:96: 	✓	Should be able to make the Get call.
11_test.go:101: 	✓	Should receive a 200 status code.
--- PASS: TestParallelize/statusok (0.28s)
=== RUN   TestParallelize/statusnotfound
11_test.go:90: 	Test: 1	When checking "http://rss.cnn.com/rss/cnn_topstorie.rss" for status code 404
11_test.go:96: 	✓	Should be able to make the Get call.
11_test.go:101: 	✓	Should receive a 404 status code.
--- PASS: TestParallelize/statusnotfound (0.75s)
PASS
after added t.Parallel()
=== RUN   TestParallelize
11_test.go:82: Given the need to test downloading different content.
--- PASS: TestParallelize (0.00s)
=== RUN   TestParallelize/statusok
=== PAUSE TestParallelize/statusok
=== CONT  TestParallelize/statusok
11_test.go:90: 	Test: 1	When checking "http://rss.cnn.com/rss/cnn_topstorie.rss" for status code 404
11_test.go:96: 	✓	Should be able to make the Get call.
11_test.go:101: 	✓	Should receive a 404 status code.
--- PASS: TestParallelize/statusok (1.00s)
=== RUN   TestParallelize/statusnotfound
=== PAUSE TestParallelize/statusnotfound
=== CONT  TestParallelize/statusnotfound
11_test.go:90: 	Test: 1	When checking "http://rss.cnn.com/rss/cnn_topstorie.rss" for status code 404
11_test.go:96: 	✓	Should be able to make the Get call.
11_test.go:101: 	✓	Should receive a 404 status code.
--- PASS: TestParallelize/statusnotfound (0.71s)
PASS
the bold text is the difference

11_test.go:90: Test: 1 When checking "http://rss.cnn.com/rss/cnn_topstorie.rss" for status code 404 on both changes look the same to me. I am not sure what's the difference anywhere else too. Can you elaborate?

11_test.go:90: Test: 1 When checking "http://rss.cnn.com/rss/cnn_topstorie.rss" for status code 404 on both changes look the same to me. I am not sure what's the difference anywhere else too. Can you elaborate?

the difference is,  after add "t.Parallel()",
the test case only output "... rss.cnn ... for status code 404" twice
it means no "... google ... for status code 200" test case run.
because for loop in golang,  for i, tt := range tests {  the tt's address always the same, so the test case only run the last data for many times, I commit a pull request just add tt := tt to fix it
you can use this test code for a simple difference
`func Test_test(t *testing.T) {
data := []int{1,2}
for _, v := range data{
	fmt.Printf("same %d, %v \n", &v, v)
	v := v
	fmt.Printf("diff %d, %v \n", &v, v)
}

}`

I see. Thanks so much for the fix. I'll go ahead and merge it.


Long delay updating file name when navigating between files

Thanks again for the awesome work on the plugin.  The latest update has been a dream to use! 😄
I'm noticing a pretty big delay when switching between harpooned files.  I use tabs disabled.  Are you seeing this big of a delay?
https://gyazo.com/b93ad05edd8bbecdcb7debb28d72ec85
To rule out an IDE issue, I checked other ways of switching files like the fuzzy finder and recent file switcher.  These seem to have some delay, but not nearly as much as using harpoon.
Although seeing there is still some delay with the raw IDE feature, this is probably an IDE bug.  Just looking for confirmation that it's not a local issue with my machine.

Hey,
i don't exprience any delay on my end, i can switch back and forth between files pretty much as fast as i can press the keys. I also have a very fast computer with a high end SSD so that could be why i don't have any delay.
I think currentyl i am just naively loading the file every time you press a hotkey. I have a suspcitian this is maybe loading the file from disk every singe time instead of switching to an already open tab with that file loaded
I don't have time right now but in the near future i will see if i can make this file switching smarter / hopefuly resolve your delay as that seems very frustarting.

Apologies, I worded my OP very poorly.  The file content switch happens instantly.  The breadcrumb showing the filename at the bottom switches almost instantly too.  But the filename at the top does not.
After spending a few more days with it, it doesn't seem to be related to HarpoonIJ at all so feel free to close this issue.  I am still curious if you see the same delay I'm seeing with that top bar component.  Would indicate to me if there some issue with my jetbrains config.

Confirmed it with Jetbrains.  Reproduceable issue on their end.


Added flag for appending a string to folder name

Category
This change is exactly one of the following (please change [ ] to [x]) to indicate which:

[x] a new feature

Description
Add the -a flag for appending a string to the rip folder name
Testing
Required verification:

[ ] I've verified that there are no regressions in mvn test (there are no new failures or errors).
[ ] I've verified that this change works as intended.

[ ] Downloads all relevant content.
[ ] Downloads content from multiple pages (as necessary or appropriate).
[ ] Saves content at reasonable file names (e.g. page titles or content IDs) to help easily browse downloaded content.

[ ] I've verified that this change did not break existing functionality (especially in the Ripper I modified).

Optional but recommended:

[ ] I've added a unit test to cover my change.

[x]


Deploy Commerce Mock Application in the Kyma Runtime

Tutorial: https://developers.sap.com/tutorials/cp-kyma-mocks.html
Landscape label: trail1 & trail2 & ap
Priority : High-prio
Step 2: Apply resources to Kyma runtime
Apply the APIRule of the mock application to the dev Namespace by choosing the Deploy new resource option, using the Browse option to choose the xf.yaml file, and finally choosing Deploy. The APIRule exposes the resource to the Internet.
You can find the file at at /SAP-samples/xf-application-mocks/commerce-mock/deployment/xf.yaml.
Actual Result :
The file name has to be "kyma.yaml" not "xf.yaml" inside deployment folder.
Please update accordingly.
Thanks
Mounika

Hi Mounika,
Thank you. This is fixed in QA and will be updating to prod later this week.

Hi Mounika,
Thank you. This is fixed in QA and will be updating to prod later this week.

Hi @jcawley5 ,
Could you please prioritize this & update document by EOD today?
since we have this scenario to be executed in d-kom hands-on session that's going to happen tomorrow in India.
Thanks
Mounika

Hi @jcawley5 ,
Could you please prioritize this & update document by EOD today?
since we have this scenario to be executed in d-kom hands-on session that's going to happen tomorrow in India.
Thanks
Mounika

Added the xf.yaml file back temporarily until the tutorial is updated.

Added the xf.yaml file back temporarily until the tutorial is updated.


"Permissions manager is not accessable. Is PermissionsEx enabled?"

i have a server that has permissions Ex and it worked the other day and now it don't and idk why can some 1 plx help and it does it as soon as the server starts i have stopped it and started it but it wont work.i have deleted and re added the plugin and the plugin folder and paste the groups back in but it didn't work

I had this issue too while setting up. I had some formatting issues (spaces where they shouldn't be) that a dev was able to find and fix. Double check your formatting in the config and permissions yml files

Unfortunately PermissionsEx is currently unmaintained and no further updates are planned. Because of this, all pull requests are being closed. If you are looking for an actively maintained permissions plugin, take a look at LuckPerms. It is compatible with major server platforms and can import data from PEX.


why is N-NRSfM [44] not compared in Tab.3?

Thanks for the great work. What's the reason for not comparing to [44] in Tab.3 (mesh reconstruction)?

Hi, N-NRSfM could be evaluated but the comparison would be unfair.
Specifically N-NRSfM represents shape as an open surface (a sheet of paper) but the target mesh are closed surfaces.

thanks


OAI-PMH: Use scheme for identifiers

Package version (if known): v10
Describe the bug
An entry for an identifier looks like this: <dc:identifier>10.81088/56s5n-a5j67</dc:identifier>. A correct identifier should either use the https:// or doi: scheme.
Example:
<dc:identifier>https://doi.org/10.81088/56s5n-a5j67</dc:identifier> or  <dc:identifier>doi:10.81088/56s5n-a5j67</dc:identifier>

The background for this issue here is that we want to have BASE harvest our metadata via the OAI-PMH endpoint, similar to OpenAIRE.
However, this doesn't work currently because the way InvenioRDM provides the DOI is different from what BASE expects.

Note: Adding the https://doi.org/ prefix to idutils.normalize_doi() will result in issues in InvenioRDM, e.g. the deposit form:

This happened after:

Creating a new draft
Filling out the required metadata
Clicking "Get DOI now"
Saving the draft

Some information that I've dug up:
The OAI-PMH metadata formats are configured in the configuration variable OAISERVER_METADATA_FORMATS.
In a default InvenioRDM installation, all configured formats reside in invenio_rdm_records.oai.
These serializers are called on the records' dumped JSON (either service.read(...).to_dict(), or effectively the _source key for each hit in search results).
Potential spots where the identifier scheme could be added to the identifier include:

In the normalization done via idutils (the outcome of that is documented above)
In the service layer as part of a service component (probably a bit silly)
As part of schema.dump()/record_item.to_dict() (that's what's being done in the linked PR)
In the registered metadata serializers (that would probably have the least impact on the rest of the system, but the most duplication)

Update:
It might be that this issue only really applies to the Dublin Core export (oai_dc), because the other metadata formats (datacite and oai_datacite) have a kind of identifierType attribute on the identifiers' elements.
@slint mentioned that other repositories do this for the DC export as well (e.g. see the result of the DC export on the bottom for e.g. this dataset: Bottom > Exports > DC).
We could update our own DC exporter to create such attributes as well.
This would also solve the questions regarding identifiers that neither have a URL form nor a scheme prefix (e.g. EAN13).
@SotosTsepe has sent an email to BASE, asking for more details and if that approach would be fine with them.
According to the Crossref DOI display guidelines, a DOI should always be displayed as a full URL (https://doi.org/10.xxxx/xxxx).
This also suits some parts of the landing page UI very well, but in the small blue DOI badge in the boxes on the right it looks weird.
This could also be achieved more selectively by using idutils.to_url() on the DOIs on the landing page only where we want it.

Update:
We got a response by the BASE team which says that:

They only require the identifier schemes in the oai_dc metadata schema
Their parsing ignores all attributes that any of the XML elements might have (i.e. an identifierType attribute would be ignored)

Further, I had a look into the Dublin Core specs 1.1 as well as the newer DCMI metadata terms.
Neither document mentions any kind of identifierType attribute.
Also, I couldn't quickly identify any standard regarding the expected shape of the JSON version of the Dublin Core export.
Thus, it wasn't clear to me whether or not any changes to the export structure would break existing software, and I figured the best way to go ahead would be to keep the changes as minimal as possible.
https://github.com/inveniosoftware/invenio-rdm-records/pull/1257 only touches the DC serializer itself, and keeps the export structure the sames as before.

I think I got carried away by what I saw on the FigShare export on their landing page (see example download DC format).
On their OAI-PMH though for the same record (see XSLT formatted and also the page source), there is no identifierType attribute, and the DOI is not prefixed or formatted as a URL...
Harvard Dataverse also doesn't have the attribute (see example), but they do format the DOI as a URL.
On Zenodo currently, we're rendering <dc:identifier> without any prefix, and alternate identifiers end up in <dc:relation>, with some fancy info:eu-repo format (no idea where this comes from, have to ask the Zenodo e̷̡͓͉̲̭͋̏͐͝͝ͅͅl̴̨͉͉͔͚̩͒̉͑d̴͉̺͖͌̎̑͌̚͠e̶͖̗̣̦̒͌͊̌̔r̷̤͉̥͉̞͕͎͕̒̾̅͒̌̌ş̷̡͈̖̰̪̒͌̆̑͐́̾). I think we're a bit in a pickle... For Zenodo we don't want to break compatibility of the format, since it's being harvested a lot via OAI-PMH, and that would break existing clients.
That means that we're looking for a subset of these options:

having DC-serializer-specific settings for formatting identifiers
solving via replacing with a sub-classed serializer per-instance

Given that the new PR only touches the DublinCoreSchema (in invenio_rdm_records.resources.serializers.dublincore.schema), option 1 shouldn't be too much of a problem.
The logic in invenio-oaiserver checks if the configured metadata format serializer is a tuple and if so, uses the second entry as keyword arguments to the imported function.
This is done in the default configuration of Invenio-OAIServer, and could be done in the default Invenio-App-RDM configuration as well.
I'm thinking about passing the second part of the configuration as schema_context to the serializer (and further to the DublinCoreSchema), which could be used in the schema to determine whether or not to dump the prefixes.
What do you think of this?

Alright, updated the PR and tested it; looking good.
Other than the reordering of the identifier entries (PIDs first now), the system can be made to behave exactly as before with a line or two of config.


Hanging after entering release ID, cannot Ctrl+C

In case you aren't fed up with me yet: beets is hanging after I entered a release ID to be searched. I'm assuming it has something to do with #1305 however I can't Ctrl+C out.

Since I can't reproduce this, can you please do some more investigation? The verbose log (and your system setup details) is critical, and anything else you can do to shed light would be helpful.

I haven't been able to replicate the problem, it may have been because of a laggy internet connection at the time, who knows. Is there not a general way to add Ctrl-C as a way to exit the operation/program?

There's some more info about ^C on the FAQ. http://docs.beets.io/en/v1.3.10/faq.html#ignore-control-c-during-an-import


added motive data as provided

Issue that this pull request solves
Closes: #213
Proposed changes
Brief description of what is fixed or changed
Types of changes
Put an x in the boxes that apply

[x ] Bugfix (non-breaking change which fixes an issue)
[x ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Put an x in the boxes that apply

[ x] My code follows the style guidelines of this project
[x ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[x] My changes does not break the current system and it passes all the current test cases.

Screenshots

Other information
added .prettierrc file to format document for better understanding of code
Any other information that is important to this pull request

Hey @chait04 we appreciate your effort but please don't start working on an issue until you get assigned to it.
Thanks

Hey @chait04 we appreciate your effort but please don't start working on an issue until you get assigned to it.
Thanks


[bug]: added SSH public keys are not respected on LAN

Prerequisites

[X] I have searched for existing issues that already report this problem.

Device
Laptop/Desktop
Device OS
MacOS
Device OS Version
12.6.1
Browser
Brave
Browser Version
1.45.123
Current Behavior
The short of it is SSH authentication to gitea on LAN seems broken out of the box. Details below.
From a chat with David Croisant:

I basically just made an initial repo, did a ssh-keygen -t ed25519 -C blah on my local machine. Added the .pub contents to gitea, and tried an SSH clone of the repo on the LAN side
So I'm doing git clone git@1234.local:stuntaz/junk.git on the macOS side. But there's no git user on embassy, so I'm unclear how it's supposed to work.
I should add that I added an entry in my macOS $HOME/.ssh/config for

Host 1234.local
    IdentityFile ~/.ssh/my_priv_key

Ultimately the publickey authentication fails and I get prompted for a password which I believe is wrong. It should authenticate against the public key I added to gitea and specified in my $HOME/.ssh/config.
From env GIT_SSH_COMMAND="ssh -vvv" git clone git@MyHost.local:MyUser/MyRepo.git I get output like:
debug3: send packet: type 50 debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51 debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password debug1: Next authentication method: password`
<EMAIL_ADDRESS>password:

and it asks for password. On the sshd side (I added logging to the config) I see
debug2: userauth_pubkey: invalid user git querying public key ssh-ed25519 ...
debug1: userauth_pubkey: test pkalg ssh-ed25519 pkblob ED25519 ... [preauth]
debug2: userauth_pubkey: disabled because of invalid user [preauth] ...

Expected Behavior
The git clone via ssh should work if the proper public key has been added to gitea
Steps to Reproduce
Described above.
Anything else?
No response

SSH over .local isn't supported because .local doesn't support non-HTTP protocols. See this issue for more details. We will be implementing a port forwarding feature this year that will work around this limitation.
Closing, please reopen if I misinterpreted this issue.


Implement bottom navigation bar

Issue #230

I have removed the hard coded color value, and used ThemeData color.

@AryanKhubchandani Sorry, for the issues. Actually, I am new to open source, that is why this happened. I have made the changes correctly now. Can you please review, and then I can continue with the other issue.

I understand, it's okay. Just make sure to work on one issue at a time to avoid such conflicts in the future. I solved the branch conflict for now, but from next time make sure to sync changes and pull upstream before you push changes to avoid branch conflicts.

Yes, sure. Thanks again :)


Using multipleAPIs in the extractor settings extracts all Named Value Pairs

Hi
While using the setting multipleAPIs in the extractor settings.json , the extractor tool pulls all the a Named value pairs which shouldnt be the case and must extract only the Named value pairs specific to the API.
I believe that is the also the case when one specific API is extracted.
Please advice
Regards
Gaurav

Duplicate of #151


coerce=True should work when supplying string dtypes

this diff fixes a bug where coerce=True would not work if
a legal pandas string argument is passed into the pandas_dtype.
Update the unit tests to enforce this

Codecov Report

Merging #149 into master will decrease coverage by 0.02%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #149      +/-   ##
==========================================
- Coverage   95.95%   95.92%   -0.03%
==========================================
  Files           8        8
  Lines         445      442       -3
==========================================
- Hits          427      424       -3
  Misses         18       18

Impacted Files
Coverage Δ

pandera/schemas.py
100% <100%> (ø)
:arrow_up:

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 7d78995...d7b6a93. Read the comment docs.


[Documentation] API - $.db

Add documentation in the www.xsk.io site, API section for the $.db API, based on the Wiki.

Related to: https://github.com/SAP/xsk/issues/15


docs(contributing): add non-code section

Closes #[insert issue number]
Description of changes
ScreenshotUpdated
Additional context
I added an overlay and user's ability to select resolution by dragging which appears when users click on the camera Icon

Going to close this as it's a bit out of date now - let me know if you're still working on this and we can reopen.


Update Class with Method Functions

In Class.java add the methods to add, delete and rename a Method. Also add methods to change the name and type of a Method

[x] addMethod
[x] deleteMethod
[x] renameMethod
[x] getMethod
[x] changeMethodType

When developing create new branch for each method.
Could even link or reference other tasks!
Primary: @mention
Secondary: @mention
Size: 3
Actual Size: 2
Actual Time: 1 hr

All changes to Class.java made to include these functions. Pending review and approval of pull request


spawn.sync looks broke

We're having failing tests with yeoman generators. Here's a trace:
https://travis-ci.org/yeoman/generator-node/jobs/71051980
In the trace you can see we're using cross-spawn 1.0.3

Hey @SBoudrias
The issue is with spawn-sync because it is using a fallback for node 0.10.
Are you using stdio inherit anywhere? If so I've submitted a PR that fixes that here https://github.com/ForbesLindesay/spawn-sync/pull/26/files but they didn't land a release yet.

@satazor Yes, that's exactly what we're doing (setting stdio to inherit).

Ok, I've seen that you asked them to release a new version.
I'll leave the issue open until its resolved.

Bumped patch to force re-download new version.


Bug: co_await for cancelled IAsyncAction resolves immediately, even if the coroutine is still running

Version
2.0.230225.1
Summary
Not sure if bug or feature request :)
I have coroutines which use RAII to manage ownership of global exclusive resources (e.g. named shared Direct3D textures); occasionally I need to shut them down, then start them up again.
Ideally, I would write:
auto storedAction = foo();
// ...
storedAction.Cancel();
try {
  // wait for RAII destructors etc
  co_await storedAction;
} catch (const winrt::hresult_canceled& e) {
  // ignore, expected
}
// can now assume that storedAction's RAII resources are gone
// ... but actually no, the coroutine could still be running

As a workaround, I'm doing:
winrt::handle completionHandle { CreateEvent(...) };
auto storedAction = foo(completionHandle.get);
// ...
storedAction.Cancel();
co_await winrt::resume_on_signal(completionHandle.get();
// Now the coroutine has actually finished executing

... where I have storedAction calling SetEvent() via RAII
Reproducible example
As a real world example, https://github.com/OpenKneeboard/OpenKneeboard/blob/423ca074c33083567254b3ae564f08d909cc69a5/src/app/app-common/UserInput/DirectInputAdapter.cpp#L85

If y'all can point me to what's needed to get winrt coroutines working from `int main` without the framework, happy to give an isolated example

Expected behavior
co_await cancelled_iasyncaction only completes when the coroutine has finished executing
Actual behavior
It appears to check that the IAsyncAction is marked as cancelled, then immediately returns without checking if it has actually finished executing
Additional comments
No response

Does this also happen on 2.0.221121.5?

If y'all can point me to what's needed to get winrt coroutines working from int main without the framework, happy to give an isolated example

IAsyncOperation<int> Async() {
    co_return 123;
}

int main() {
    int result = Async().get();
    printf("%ld\n", result);
}

Added isolated example, and yes, also happens on 2.0.221121.5

Briefly, you'll have to synchronize this yourself as the coroutine's completion doesn't assume the coroutine itself has been torn down. In fact, it's pretty much guaranteed to not be torn down. What with the coroutine type being reference counted, the stack frame holding a reference, and the caller holding a reference, there's just no guarantee that completion will be gated in this way. Coroutine cancellation is also quite lossy or wishful at best so that too is not something you should rely on.


Feature/issue 38 frontend tests command

Resolves issue #38 by adding the following commands...

and-cli webpack-test
and-cli webpack-test -c -R
and-cli webpack-test --ci

Additionally fixed beanstalk command timeout flag

Yeah, the timeout is further up the document

On Nov 15, 2019, at 14:59, Brandon Scott<EMAIL_ADDRESS>wrote:

@brandongregoryscott approved this pull request.
Just one comment that I'm curious about, the rest of it looks good though!
In cli-deploy-aws-beanstalk.js:

@@ -137,8 +137,8 @@ const deployAwsBeanstalk = {
program
.usage("option")
.description(deployAwsBeanstalk.description())

.option("--dotnet",  "Deploy dotnet core application via beanstalk")
.option("--timeout", Optional elastic beanstalk deploy timeout. Default is ${timeout} minutes. When exceeded, exits with error)

.option("--dotnet",            "Deploy dotnet core application via beanstalk")
.option("--timeout ", Optional elastic beanstalk deploy timeout. Default is ${timeout} minutes. When exceeded, exits with error)
Does this actually define a default value?

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or unsubscribe.


Add support for Apache Superset

add support for apache superset analytics dashboard
see: https://superset.apache.org/

done, closing


how improve the  video generate speed ,i already use gpu.

how improve the  video generate speed ,i already use gpu(Tesla V100-PCIE-16GB).
right now it need almost two minutes to generate six seconds video

Yes, it's slow in step 3,  how to solve?

the same question

Did any of you find a response please @monkeyshichi  @LittleTerry  @byixi2023 ???

the same question


Saved games and connect with others?

Hey, I just want to know I you are working on saving games online, so I play the saved game at an other device.
The other question I have is if you working on something to connect two device. Because I want to trade pokemons :D Do you think there will be an opportunity to do this somehow one day?
Thanks a lot for the work!
(Sorry for my bad english)

@Chaotenmonster You're looking at implementing support for save games? That sounds great. There's already an issue tracking this #46 where maybe you could add your thoughts.
As for link cable, it's definitely something I'd like to see one day too. That's tracked by #55.
I'm going to close this as a duplicate but it doesn't mean I want to stop the discussion, just encourage it onto the other two issues. I'm really grateful for both of your input. 🎉


Switch Source Code Editor to Non-PF Monaco

We need to switch away from the PF code editor. Would likely also fix #251 and #828 .

Since patternfly code editor is based on monaco-editor, it seems we could address #251 and #828 without switching to Non-PF Monaco. Closing.


Incorrect info for Stream #0:4[0xa2]: Audio: pcm_dvd, 96000 Hz, 2 channels, s32 (24 bit)

hi! MediaInfo 22.06
For DVD with Stream #0:4[0xa2]: Audio: pcm_dvd, 96000 Hz, 2 channels, s32 (24 bit), 4608 kb/s
is displayed

incorrect bitrate, sampling rate and size

What does ffprobe show?

Yep, it shows
Stream #0:4[0xa2], 1251, 1/90000: Audio: pcm_dvd, 96000 Hz, stereo, s32 (24 bit), 4608 kb/s

I need a file (few MB should be enough)

Sure.
dasf.zip

@JeromeMartinez
output.VOB.zip
Input #0, mpeg, from 'output. VOB' :
Duration: 00:00:01.00, start: 0.533367, bitrate: 7257 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top first), 720x480 [SAR 32:27 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn
Side data:
cpb: bitrate max/min/avg: 9800000/0/0 buffer size: 1835008 vbv_delay: N/A
Stream #0:1[0xa0]: Audio: pcm_dvd, 96000 Hz, stereo, s32 (24 bit), 4608 kb/s


Argument of type 'this' is not assignable to parameter of type 'Construct'.   Type 'xx' is missing the following properties from type 'Construct': id, path, uniqueId, _children, and 25 more.

Hello
I experience this Issue, i nuked the node modules as advised in https://github.com/aws/aws-cdk/issues/542
Now I feel, I am lacking ideas as this is the only construct in my stack at the moment
I was feeling ashamed, so I googled the error and found the other thread
code is as follows :
import cdk = require( '@aws-cdk/core' );
import { TweetQueue } from  'cdk-tweet-queue' ;

export class TweetAnalyser extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // The code that defines your stack goes here

    new TweetQueue( this, 'TweetStream', {
      // this is the ARN of the secret you stored
      secretArn: 'arn:aws:secretsmanager:eu-west-1:secret:TwitterAPI',

      // twitter search query
      // see https://developer.twitter.com/en/docs/tweets/search/guides/standard-operators
      query: 'my query',

      // optional properties
      intervalMin: 60,          // optional: polling interval in minutes
      retentionPeriodSec: 60,   // optional: queue retention period
      visibilityTimeoutSec: 60, // optional: queue visibility timeout
    }
    );
  }
}

Sorry, if it is obvious ... I 'am getting back to code after a long pause ;)

Upgraded to 1.24.0

You should absolutely re-open this issue as this clearly has not been adequately solved. We've incurred a lot of cost trying to wrangle between version mismatches and I'm not even sure that fully diagnoses the issue of something as trivial as two separate versions of the Construct class.
This amounts to "configuration hell" and the responsible thing is to own that these issues exist or clearly state your assumptions in your documentation about what developers need to do to circumvent such issues in reliable ways. As of now, my conclusion is that building CDK applications in TypeScript is a waste of time (prefer JavaScript).
It furthermore is a sign that a project isn't being led well if developers close down issues without conferring with issue reporters.  For anyone reading this, it greatly impacted the development community's perspective of Google's ability to manage open-source in the JavaScript space because they didn't push back against marketing interests and assured their software was reliable.
What happened?    A lot of people don't forget burns like that, and I'm of the mind it should reflect in the career's of those responsible.
I'll collect my thoughts and calm myself from this obvious frustration and I'll try to open up a new ticket.


Fails to Build flutter Apk

flutter build apk --release --shrink --target-platform android-arm --split-per-abi
Result:
FAILURE: Build failed with an exception.

Where:
Build file 'C:\Users\Me\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_auth-2.0.0\android\build.gradle' line: 24

What went wrong:
A problem occurred evaluating root project 'firebase_auth'.

Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?

Could not build the apk!!  Same issue

Hi @Ashaba123
When opening an issue, please try to provide all of the information indicated in the template.
Closing this issue, since no information has been provided.
Thank you.


Armored Core 6 Steam Deck/Linux

Hello,
I am trying to setup modengine2 to work with Armored Core 6 on the steam deck, to use text size mod.
For some reason this mod works, it uses  'regulation.bin' https://www.nexusmods.com/armoredcore6firesofrubicon/mods/25
But these two doesn't : https://www.nexusmods.com/armoredcore6firesofrubicon/mods/26?tab=description
https://www.nexusmods.com/armoredcore6firesofrubicon/mods/35
Any fix or insight on this issue?
All mods are installed in the 'mod' folder.

I have the same issue but I am using a PC and a pirated copy of AC6.

Ok, Cloudef updated his fork of Mod Engine 2 for proton/Steam Deck and it is working now.
https://github.com/Cloudef/ModEngine2/issues/19


Allow force push to protected branches

Fixes #22722
Problem
Currently, it is not possible to force push to a branch with branch protection rules in place. There are often times where this is necessary (CI workflows/administrative tasks etc).
The current workaround is to rename/remove the branch protection, perform the force push, and then reinstate the protections.
Solution
This PR aims to add an additional section to the branch protection rules, to allow users to specify which users with push access can also force push to the branch. The default value of the rule will be set to Disabled, and the UI is intuitive and very similar to the Push section.
It is worth noting in this implementation that allowing force push does not override regular push access, and both will need to be enabled for a user to force push.
This should apply to manual force push to a remote,  and also in Gitea UI updating a PR by rebase (which requires force push)
This modifies the BranchProtection API structs to add:

enable_force_push bool
enable_force_push_whitelist bool
force_push_whitelist_usernames string[]
force_push_whitelist_teams string[]
force_push_whitelist_deploy_keys bool

Updated Branch Protection UI:

(EDIT: The Everyone label has been updated to Enable Force Push and Whitelist deploy keys with write access to push label has been updated to Whitelist deploy keys with push access to force push)
Pull Request Update branch by Rebase option enabled with source branch test being a protected branch:

Will be able to fix CI compliance Sunday night

Small refactor in f28ecbe seemed necessary due to make lint showing duplicated code error, despite the 2 functions in question being quite distinct :(

this is very needed feature for our git workflow

Please fix the lint error

@lunny Hi! would it be possible to review this PR and include it into 1.22 release? p.s. Gitea is awesome:-)

@lunny Hi! would it be possible to review this PR and include it into 1.22 release? p.s. Gitea is awesome:-)

Hi, sorry reply too late. Since the feature freeze before this PR got 2 approvals we have to move this to v1.23. We still have many work to do to make a more stable v1.22.

Thank you for your patience. Can you add some tests for this PR? I think there are already some for the previous protected branches in https://github.com/go-gitea/gitea/blob/fb4438a815b013895f3171f8f2f1ed22f79596de/integrations/git_test.go#L277

Tests now extended in doBranchProtectPRMerge to test push capability based on existing push/force push branch protection configs.
Let me know if this is sufficient test coverage or should extend.

Thank you for the feature! Overall it looks good to me.
Some questions (or suggestions):
1. ~`CanForcePush` seems redundancy. Because~

   * ~If a branch is protected, then it means that it doesn't want to allow anyone to "force push"~
   * ~It brings ambiguity, eg: what does "CanPush=false and CanForcePush=true" mean?~
   * ~So I think it's better to drop the CanForcePush field: if a branch is protected, it could be forced push by allowed users/teams/keys~
   * Hmm ... maybe I haven't full understood the background, will think more about it.

2. Maybe we should use "allowlist" instead of "whitelist" from now on, because "allowlist" is widely accepted in modern days,  "whitelist" is not good in many cultures.

3. The field names like `force_push_whitelist_user_i_ds` do not seem good enough. They are generated automatically but ideally they should be `force_push_whitelist_user_ids`.

4. It needs a database migration

I agree that the combination of CanPush=false and CanForcePush=true could be confusing, as I have implemented force push as an extension of regular push permissions, therefore even if CanForcePush=true, it still means push will be denied since regular push is false. However, I added the disclaimer in the UI Anyone with push access will be allowed to force push to this branch, which could hopefully mitigate this confusion, at least in the UI (API side might still be confusing).
That would be good idea, however I think whitelist term is used quite a lot everywhere, it might require a new issue to general refactor.
Will look into if this can be revised, I agree would be cleaner
Will investigate migration

That would be good idea, however I think whitelist term is used quite a lot everywhere, it might require a new issue to general refactor.

Since this is a new feature, I think we could use the new terms, to reduce the future refactoring work (I could also help to rename them if you don't mind). In my mind after this PR we could have this:

All terms on the UI are "allowlist" for the "protected branch" page
The old fields are kept as-is (WhitelistXxx)
The new fields use "allowlist" (AllowlistXxx)

@wxiaoguang apologies this was a bit late, busy with work

In latest 2 commits:

Updated ProtectBranch struct to not use the autogenerated (which converts camel case to snake case, making ID -> i_d).
Changed all UI references in branch protection page from whitelist to allowlist
Changed all code references for this new feature from whitelist to allowlist (existing references have not been touched)
Performed db migration as v300 in v1.23 (let me know if this needs to be revisited, my understanding may not be correct)

I'm running 1.22.0 and i'm looking all over the place for this. Where and how do i enable it? Doesn't show up on my branch protection screen.

I'm running 1.22.0 and i'm looking all over the place for this. Where and how do i enable it? Doesn't show up on my branch protection screen.

This is not integrated as part of 1.22.0, it is on the roadmap for 1.23.0 (might have to look around for an ETA). If you switch to nightly build it will also have changes based on current main branch, but not as stable as official releases