GRPC Exception

Congratulations for this nice project. It's very helpfull, and I didn't find any other for WPF UI / Styles / Templates testing.
I'm trying to setup here , but I'm getting a GRPC exception for every action after StartRemote. Here's my base test implementation:
using NUnit.Framework;
using FluentAssertions;
using System.Threading.Tasks;
using XamlTest;

namespace EficazFramework.Tests
{
    public class BaseTest
    {
        internal static IApp Application { get; private set; }
        internal static IWindow MainWindow { get; private set; }

        public BaseTest()
        {
            if (Application == null)
                Application = XamlTest.App.StartRemote<EficazFramework.Tests.WPF.Views.App>();
        }

        [OneTimeSetUp]
        public async Task Setup()
        {
            if (MainWindow == null)
                MainWindow = await Application.GetMainWindow();

        }

    }
}

Result when trying to get the Main Window:
OneTimeSetUp: Grpc.Core.RpcException : Status(StatusCode="Unavailable", Detail="failed to connect to all addresses")
I really don't know what I'm doing wrong. Should I call Application.Initialize() ? I didn't understand exaclty if it should be called when using .StartRemote.
NOTE: I also tried without the static modifier, and got the same result.
Thanks

A couple quick questions. First, which version of the library are you using?
If it was one of the early 1.0.0 preview builds, it is possible that failure was due to a VS debugger feature failure. I have attempted a fix in #67. If you could test any build after 1.0.0-ci235 and let me know if it is fixed that would be great.

It worked!
Thank you so much!

Oh sorry. I'll need to reopen the issue.
This time I figured that the first attempt is failing with this GRPC Exception. It happens on Azure DevOps Pipelines also.

No problem. I appreciate the feedback. The StartRemote method contains a logMessage parameter. Can you try supplying it with something like this and let me know if anything is added to the StringBuilder?
StringBuilder sb = new StringBuilder();
Action<string> logMessage = message => sb.AppendLine(message);
XamlTest.App.App.StartRemote<EficazFramework.Tests.WPF.Views.App>(logMessage: logMessage);

Tried this way. But I can't reproduce anymore.
After add the log and stringBuilder it didn't get exception anymore. Confusing.
I'll keep this closed until it starts to happen again.
Thanks.

Finally I reproduced the error again. But only on Azure Pipelines.
Unfortunatelly it's not logging anything on logMessage action.

 Thank you. I am working on getting a little more logging and configuration added in (that I hope will address this).
Just in terms of an overview of what is happening. When you call App.StartRemote it starts a new XAMLTest.exe process passing in the information about your WPF assembly. It starts up its own WPF application shell, then invokes your main method (unless you have customized it, it will be the one generated by WPF). As part of the App Startup event, it starts up a GRPC server, which the original test process connects to (this appears to be the connection that is failing).
I suspect that the XAMLTest.exe process that is starting up, is either failing to start (possibly crashing), or simply taking longer than expected making the test connection timeout.
I do have PR #70 in the works that exposes control of the connection timeout and it is possible simply increasing this amount will solve the problem. Conveniently, some of the tests are now failing with the same issue. So I am looking into why that is happening.

I figured on my machine, that a second test try works fine.
On Azure Pipelines it fails all the time.
I would like to help more, but I'm very novice with GRPC.

I just pushed version XAMLTest.1.0.0-ci249. When you get a little time would you mind testing to see if it resolves your issue?

For sure.
After  6 runs (1 on my machine and last 5 on Azure Pipelines), I guess It's working.
Just one run on Azure have failed.
Nice job. Many thanks.


Remove: StarMessage.StarMessageScreensaver

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

This does not allow silent installation.

That was fast haha


Add Queue collection

Adds a simple but efficient queue implementation.
Motivation:
Array is good for lists and stacks, but it is inefficient for building queues.
Implementation:
Queue is implemented as a java array with two indexes which rotate around, wrapping at the end. Details are documented in the code. All basic methods for queue manipulation are present (add/enqueue, remove/dequeue and peek). Queue can't overflow, grows when not enough space in the backing array. On underflow it returns null or specified default value, no exceptions are thrown.
PR includes unit test for the Queue.

FWIW gdx-ai provides a similar data structure called CircularBuffer that can be resizable or not.

Is the non-resizability used often? I will add it.
I see, there are two approaches to the two pointer problem. Mine is to keep empty slot at all times, @davebaol's is to keep a size variable. I don't have any preference for one over the other, so I will leave this decision to others.

The size based approach was easier to reason about, so I have changed it. Also added resizability toggle and ensureCapacity method.

CircularBuffer seems like a more descriptive name.

When looked at from implementation standpoint, it is circular buffer. From abstract point of view, it is queue. I personally like Queue more because it is shorter and I associate "Buffer" in class name with "low-level" ByteBuffer-like classes, but I have no problem with renaming it.

There are other kinds of queues (priority, deque). CircularQueue? I suppose Queue is fine too.
Maybe add methods to make it a deque? Clutters the API a little but does more. Might be ok with careful method names.
When not resizable and an item is added, is it the job of the queue to do nothing? It seems like application logic: maybe I want to do nothing if full, maybe I want to throw an error, maybe I want to overwrite the oldest item, etc. It seems this logic should be external. Array doesn't have such a feature.
FWIW, Array doesn't have size() (only the field) or isEmpty.
toString probably doesn't need "Queue ".
Should peek on an empty queue throw IllegalStateException as it does for Array?
I'm not sure a default value version of peek is really needed?
Could use queue-like verbs: push/pop instead of add/remove. remove is more for "remove the specified object from the queue", so remove(defaultValue) is confusing. I think pop should probably throw IllegalStateException if empty.

About the name, Queue probably won't conflict with anything we will add later (there are more types of queue, but none of them is more general than this) and will be probably fine when deque methods are added. Does anybody have a better idea?
I will try to add deque methods.
I have tried to address the add-when-full problem by making add return a boolean. That way it is fast (no exceptions) and user can handle it easily. Whole class is intentionally made extension friendly so that everybody can add their own logic (no finals, all fields are protected).
size() as a method was required for previous approach, now it can be removed, I have not realized that. I have kept the isEmpty() as a counterpart to (IMO more useful) isFull(), but when the size is a field, it will make more sense to remove isEmpty() as well. I will keep the isFull() though.
You are probably right, I wanted to differentiate it somehow from toString of Array, but everybody probably knows what they are printing out.
Dunno about the peek(), I wanted to keep it exception free, so I ended up with this. I think it should be kept consistent with pop.
What about these methods?

boolean push(T) - what is now add, returns boolean
T pop() - what is now remove(), but NoSuchElementException when empty
T pop(T) - pop with default value instead of exception, maybe called popDefault or something like that?
boolean pushFront(T) - push, but from the other side, for deque (alternative names: prepend, pushFirst)
T popLast() - pop but from the other side, for deque (alternative name: popEnd, but I quite like this one, popLast feels intuitive to me). This probably does not have to have default version.

This naming scheme implies that deque functionality is secondary to the standard queue so it should be easier to think about and less prone to mistakes.

size() as a method was required for previous approach, now it can be removed, I have not realized that

Making size a public field is dangerous IMO because if you change its value directly with an assignment you're corrupting the queue (head and tail fields would be wrong).

@davebaol Yeah, your size based approach was cleaner and there are not much ways to implement it efficiently. But I didn't look at yours while coding, I swear :D
So, I have renamed the methods and added deque ones in the last commit. (Including tests for them.)
At the end I have decided to keep the size() as method, because changing size from outside would be too destructive. isEmpty() is gone though. But I'll let you guys decide whether it should be field or method.
Method names are still subject to change, but I'm pretty happy with them now.

@Darkyenus
It's ok, I'm not blaming you. :wink:

The name Queue has grown on me.
I'm good with size being a method.

I have tried to address the add-when-full problem by making add return a

boolean. That way it is fast (no exceptions) and user can handle it easily.

I'm not sure it's a problem at all. The user can handle it by checking if
it is full before calling push. Also not sure what you mean by fast, an
exception would not be used to detect the queue was full, instead it would
indicate you need to adjust the code calling push.
The Array class doesn't have any notion of being "full". I'm not sure the
Queue class should? Should the "not resizable" logic be inside the Queue
class, or in application code? Application code gives more control over how
it behaves, without needing to bake that into the Queue API.
Just a thought. I see benefits to both approaches, though one seems
simpler. Have you considered not having "resizable" a feature? The queue
would always resize if the capacity is exceeded. Using a queue with a fixed
size would be application logic.

Whole class is intentionally made extension friendly

so that everybody can add their own logic (no finals, all fields are
protected).

The less we expose, the better. Is this is super useful? Should people be
extending a collection class to add logic? If so, do we need to expose all
the internals for what they need to do? Another approach could be protected
methods called on underflow/overflow that provide a place to hook, with the
default implementation throwing an exception.

Dunno about the peek(), I wanted to keep it exception free, so I ended up
with this. I think it should be kept consistent with pop.

Why is exception free a design goal? It doesn't really make it easier to
use if errors just need to be caught a different (silent!) way. What is
the difference?
Object thing = queue.pop(null);
if (thing != null) {
   ...
}

if (queue.size > 0) {
   Object thing = queue.pop();
   ...
}
```

> What about these methods?
>

I guess maximum clarity would be pushFirst, pushLast, popFirst, popLast,
peekFirst, peekLast. By always specifying first or last, you'll never mess
it up.

We could also abandon the push/pop/peek naming, then it could be addFirst,
addLast, removeFirst, removeLast, getFirst, getLast. We could also have
get(int), remove(int), remove(T) which fit into the same naming scheme.

I have added non-resizability because mentioned CircularBuffer has it so I thought that it would be useful to have it. But it does not have to be there.
You are right about exceptions. push() will be void and when resizable is false and queue is full, it will throw IllegalStateException or something more appropriate. Errors should be easier to catch this way (no pun intended).
I would not add overridable onOverflow methods, because it can be easily implemented by overriding the push methods and this way would probably provide most flexibility. (I can't think of onOverflow implementation which would be more flexible than just overriding the push)
Should the extensibility be minimal? Array is quite extensible. I would probably keep the members protected, because it allows others to add their custom logic without having to rewrite/copy existing implementation, while staying hidden from accidental use.
The push/pushFront naming has been chosen intentionally. I don't know about others, but usually when I need a queue, I just need a simple queue, push/pop is all I need and want to think about. Having to constantly think about which side I am pushing/popping to just adds mental overhead. Seeing the longer name (pushFront) makes me immediately realize that this is the "reverse" of the standard operation. It makes the naming less symmetric, but I'd argue that it is better that way, because the functionality is not entirely symmetric either - I think of deque methods like just extensions to queue methods. But maybe that is just me, I am open to other interpretations.
I am quite happy with push/pop instead of add/remove, in fact I have used push/pop in the first version of the Queue. But it is your call.
get(int) can be implemented easily and I don't feel that it clashes with push/pop naming.
'remove(int/T)' can be implemented as well, I assume with Array's ordered=true behavior. Orderless queue does not make much sense.
I will do changes in new commits for clarity and when/if this gets merged, I'll squash them

Any news on this?

I inclined to think "resizable" should not be a feature. The queue would always resize if the capacity is exceeded. Using a queue with a fixed size would be application logic. The reason is that other collection classes don't have such a feature. Also the logic about what to do when the fixed size is exceeded (throw exception? return null? return a default value?) doesn't seem to fit well in the collection class.
Having size public is just as dangerous for Array. Eg, setting it higher than the capacity breaks usage of the array. Setting it lower than the actual size without nulling entries will cause those entries to not be GCed. If head, tail, size, and values aren't going to be private, they might as well be public. If someone pokes at them willynilly and breaks their queue, they deserve it.
I would not put in comments like "Worth using only if you know what are you doing." Either the javadocs explain exactly what it does (succinctly!) and therefore the reader knows what they are doing, or it's a mystery API and you might as well delete all the javadocs to increase the funz.
An onOverflow or similar method would be useful when many methods would need to be overridden to hook the same event (add, insert, addAll from array, addAll from collection, etc). Usually knowing which methods to override to hook an event like this requires digging through the code. Calling an event method that happens a lot and usually isn't hooked (like onAdd) isn't great though, especially in a collection. Better to just nuke the resizable feature entirely and let application logic handle "on overflow".
Regarding method naming, push/pop/peek/pushFront/popLast/peekLast are OK, but require making assumptions about what is "standard" operation. To be honestly, I got confused just typing this paragraph (I had things like popFront). It is more explicit and more symmetrical to use addLast/removeFirst/first/addFirst/removeLast/last.
Array pop removes and returns the last object in the array. Array peek returns the last object without removing it. Queue pop removes and returns the first object in the queue? Queue peek returns the first object without removing it? I'm not sure assumptions about how push/pop/peek work make for the clearest API. To contrast, Queue's push/pop/peek/pushFront/popLast/peekLast correspond to Array's add/removeIndex(0)/first/insert(0,)/pop/peek. I admit Array isn't terribly consistent, the convenience methods were added over time.
Ultimately I'll leave it be your call. FWIW, "first" may be better than "front" and better matches "last".
pop: "Dequeue next object in queue" wut? Do I get the first or last object? I assume it's removed? All the add/remove type method javadocs would be clearer with simpler language, without mentioning enqueuing, dequeue, etc. I would explain each operation by consistently using head/tail.
Javadoc says it's a FIFO queue but the API now allows much more flexibility.
How about hashCode and equals? All of the libgdx collections have them now.

I have removed non-resizability and made size public field, removing the size() method. Other fields have been left as protected.
After implementing it, I see the simplicity in add/remove/Last/First, so that is what it will be.
Thoughts?

It looks good! I happen to be writing some code right now that can use it, so you already have your first customer. :+1:

Oops, I forgot you wanted to squash commits! Sorry!

Do you want an author tag in the javadoc?
What do you think about implementing Iterable? I guess it would be similar to Array (static class, two iterators reused to detect nested usage, etc).

Added some methods and iterable: e019133da2bca1d39799e8158acffa6bfc174d7c

Thanks for merge!
Nah, I don't need my name anywhere, but thanks. Btw. nice additions.

The Queue class needs to be added to GWT module. GWT build are currently failing.

Why does it always have to be GWT. Opened #3598, I understand that is what is needed to fix it?

All good now, thanks.


Added C regex to prevent ambiguity in header file

Adding a C regex for disambiguation of .h files
Description
Basically, my C header file is getting incorrectly classified as Objective-C. While overrides can fix this, it would be good to have a regex detecting C-only standard header includes.
https://github.com/jweinst1/DataBlock/blob/master/src/DataBlock.h
That is the url to the incorrectly categorized file.
Checklist:

[ ] I am associating a language with a new file extension.

[ ] The new extension is used in hundreds of repositories on GitHub.com

Search results for each extension:

https://github.com/search?utf8=✓&type=Code&ref=searchresults&q=extension%3AFOOBAR+KEYWORDS+NOT+nothack

[ ] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

[URL to each sample source, if applicable]

Sample license(s):

[ ] I have included a change to the heuristics to distinguish my language from others using the same extension.

[ ] I am adding a new language.

[ ] The extension of the new language is used in hundreds of repositories on GitHub.com.

Search results for each extension:

https://github.com/search?utf8=✓&type=Code&ref=searchresults&q=extension%3AFOOBAR+KEYWORDS+NOT+nothack

[ ] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

[URL to each sample source, if applicable]

Sample license(s):

[ ] I have included a syntax highlighting grammar.
[ ] I have included a change to the heuristics to distinguish my language from others using the same extension.

[x] I am fixing a misclassified language

[ ] I have included a new sample for the misclassified language:

Sample source(s): https://github.com/jweinst1/DataBlock/blob/master/src/DataBlock.h

[URL to each sample source, if applicable]

Sample license(s):

[x] I have included a change to the heuristics to distinguish my language from others using the same extension.

[ ] I am changing the source of a syntax highlighting grammar

Old: https://github-lightshow.herokuapp.com/
New: https://github-lightshow.herokuapp.com/

[ ] I am adding new or changing current functionality

[ ] I have added or updated the tests for the new or changed functionality.

Yea, I was confused since I thought that you had to do #include <cstdio> in C++ but I was mistaken. Ill change this with some truly C only features

So, following @Elronnd, suggestion on #1626, I changed the C regex to detect (void) signified functions,
Additionally since the restrict is only valid in C, I added that to the regex, in addition to flexible array parameters

@pchaigno let me know if this needs any more changes :)

alright, made your most recent revisions.

@pchaigno or @lildude , let me know if this PR needs more revisions :)

@pchaigno feel free to let me know if i need to make any more changes on this.

As this is the most recently active of attempts to resolve this, I'm going to reference https://github.com/github/linguist/pull/3585 as work that has also started to try and address this. Maybe we can use ideas from both that PR and this to get a good solution in place.

@pchaigno is this ready to merge? it says only those with write access can merge :(

@pchaigno is this ready to merge?

No. We still need to wait for the :+1: from someone from GitHub's staff.

Alright so i fixed the test failure there, i think the issue was there is a seldom used keyword in Objective-C called __restrict, so i removed the underscores from the regex.

@pchaigno or @lildude , if a keyword is removed from a newer version of a language, does this count as a linguist standard as not being part of the language?
The register keyword is removed in C++17 and has been deprecated for a while before that, yet still exists in C. Can linguist consider register as a C only regex?

@pchaigno or @lildude , if a keyword is removed from a newer version of a language, does this count as a linguist standard as not being part of the language?
The register keyword is removed in C++17 and has been deprecated for a while before that, yet still exists in C. Can linguist consider register as a C only regex?

I've just test the spec change you've mentioned and I don't think we can:

The purpose in removing the usage of register is to preserve the ability to use this valuable keyword for future proposals, such as modules. It is therefore retained as a reserved keyword, with a note on intent, similar to the handling of export in C++11. All other references to the register keyword are removed.

As I understand this, it's no longer used but is still reserved for future use so we'd probably end up having to reverse the change in future if this is resurrected. Probably best to leave this keyword alone for the moment.

@lildude understood, any other changes you suggest making to this PR? since the tests are passing now

@pchaigno , @lildude , any other changes need to be made here?

@jweinst1 See my above review :wink:

You'll also need to update the tests in tests/test_heuristics.rb.

Nudge.

Flagging as stale.


Void metal research

in my thaumonomicon, i need to research the next item which i assume is void metal. im at stage 3/5. i hover over the chest which is the thing that needs to be discovered and the text says: "research.c_voidstuff.text" please explain?

Still to be implemented: https://github.com/Azanor/thaumcraft-beta/issues/55, https://github.com/Azanor/thaumcraft-beta/issues/150


qovery-cli: 0.79.2 -> 0.80.0

Diff: https://github.com/Qovery/qovery-cli/compare/refs/tags/v0.79.2...v0.80.0
Changelog: https://github.com/Qovery/qovery-cli/releases/tag/v0.80.0
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.


Remove duplication in banner definitions

This PR eliminates the duplication in defining "bannered" routes by adding a banneredShield() function that creates a bannered version of a base shield.
Seems to still be working after this change:

This may be a bit outside the scope of this PR but it's at least closely related. Should a FUTURE banner be added for US Routes? I just happened to encounter this signage in Spokane, WA:

image source
It looks like this particular section of road is tagged ref=US 395 Fut but I noticed this highway tagging page on the wiki suggests using ref=* Future rather than Fut so I may retag it if the banner is added to Americana.


Wrappers for cmdline programs

Hi,
I have a package which wraps a command line program called blast. The package then uses Julia shell capabilities to run the program with various options. I'd like it so as the dependency is installed with the package on OSX, Linux and Windows. I've seen BinDeps.jl, WinRPM.jl, and Homebrew.jl, is this something that can be done with these packages - including Homebrew.jl ? Or does it only really work for C libraries and that sort of thing.
Thanks,
Ben.

Yes, this should work just fine.  Let me know if you have any other questions about setting up blast to work with Homebrew.jl.

Closing this due to inactivity, if you have further questions please comment here or open a new issue.


What is this lol

ishan what is is lmao

It's cool!

hai I have joined the convo

@here

🅱 uckcoin

This is a cryptocurrency

haiiiii

@quackduck close issue

Good reminder


Check error condition when setting default kubeconfig

Avoid segmentation fault when the user is not returned correctly. This might happen when the tests are run from within a Docker container which runs as a non-root user and entries in /etc/passwd or /etc/group are not set. This is common when running on OpenShift.
If the default kubeconfig is not set correctly the user can still pass their own config through the kubeconfig flag.

/lgtm
/approve


Add docs to show how to add support for detecting a new CI system in the CLI

Related to #598.
Here's how it looks when it's rendered:

thanks for adding!
can we use proper casing for all headings?
iow:  Supporting New CI Systems  instead of Supporting new Ci systems
etc.
On Fri, May 31, 2019 at 2:50 PM Praneet Loke<EMAIL_ADDRESS>wrote:

Related to #598 https://github.com/pulumi/docs/issues/598.
Here's how it looks when it's rendered:
[image: Screenshot_2019-05-31 Supporting a new CI system]
https://user-images.githubusercontent.com/1466314/58736611-5336dd80-83b3-11e9-8b21-312cc7ff343f.png
You can view, comment on, or merge this pull request online at:
https://github.com/pulumi/docs/pull/1112
Commit Summary

Add docs to show how to add support for detecting a new CI system in
the CLI.

File Changes

A content/reference/cd-supporting-new-ci.md
https://github.com/pulumi/docs/pull/1112/files#diff-0 (80)
A static/images/reference/supporting-new-ci/stack-update.png
https://github.com/pulumi/docs/pull/1112/files#diff-1 (0)

Patch Links:

https://github.com/pulumi/docs/pull/1112.patch
https://github.com/pulumi/docs/pull/1112.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pulumi/docs/pull/1112?email_source=notifications&email_token=AB77TQTTCFUD62VWILV63MLPYGMQRA5CNFSM4HR6HCN2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GXBT3XQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB77TQWNUWA7BB6PGGA7EZLPYGMQRANCNFSM4HR6HCNQ
.

@ericrudder thanks for the feedback! I've made the updates and updated the screenshot.


Toggle Default Collapsed or Expanded

Implements #111; currently, the default setting is "expanded" (true). This could be changed to "collapsed" (false) to match current implementation.

The purpose of this plugin is to render verses directly, the old collapsable (close by default) breaks this purpose, which need to be fixed (Thanks this PR)

I somewhat agree, with the exception of mobile users - when inserting long passages (i.e. a whole chapter for some sermon topics), it can take up the majority, if not more than that, of the screen, which can get frustrating. For most desktop users and for small verses this isn't a problem but I do think having the option to insert small is a good idea

There have been too many setting toggles, we should try not add more.

I agree that we have a lot of tagging ones but it seems like there are already changes in the works to deal with this; personally I'd always rather customizability over removing options. If you're adamant on this position, could I suggest a compromise of sorting the settings into collapsible toggles?
(I'll also note I did want to make this toggle only visible when collapsible was enabled in the first place but didn't yet know how to do that; that's a change that could be implemented in a few other places too too simplify things, as part of a potential UI update pr later)

The purpose of this plugin is to render verses directly, the old collapsable (close by default) breaks this purpose, which need to be fixed (Thanks this PR)

I somewhat agree, with the exception of mobile users - when inserting long passages (i.e. a whole chapter for some sermon topics), it can take up the majority, if not more than that, of the screen, which can get frustrating. For most desktop users and for small verses this isn't a problem but I do think having the option to insert small is a good idea

There have been too many setting toggles, we should try not add more.

I agree that we have a lot of tagging ones but it seems like there are already changes in the works to deal with this; personally I'd always rather customizability over removing options. If you're adamant on this position, could I suggest a compromise of sorting the settings into collapsible toggles?
(I'll also note I did want to make this toggle only visible when collapsible was enabled in the first place but didn't yet know how to do that; that's a change that could be implemented in a few other places too too simplify things, as part of a potential UI update pr later)

@minermaniac447 thanks for understanding.
Would you like to make the changes?
If so, I will merge and make it happen in next release.

Yep, I can put the change in. If you do want to revisit this idea later, let me know!

Yep, I can put the change in. If you do want to revisit this idea later, let me know!

Thanks,


Nme webgpu 7

Particle support

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/15191/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/15191/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/15191/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/15191/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/15191/merge
https://gui.babylonjs.com/?snapshot=refs/pull/15191/merge
https://nme.babylonjs.com/?snapshot=refs/pull/15191/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/15191/merge#BCU1XR#0

WebGL2 visualization test reporter:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/15191/merge/testResults/webgl2playwright/index.html

Visualization tests for WebGPU (Experimental)
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/15191/merge/testResults/webgpuplaywright/index.html


Update pyproject.toml

All changes would be reflected in the pypi page, therefore the update is necessary

This one is ready for merge.


SPNEGO workflow partly broken in 5.0.0.RC3

With 5.0.0RC3 the SPNEGO workflow breaks, when the browser delivers an invalid kerberos ticket via the Negotiate header. The other possible flows, where a valid kerberos ticket is send or the browser doesn't understand the Negotiate protocol, are working as expected.
The broken workflow looks for a transition authenticationFailure in the state spnego, but finds only error and success.
The error message is:
Error: No transition was matched on the event(s) signaled by the [1]
action(s) that executed in this action state 'spnego' of flow 'login';
transitions must be defined to handle action result outcomes -- possible
flow configuration error? Note: the eventIds signaled were:
'array<String>['authenticationFailure']', while the supported set of
transitional criteria for this action state is
'array<TransitionCriteria>[success, error]'

As discussed on the mailing list I had to adapt SpengoWebflowConfigurer and add the transition
+        spnego.getTransitionSet().add(createTransition(CasWebflowConstants.TRANSITION_ID_AUTHENTICATION_FAILURE,
+                CasWebflowConstants.STATE_ID_VIEW_LOGIN_FORM));

With this fix, the workflow works as expected and the login view gets shown.

This is already fixed. Please update your snapshot and try again.

Works in 5.0.0.RC4-SNAPSHOT.
Thanks for fixing and support.


fix links

Correct me if I'm wrong but I don't believe there was an issue with the links as they are?

@sophiebits  We use the "internal link" without domains, which helps consistence in translated sites, and reduce the cost of http request.(maybe)

The point about translated sites is a good one. Thanks.


Sort-by-field of a map doesn't work as documented

Hugo version?
$ hugo version
hugo v0.81.0+extended darwin/amd64 BuildDate=unknown
$ type hugo
hugo is hashed (/opt/brew/bin/hugo)

Does this issue reproduce with the latest release?
Yes.
Details
Suppose we have the following in a site's config:
[params]
[params.authors]
  [params.authors.Joe]
    firstName = "Joe"
    lastName  = "Bergevin"
  [params.authors.Derek]
    firstName = "Derek"
    lastName  = "Perkins"
  [params.authors.Tanner]
    firstName = "Tanner"
    lastName  = "Linsley"

The data above is from the sort function page, except that the two map entries have been swapped. That shouldn't affect sorting on lastName, which is documented like this:
Authors: {{ range sort .Site.Params.authors "lastName" "desc" }}{{ .lastName }} {{ end }}

→ Outputs Authors: Perkins Linsley Bergevin

I don't get this output, instead I get the following:
Sort authors "lastName" "desc":
→ Output: Linsley Bergevin Perkins
→ Expect: Perkins Linsley Bergevin

Here is the test.html shortcode that I'm using:

Sort authors:
→ Output: {{ range sort .Site.Params.authors }}{{ .firstName }} {{ end }}
→ Expect: Derek Joe Tanner

Sort authors "lastName":
→ Output: {{ range sort .Site.Params.authors "lastName" }}{{ .lastName }} {{ end }}
→ Expect: Bergevin Linsley Perkins

Sort authors "lastName" "desc":
→ Output: {{ range sort .Site.Params.authors "lastName" "desc" }}{{ .lastName }} {{ end }}
→ Expect: Perkins Linsley Bergevin

Sort authors "value":
→ Output: {{ range sort .Site.Params.authors "value" }}{{ .firstName }} {{ end }}
→ Expect: Derek Joe Tanner

Authors:
{{ .Site.Params.authors }}

Strangely, if I change the sort arguments in one place, it affects the sort results in other places in the test -- as if sort was destructive.
(I can submit a PR over hugoDocs repo with the test files if you'd like.)

Here is the full output from the shortcode:
Sort authors:
→ Output: Derek Joe Tanner
→ Expect: Derek Joe Tanner

Sort authors "lastName":
→ Output: Bergevin Perkins Linsley
→ Expect: Bergevin Linsley Perkins

Sort authors "lastName" "desc":
→ Output: Linsley Bergevin Perkins
→ Expect: Perkins Linsley Bergevin

Sort authors "value":
→ Output: Joe Derek Tanner
→ Expect: Derek Joe Tanner

Authors:
map[derek:map[firstname:Derek lastname:Perkins] joe:map[firstname:Joe lastname:Bergevin] tanner:map[firstname:Tanner lastname:Linsley]]

Possibly relevant links:

https://github.com/gohugoio/hugo/blob/ce96895debb67df20ae24fb5f0f04b98a30cc6cc/tpl/collections/sort_test.go
https://github.com/gohugoio/hugo/blob/edc5c4741caaee36ba4d42b5947c195a3e02e6aa/tpl/collections/sort.go

cc @nate-double-u @zacharysarah

The issue is that hugo is lowercasing the params map keys.  Your sortByField parameter should be lowercased to match:
{{ range sort .Site.Params.authors "lastname" }}{{ .lastName }} {{ end }}

Using "lastname" as a sort-by-field name gives the expected results.
A few followup questions:

Is this a bug or a feature?
If a lowercase comparison is unavoidable, shouldn't the Sort() func just lowercase the sortByField parameter?
It would be nice if sort reported an error when the named sortByField doesn't exist.
Do you know why using "value" as a sortByField doesn't sort by keys? (See the output given above.)

Is this a bug or a feature?

The lowercasing of the params keys is a feature.  How sort treats the sortByField is maybe debatable.

If a lowercase comparison is unavoidable, shouldn't the Sort() func just lowercase the sortByField parameter?

We also need to support things like {{ sort .Site.RegularPages ".File.FileName" }} which is case-sensitive.

It would be nice if sort reported an error when the named sortByField doesn't exist.

Perhaps.

Do you know why using "value" as a sortByField doesn't sort by keys? (See the output given above.)

I'm assuming it's because not all values (such as maps) are comparable.  So a map of maps will likely not work and leave the sorting unchanged.  May also be another opportunity to provide feedback to the user.

Closing. Will be addressed with https://github.com/gohugoio/hugoDocs/issues/1365.


TypeScript doesn’t properly handle a constructor with a quoted name

TypeScript Version:  3.5.0-dev.20190418

Search Terms: typescript quoted constructor
Code
class Foo {
    constructor(name: string) {
      this.name = name
    }
}
class Bar {
    "constructor"(name: string) {
      this.name = name
    }
}

new Foo("hello")
new Bar("hello")

Expected behavior:
Compiles without error
Actual behavior:
The new Foo call compiles properly, but the new Bar call produces a type checking error:
test.ts:9:9 - error TS2554: Expected 0 arguments, but got 1.

9 new Bar("hello")
          ~~~~~~~

Note that running the code (with the type assertions stripped) results in both constructors being called, but TypeScript’s ES5 transpilation instead sets the second constructor as a method named constructor, which causes it not to be run.
Playground Link: Open playground ↗
Related Issues: Encountered in https://github.com/prettier/prettier/issues/6063.

The second code snippet does not create a constructor, it creates a property named constructor.
If you expect otherwise, then how would you expect to be able to define a property with that name?

Issues #3841 (see comment) and #5989 (see comment) might be related in that they use this syntax as a workaround so that class instances could have strongly typed constructor properties.

We guessed wrong what the ES class semantics would be, which is pretty unfortunate now.
Not clear how to proceed since this will be a runtime breaking change for people who chose their method/property names extremely poorly.

Plan: Issue an error in 3.5 if we see this and target is <= ES5, then change the ES5 emit in 3.6.

Plan: Issue an error in 3.5 if we see this and target is <= ES5, then change the ES5 emit in 3.6.

Moving the milestone since the grammar error part is done. This issue now tracks

change the ES5 emit


DirectML installation is confusing

I think this installation would be much better:
conda install numpy pandas tensorboard matplotlib tqdm pyyaml -y
pip install opencv-python
pip install wget
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 cpuonly -c pytorch
pip install torch-directml
Pytorch version is correct and torchvision etc. can be get from conda.

Hi, @velicanerdem. Which topic is this in reference to? If you could paste in a url?
Thanks!
-Steve


Unable to deploy

I think that the rust dependencies might need to be updated?
#0 46.03 ==> ex_robo_cop
#0 46.03 Compiling 3 files (.ex)
#0 46.38     Updating crates.io index
#0 56.03 Compiling lib/ex_robo_cop/rust_captcha.ex (it's taking more than 10s)
#0 182.5 error: failed to select a version for the requirement `once_cell = "=1.18.0"`
#0 182.5 candidate versions found which didn't match: 1.17.2, 1.17.1, 1.17.0, ...
#0 182.5 location searched: crates.io index
#0 182.5 required by package `ahash v0.8.3`
#0 182.5     ... which is depended on by `hashbrown v0.13.2`
#0 182.5     ... which is depended on by `fallible_collections v0.4.7`
#0 182.5     ... which is depended on by `lodepng v3.7.2`
#0 182.5     ... which is depended on by `captcha v0.0.8`
#0 182.5     ... which is depended on by `rustcaptcha v0.1.0 (/app/deps/ex_robo_cop/native/rustcaptcha)`
#0 182.5
#0 182.5 == Compilation error in file lib/ex_robo_cop/rust_captcha.ex ==
#0 182.5 ** (RuntimeError) calling `cargo metadata` failed.
#0 182.5
#0 182.5     (rustler 0.29.1) lib/rustler/compiler/config.ex:88: Rustler.Compiler.Config.metadata!/1
#0 182.5     (rustler 0.29.1) lib/rustler/compiler/config.ex:70: Rustler.Compiler.Config.build/1
#0 182.5     (rustler 0.29.1) lib/rustler/compiler.ex:9: Rustler.Compiler.compile_crate/2
#0 182.5     lib/ex_robo_cop/rust_captcha.ex:6: (module)
#0 182.5 could not compile dependency :ex_robo_cop, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile ex_robo_cop", update it with "mix deps.update ex_robo_cop" or clean it with "mix deps.clean ex_robo_cop"
------
Error: failed to fetch an image or build from source: error building: failed to solve: executor failed running [/bin/sh -c mix deps.compile]: exit code: 1

The latest release (0.1.4) updates all dependencies.
if deploy with fly.io still fails, you might have to change the way you install rust in your docker file.
I updated my dockerfile with latest Elixir version etc. and install rust via a curl command:
https://github.com/CorneliaKelinske/the_brogrammer/blob/main/Dockerfile


Merging Game branch to main

The Game branch has worked after extensive testing, with a client, server, and game logic. Try to test this locally FIRST, afterward we can merge it. It uses dial's ErrorGenerator class to evaluate code, and the errors provided by dial as well. All the merge would do is replace the server.py (which does practically nothing) with the new server, and adds the client. submissions.py and folder related do not change.

I'm going to fix it

Seems like we are rewriting a lot of stuff, this pr will be closed until the server is confirmed


Support bulk IPFS pinning and/or pinning at mint

Users currently have to call fresh pin X on each individual NFT that they have minted. This is tedious and time consuming.
A few alternatives:
1. Bulk pinning
This is useful for users that want to reveal IPFS assets after minting.
# Loop through all NFTs and pin their assets to IPFS
fresh pin --all

2. Pinning on mint
This is useful for users who do not need to hide assets at the time of mint.
# Pin each NFT to IPFS at the time of minting
fresh mint --pin

@conorao I know you mentioned that a feature like this would be useful to you. Would you prefer option 1 or 2 above?

@psiemens I think option 1 would be more flexible - because you'd be able to not only allow for revealing assets after minting, but implement option 2 as well by just cascading the
fresh mint

and
fresh pin --all

commands, right?

Yep that should accomplish the same thing!


New feature

Hi great package for drawing graphs ... Is there a quick way for directed graphs to be plotted without arrows? (graph makie has the functionality for arrow_show=false, but this package has not this particular API.

saw this:
edgefunction=(k, s, d, f, t) -> draw_edge(f, t),

and solves problem.

Yes I should probably fix this one day!


Sysctl/Seccomp/Apparmor test

We should test sysctl, seccomp and apparmor. These tests may not be conformance test, but are required in CRI validation test suite.
Probably just migrate test from node e2e https://github.com/kubernetes/kubernetes/blob/master/test/e2e/node/security_context.go.

note: sysctl/apparmor tests are also not included in node e2e tests.

dup of #24, just updated #24 for including comments here.


Add post detail

Below the price/volume/crowdsar chart, need to add the same charts/displays as in penny:
Post by user over time
Sentiment meter by user
List of actual post body
Probably able to use mostly code from penny for this. Could start developing with random/synthetic data or with real data.

@MorganPeterson  This is done, right?

Yes, it is done.
On Jun 9, 2016 9:26 PM, "Ben Johnson"<EMAIL_ADDRESS>wrote:

@MorganPeterson https://github.com/MorganPeterson This is done, right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-225072051,
or mute the thread
https://github.com/notifications/unsubscribe/ALO_cpCbUHVY2S8m2_5Iq19uGMEdhMtkks5qKL0vgaJpZM4IkdHF
.

CSS

[ ] Red/green bars in Post Volume chart are hard to look at
[ ] Charts should fill horizontal width if possible
[ ] Posts should fill vertical space
[ ] Remove duplicate X-axis labels on Post Volume chart

Functionality

[ ] Clicking on users should subset the posts on the right, as in Penny
[ ] Y-axis of charts should rescale to the appropriate range, as in Penny

(See TAUG if you select 2015 as your time range -- you can't see price information)

[ ] OHLC chart is preferable to a line chart.  If OHLC is impossible, then smoothing/interpolation on the line chart must be turned off.
[ ] Volume should be plotted on log10 scale
[ ] List of posts should be sorted by time

@MorganPeterson This is top priority

Ohlc isn't impossible, it is just unreadable.
On Jun 10, 2016 1:41 PM, "Ben Johnson"<EMAIL_ADDRESS>wrote:

@MorganPeterson https://github.com/MorganPeterson This is top priority
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-225247897,
or mute the thread
https://github.com/notifications/unsubscribe/ALO_cp06o0n1nl1CHD_YQIna49L2ShYaks5qKaHTgaJpZM4IkdHF
.

Can you show a screenshot as an example?

I will have to reimplement it.
On Jun 10, 2016 1:52 PM, "Ben Johnson"<EMAIL_ADDRESS>wrote:

Can you show a screenshot as an example?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-225250568,
or mute the thread
https://github.com/notifications/unsubscribe/ALO_cuDIuncvfmiIhBjizkeSDI98jPIrks5qKaRzgaJpZM4IkdHF
.

You could try taking the smoothing off of the current plot to see if that looks better first

Moving back to candlesticks isn't working for some reason.
How do you turn off the smoothing? The price chart is in techan and I can't
find the documentation for it.
On Fri, Jun 10, 2016 at 2:00 PM, Ben Johnson<EMAIL_ADDRESS>wrote:

You could try taking the smoothing off of the current plot to see if that
looks better first
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-225252639,
or mute the thread
https://github.com/notifications/unsubscribe/ALO_cqS52uaSPxQl0C7grnJxgNJlYeEOks5qKaZGgaJpZM4IkdHF
.

--
Morgan Peterson
Phronesis

I think the apparent smoothing effect is a consequence of only fetching 10 days from the ES index. The query should return all PV data

The charts filling width is obviously not impossible, but I was looking at the way we are handling outlets in the templates and I don't see a good way of doing this without a complete redesign of them.
The problem stems from the detail boxes on the left. The charts will always conflict with them.
One solution I could try is just making the search results width narrower there by making the charts wider, but they still won't fill the screen.

Due to differing render times and not wanting to to re-render charts more than the 2 times they are already rendered, the only way that I can think of making forum posts to fill the screen height is to set an arbitrary height for a wrapper that contains the gauges, time lines, forum charts.

I tried converting the Y-axis to log10 but d3/techan do not have good support for logarithmic values on bar charts and it has been an abject failure so far.
Is there perhaps another way you would like to go with it?
References: https://github.com/dc-js/dc.js/issues/477  &  https://github.com/dc-js/dc.js/issues/646

Charts seem to be filling horizontal width appropriately now -- maybe it was just a bug before.  There are a lot of issues with overlapping labels that need to be fixed though.

Bottom of these need to be aligned:

Non-log is fine for now.  The other issues are more important and should be addressed first.

I spent quite a few hours today trying to get the gauge charts and the forum posts to line up. I can't figure out how to do it. The gauges and the time lines are sized dynamically and because of async there is no guaranteed time as to when they are fully rendered and what size they will be when they do render making it impossible to use jquery to get the element size and then transfer that measurement to the forum posts.
I tried some CSS tricks but they all failed.
I'm out of ideas on how to line these two up. I need to put it on the backburner because I blew 50% of my day just on this.

Just the bottoms need to line up -- you can just set a max height and have
it overflow last that.
On Monday, June 13, 2016, Morgan Peterson<EMAIL_ADDRESS>wrote:

I spent quite a few hours today trying to get the gauge charts and the
forum posts to line up. I can't figure out how to do it. The gauges and the
time lines are sized dynamically and because of async there is no
guaranteed time as to when they are fully rendered and what size they will
be when they do render making it impossible to use jquery to get the
element size and then transfer that measurement to the forum posts.
I tried some CSS tricks but they all failed.
I'm out of ideas on how to line these two up. I need to put it on the
backburner because I blew 50% of my day just on this.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-225767770,
or mute the thread
https://github.com/notifications/unsubscribe/AFzgfeNMDVIdYSpvJUgNCRKzrDzes87Oks5qLhodgaJpZM4IkdHF
.

For the sake of clarity:
When you say remove the duplicate x axis labels on post volume chart do you mean remove all the x axis labels on the post volume chart?

There's date labels on the slider and on the main plot -- don't think we
need both IMO
On Tuesday, June 14, 2016, Morgan Peterson<EMAIL_ADDRESS>wrote:

For the sake of clarity:
When you say remove the duplicate x axis labels on post volume chart do
you mean remove all the x axis labels on the post volume chart?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-225922321,
or mute the thread
https://github.com/notifications/unsubscribe/AFzgfeEyae7IE6EGsrquXfhGmfETo--kks5qLsr9gaJpZM4IkdHF
.

My only concern with that is that the slider never re-scales so you lose some context on the post volume chart. Maybe I should lose the labels but leave the ticks?

Oh yeah that's a good point. Maybe just decrease the number/prominence of
the labels on the slider then
On Tuesday, June 14, 2016, Morgan Peterson<EMAIL_ADDRESS>wrote:

My only concern with that is that the slider never re-scales so you lose
some context on the post volume chart. Maybe I should lose the labels but
leave the ticks?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-225925376,
or mute the thread
https://github.com/notifications/unsubscribe/AFzgfdsm18gLKbbQHUtJtysn61Jj216bks5qLs04gaJpZM4IkdHF
.

[ ] Bug in "Clicking on users should subset the posts displayed, as in Penny"

Go to "http://localhost:8090/#/sidebar/-/detail/0001451512/board"
Click "Doc K"
No posts appear on RHS

It appears to me, I may be wrong because I didn't manually check all the
posts, that it is missing due to only 1000 entries being loaded from ES and
none of them were posts made by that poster.
On Thu, Jun 16, 2016 at 6:19 PM, Ben Johnson<EMAIL_ADDRESS>wrote:

Bug in "Clicking on users should subset the posts displayed, as in
Penny"

Go to "http://localhost:8090/#/sidebar/-/detail/0001451512/board"
Click "Doc K"
No posts appear on RHS

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-226630520,
or mute the thread
https://github.com/notifications/unsubscribe/ALO_cjv4oN4OqioPyzxI0yjYN20zSfkFks5qMcv3gaJpZM4IkdHF
.

--
Morgan Peterson
Phronesis

OK -- we should have clicking a user make a server call to get their posts, and maybe only pull back 100 or so to begin with.

That is what I am working on right at this moment. I hope to have something
up and running tomorrow morning.
On Thu, Jun 16, 2016 at 6:24 PM, Ben Johnson<EMAIL_ADDRESS>wrote:

OK -- we should have clicking a user make a server call to get their
posts, and maybe only pull back 100 or so to begin with.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gophronesis/penny-sae/issues/50#issuecomment-226631524,
or mute the thread
https://github.com/notifications/unsubscribe/ALO_cpA6Twb8fU8k8L5BJqlY3sreIugLks5qMc0TgaJpZM4IkdHF
.

--
Morgan Peterson
Phronesis

Ok cool

I think we have integrated as much of this as we can.
If there is more that we think we can do on this checklist, then I think it would be a good idea to open separate issues for each.


added Contribution Guidelines to readme

great addition!
shall we make it a separate md file?
like here - https://github.com/angular/angular/blob/main/CONTRIBUTING.md

@stevermeister would it be better this way?


Intelisense is too superfluous

VSCode Version: 1.29.1
OS Version: ubuntu 18.04.1

Steps to Reproduce:

The auto import has been improved a lot, but it's using absolute URLs like
import {myComponent} from "src/lib", (it should have been ../../../lib or something)
which technically kills the ng serve while automatically redeploying the changes
Sometimes when I type something, automatically complete it, but it was not the purpose. (it's sometimes annoying in the chrome browser bar also, as I need to delete back half of the URL by hand to get the main page of the website)

ctrl+shift+r command removes the auto import but does not reformat completely (does not remove superfluous empty lines, what I'm used to it in eclipse for example)
ctrl+space does not offer alternatives in a window when I have started a word, but moving mouse in a word shows the popup window, even if I would like to click the word inside to change one letter - it's hiding, so i'm unable to click inside the word. (in previous versions it was working differently)

It's a nice environment, but pls. replace a little bit the behaviour to make it better. At the moment it was going to a too much direction.

Using this issue to track 1. Please open seperate issues to track the other 3.
Try setting "typescript.preferences.importModuleSpecifier": "relative" or "javascript.preferences.importModuleSpecifier": "relative". This should make auto imports always use relative paths. Otherwise, it will use the baseUrl  setting for absolute when it can


OpenStackApplication should handle the HaltUpgradePlanGeneration itself

We should handle the HaltUpgradePlanGeneration in the generate_upgrade_plan instead of outside with function like create_upgrade_group.
I believe that this will help improve the logic of the whole HaltUpgradePlanGeneration and how we handle it.

This should already be fixed


Active Page on PaginationList

The PaginationList object (or rather, its builder) currently lacks a way to set the active or initial page, meaning that whenever the player is shown the list, it will always be on page 1.
There should be an activePage or initialPage property which, when set to an int, will initially display on that page.
Considerations

How do we handle numbers less than one?

Round up to 1
Absolute value (could cause unexpected results)
Display an error message

How do we handle numbers greater than the maximum number of pages?

Round down to last page
Round down to last page + 1 and show "no entries" or something similar (so it's clear the user messed up but it doesn't take forever with just clicking the previous page button to get to the initial page)

PaginationList has a sendTo(MessageReceiver receiver, int page) method that can be used.
However, because this sends an error message to the user if the page is out of bounds, you'd need to know if the page number exists for certain things. There doesn't seem to be a clean way to do this in the API, but it can be done with some math using the total size of the contents and the number of lines per page. I would not be opposed to adding a getNumberOfPages method or something either.

@Foxtrek64 I don't know if you're interested in this any more, but this has come up on our radar and so I'd like to understand this a little more.
Why do you want this? Specifically, why is it important to send a user to an initial specific page, which might be the last page?
Just trying to guage whether this is actually an XY problem and so your issue might actually be better solved in an entirely different way.

So one of the plugins I am building allows a user to display a title - how it's displayed is not a concern of my plugin, it just passes it to PlaceholderAPI and the consumer decides from there.
In order to choose a title, the user uses /title set <title>. This title is chosen from a preconfigured list of titles as designated by users with authorization to create a title. As such, users need to be able to display a list of these titles which may have several hundred entries. My draft title list has over five hundred.
With most pagination systems, users can jump directly to a specific page. This capability is not available here with the current system.
I want to be able to allow a user to use /titles list <pageNumber> to be able to immediately show a specific page. My current list command looks like this:
@Subcommand("list")
@Description("Provides a list of titles available to you.")
@CommandPermission("luzfaltex.titles.list.base")
fun onList(player: Player, @Default("1") page: Int) {

	// Get a list of all titles
	val availableTitles = plugin.dataService.getAvailableTitles(player.uniqueId)

	val builder = PaginationList.builder()
	builder.title(Text.of(Message.TitlesList.getFormattedMessage()))
	builder.padding(Text.of(" "))
	builder.contents(availableTitles.values.map { title: TitleCatalog -> Text.of(Message.TitlesListEntry.getFormattedMessage(title.name)) })

	builder.sendTo(player)
}

You can see I've provided some initial setup for accepting a page number, though there is no direct way of providing that.
Does the .sendTo() overload @WillBAnders suggested live in a PaginationListBuilder or is this strictly a PaginationList type? If I can just call builder.sendTo(player, page) then this is a rather easy solution (that said I've not touched this project since I made the original post, so I don't know if that overload was added since then or if it existed and IntelliSense just didn't tell me).

No, but you could just build().sendTo(player, page), which is what the sendTo on the builder does anyway.

Closing as we already have the requested behaviour.


Getting project name on constructor

Hello,
I creating a very simple extension which creates a button to open a link.
The link, however, is dependent on the Project Name from which it was called.
I have this code on the React Component:

import "./OpenPowerApp.scss";

import * as React from "react";
import { showRootComponent } from "../../Common";
import * as SDK from "azure-devops-extension-sdk"; // Import Azure DevOps SDK
import { CommonServiceIds, IProjectPageService,IHostNavigationService, INavigationElement, IPageRoute  } from "azure-devops-extension-api";

interface IHubContentState {
    projectName?: string;
    fullScreenMode?: boolean
    headerDescription?: string;
    useLargeTitle?: boolean;
    useCompactPivots?: boolean;
    iframeUrl?: string;
}
class HubContent extends React.Component<{}, IHubContentState> {
  constructor(props: {}) {
        super(props);
    }
    public componentDidMount() {
        this.initializeState();
    }

    public async initializeState():  Promise<void>{
        await SDK.ready();

        window.open("http://www.google.com", "_blank");
        const projectService = await SDK.getService<IProjectPageService>(CommonServiceIds.ProjectPageService);
        const project = await projectService.getProject();
        if (project) {
            this.setState({ projectName: project.name });
        }
    }
}
const Hub_Content = new HubContent({});
Hub_Content.componentDidMount();
const projectName = Hub_Content.state;
const projectUrl = "https://myurl?ProjectName=" + projectName;
window.open(projectUrl, "_blank");
showRootComponent(<HubContent />);

This code does open the link, but the projectName comes as undefined, and through the tests I've done, by placing the URL call inside the  async function, it seems that any code inside the async function is not being run.
Do you have any suggestions or alternatives to get the project name and open the URL?

In this example I gave, the google link is not opened, but if I place it inside ComponentDidMount function, which is synchronous, it does open.

Managed to get it working, apparently I was missing a  SDK.init(); on componentDidMount()

So close the issue, please.


Typescript autocomplete: extending an abstract class's async method get autocompleted incorrectly

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.85.2
OS Version: Windows 10

https://github.com/microsoft/vscode/assets/17122123/9cf9a4d3-130f-4fef-8aaa-a3e336583ca8
Steps to Reproduce:

Create an abstract class with an abstract async method ( returns a Promise)
Create another class that extends this abstract class, and try to write the method using autocomplete, by starting with typing async
See that it gets autocompleted incorrectly

Copiable code:
abstract class AFoo {
    abstract bar(): Promise<void>;
}

class Foo extends AFoo {
    async b
}

Here is the completion entry:
        {
            "name": "bar",
            "kind": "method",
            "kindModifiers": "abstract",
            "sortText": "11",
            "insertText": "async bar(): Promise<void> {\n    $0\n}",
            "filterText": "bar",
            "isSnippet": true
        },

No replacement range is returned


feat: Details component, and schema deployment hardening

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


Update travelRestrictions.json

tagging @reustle - as indicated in the issue submitted by @tassoman the pdf file pointed to by the link http://www.moj.go.jp/content/001316999.pdf doesn't exist anymore, I was able to find the updated PDF which has the travel restrictions updated up to August 30, 2020 http://www.moj.go.jp/content/001329914.pdf - there are new countries added on the updated PDF and their names, flags and country codes can be added to this JSON file via another pull request
// Please tag @reustle in your newly created PR
// Please include a screenshot of any visual changes you've made

Hello @reustle, this pull request can be merged without worring about the flags?


Master Typing and Snake game enhancement

PR Description 📜
Master Typing game : enhanced some functionality so that it can be obvious when the game has been started

I made sure the letters will pop up after the start button will be clicked
after the reset button is clicked, the letter will be stopped popping up and the timer will reset
Snake Game : I changed the theme of the game and fixed the alignment of the elements

Fixes #3539

Mark the task you have completed ✅

[ ] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[ ] I have performed a self-review of my own code or work.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] My changes generates no new warnings.
[ ] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[ ] I have added screenshot for website preview in assets/images
[ ] I have added entries for my game in main README.md
[ ] I have added README.md in my folder
[ ] I have added working video of the game in README.md (optional)
[ ] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸
snake game :

master typing: I attached a video link of my changed game in the readme file of this game .

Thank you soo much for contributing to our repository 💗

Thank you @Tasnuva12 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

@Tasnuva12 resolve the merge conflicts !

Thank you  @Tasnuva12 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


doubt regarding the final loss

Hi,
Thank you for the code. I had a doubt regarding the Affinity function used in the reformulated loss(eq 11). From what I understand, after computing the triplets by organize_samples()  function, they are fed to the criterion_triplet to get the loss.
In TripletEmbedding.lua are the Affinities( A(xi,xj) and A(xi,xk) in eq(11)) represented by delta_pos and delta_net ?
I am a bit confused because I could not see the actual Affinity function(calculated in the agg_clustering.c and as mentioned Graph Degree Linkage paper[68]) to be used while calculating the loss.
Thanks.

I am confused too. I have searched in the source code, but I found that the criterion function "TripletEmbeddingCriterion" computed rather using the distances based on the representations learned from the CNN than the affinity between two clusters. And why "TripletEmbeddingCriterion" is more similar to the loss defined in FaceNet which the paper referenced , but not same with the formula proposed in the paper? The Loss proposed in the paper actually uses the affinity between clusters, but why the source code seems to only use the affinity in agglomerative clustering and updating label except computing the triplet loss?

In general, the loss used to optimize DNN is >=0, and  the purpose to optimize DNN can be expressed to making loss zero in a mathematical form .
But why the triplet loss defined in the paper(equation 7 or 11) is <=0 forever, so what's the destination/criterion of the loss to optimize the CNN? is zero? if it is zero, why add a minus sign?
Hoping anybody comment or answer my problem, thanks a lot.


Basic form website using php sql to store the data

Please assign this task to me. I want to add my project under web development folder. @maheshjainckd

@chetansingh-2 you can also contribute to these repos, make sure you don't spam :)
https://github.com/dikshantrajput/hacktoberfest-2022-react
https://github.com/dikshantrajput/Hacktoberfest-accepted-2022


Image pull backoff in OC4.5 because image url is external when using start.sh

Summary
When deploying a follower to openshift 4.5 via start.sh, the follower deployment is created referring to the seedfetcher image by it's external url. This causes the follower pod to fail to start as it cannot pull the image for it's first init container.
Detail
The following logic determines if an internal or external url is generated:
    if ! [ -z ${TEST_PLATFORM+x} ] && [[ $TEST_PLATFORM =~ ^openshift4 ]] && [[ "$internal" == "true" ]]; then
      echo "image-registry.openshift-image-registry.svc:5000/$CONJUR_NAMESPACE_NAME/$1:$CONJUR_NAMESPACE_NAME"
    else
      echo "$DOCKER_REGISTRY_PATH/$CONJUR_NAMESPACE_NAME/$1:$CONJUR_NAMESPACE_NAME"
    fi

From: https://github.com/cyberark/kubernetes-conjur-deploy/blob/master/utils.sh#L48
TEST_PLAFORM is only set in test.sh and test.sh is only called from the Jenkinsfile. So when a user's entrypoint is start.sh, an internal url will not be generated.
Workaround
Add the following to bootstrap.env when using openshift 4x
TEST_PLATFORM=openshift4.5

@hughsaunders the method signature has changed since you filed this, and I think it should now be OPENSHIFT_VERSION that you set, e.g. to '4.5'.
https://github.com/cyberark/kubernetes-conjur-deploy/blob/fbe14df8a20e451ffdebca0d4b73c85df52d2bcc/utils.sh#L48
do you want to put up a PR to add this to boostrap.env?


ZF2-57

ZF2-57
Hello all,
This patch automatically switch the send method to POST | GET in setParameterPost and setParameterGet
http://framework.zend.com/issues/browse/ZF2-57
Thanks ...

This patch would screw up some use cases, see comments in http://framework.zend.com/issues/browse/ZF2-57


is the library have a c++ version?

Hi @756445638, unfortunately there is no C++ version yet. If you would like to contribute, it's welcomed!


Decompress layer tarballs when when writing to docker load

The tarballs-of-tarballs emitted by docker load have bare .tar files inside them; ours should presumably look just like that.
However, when naively doing so (7c9a270), I ran into an error:
   Test method Test.Microsoft.NET.Build.Containers.Filesystem.EndToEnd.ApiEndToEndWithLocalLoad threw exception:
System.NotSupportedException: This operation is not supported.
  Stack Trace:
      at System.IO.Compression.GZipStream.get_Length()
   at System.Formats.Tar.TarHeader.GetTotalDataBytesToWrite()
   at System.Formats.Tar.TarHeader.WriteAsPaxSharedInternal(Span`1 buffer, Int64& actualLength)
   at System.Formats.Tar.TarHeader.WriteAsPaxInternalAsync(Stream archiveStream, Memory`1 buffer, CancellationToken cancellationToken)
   at System.Formats.Tar.TarHeader.WriteAsPaxAsync(Stream archiveStream, Memory`1 buffer, CancellationToken cancellationToken)
   at System.Formats.Tar.TarWriter.WriteEntryAsyncInternal(TarEntry entry, CancellationToken cancellationToken)
   at Microsoft.NET.Build.Containers.LocalDocker.WriteImageToStream(Image x, String name, String tag, Stream imageStream) in S:\System.Containers\Microsoft.NET.Build.Containers\LocalDocker.cs:line 75
   at Microsoft.NET.Build.Containers.LocalDocker.Load(Image x, String name, String tag, String baseName) in S:\System.Containers\Microsoft.NET.Build.Containers\LocalDocker.cs:line 29
   at Test.Microsoft.NET.Build.Containers.Filesystem.EndToEnd.ApiEndToEndWithLocalLoad() in S:\System.Containers\Test.Microsoft.NET.Build.Containers.Filesystem\EndToEnd.cs:line 71

@carlossanlop, silly question but since it's around the tar APIs I figured I'd ping you.
What I'd like to do here is stream from an on-disk .tar.gz to a single .tar entry in another tarball. Is there any nicer way to solve this than to unzip the file to memory or disk?

I see that you are setting an unseekable stream as the tar entry's data stream. When the tar API tries to write the entry to the archive, and calculate the number of bytes that the data stream contains, it can't because the Length property throws on unseekable streams.
There is a workaround, and there is also an improvement we could add to the tar APIs:

Workaround: Do not set the gzs as the DataStream directly. Instead, copy it first to a MemoryStream, then set that memory stream as the tar entry's DataStream.
Tar API improvement: We should either throw early when the user attempts to set an unseekable stream as a tar entry's DataStream, or we should find a creative way of internally retrieving the length of that stream when the entry is about to be written to an archive. I'll open an issue in runtime for this.


Open README as UTF-8

So those whose system's default locale is not UTF-8 can install it.

Thanks.


Add mlperf RNN-T model

For now dataset has to be downloaded manually from https://www.openslr.org/12/. mlperf uses dev-clean.
Then all the flacs have to be converted to wav using something like:
for file in **/*.flac; ffmpeg -i $file -ar 16k "$(dirname $file)/$(basename $file .flac).wav"; end

Need this file as well https://github.com/mlcommons/inference/blob/master/speech_recognition/rnnt/dev-clean-wav.json.
I'm currently using librosa for the stft and audio file loading but it might be possible to rewrite them to not rely on librosa.
The RNN-T bench is also slightly different from the other ones as feature extraction is part of the benchmark, so I'm not quite sure where to put the feature extraction function.
Edit: this is also pretty slow rn
Edit again: not slow anymore

was writing rnnt till I see this commit...
btw how is the WER on dev set?

What's the current val loss?

Currently doing another run cuz I found that the metric code was wrong

ok, I got a word error rate of 7.38024337340539% across the filtered dev-clean set that mlperf specifies. the mlperf word error rate is specified as 7.452253714852645%.

Great work.
I think the last thing is a dataset downloader. And it's a nitpick, but in general, use pathlib instead of os.path.join.
I'll test it, if I repro the WER, the $200 bounty is yours. How do you want to be paid? (can also claim privately via e-mail)

Oh, test is failing.

Oh, test is failing in LLVM + GPU.

GPU test failure doesn't look related, will take a look at llvm

The GPU failure is likely related. It's because RNN-T isn't being cleaned up cleanly, there's tensors stuck somewhere.

Both tests should be fixed now

Tests also still failing.
Ugh, I wish I could disable "Approve and Run" on Github. https://github.blog/2021-04-22-github-actions-update-helping-maintainers-combat-bad-actors/

Testing now, just my notes:
for file in $(find * | grep flac); do ffmpeg -i $file -ar 16k "$(dirname $file)/$(basename $file .flac).wav"; done
ln -s LibriSpeech/dev-clean/ dev-clean-wav

Model download is super slow...

Nice work, seeing WER around 0.04, bounty is yours!
Let me know how you want to be paid<EMAIL_ADDRESS>


An error occurs when executing the action 'Rename' for one blob file

Storage Explorer Version: 1.9.0
Branch: master
Build: 20190810.5
Platform/OS: Linux Ubuntu 19.04/Windows 10/macOS High Sierra
Architecture: ia32/x64
Regression From: Previous release 1.9.0
Steps to reproduce:

Expand one normal account -> Blob Containers.
Open one blob container which contains one blob file at least.
Select one file then click 'Rename' -> Check the result.

Expect Experience:
The 'Rename' dialog appears.
Actual Experience:
An error occurs.

More info:

This issue doesn't reproduce when reaming one file of File Shares.
Nothing happens when renaming one ADLS Gen2 blob file.

This issue doesn't reproduce on the latest master build 20190813.12. So closed it.


More user-friendly cipher_list handling

Accept TLS1.3 ciphersuites in the cipher_list rule_str. If any
are present, replace the previously configured TLS1.3 suites,
otherwise leave the TLS1.3 suites unchanged.
Replaces #15162 - see full discussion there.

Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

@richsalz

As an outsider, I want to support what Matt said. Yes, certainly, some parties are confused by the current split. But it is hard to do something else that doesn't hold back 1.3 use. Unlike 1.2 and earlier, there is rarely a need to subset the official 1.3 cipher list.

The fact that there's rarely a need to alter the 1.3 cipher list makes it even more of a burden to require supporting a new API to handle a rarely used feature. The change I've proposed here lets everyone who doesn't care to change the 1.3 list keep on going as before, blissfully ignorant of any such ciphers, while still allowing them to specify them if the need arises. I don't see any way that this change will break anybody.
The only thing this proposal wouldn't handle is setting the 1.3 cipher list to empty, which AFAICS is a useless thing to do. That would only cause failures on 1.3 handshakes; if they actually want to disable use of 1.3 they of course have to use the SSL_OP_NO_TLSv1_3 option.

@hyc, thanks.  I no longer have any opinion on this :)

Applying labels and milestone from #15162 as they still apply.

OTC: It remains the OTC view that TLSv1.3 ciphersuite configuration should be separate from TLSv1.2, and therefore this PR will not be progressed.


Chartjs plugin streaming in angular7 doesnt work

Hello sir,  I am dian from indonesia,  i have tried for chart.js plugin streaming in angular 7, but when I run this plugin (https://nagix.github.io/chartjs-plugin-streaming/ ) doesnt work (not display graph).  And then,  I have tried chart.js in angulat 7 from "https://valor-software.com/ng2-charts/" it's work.  where is the problem,  i dont understand.  Please can you review this problem.

I've used it with Angular 6 and I've recently updated to Angular 7 without any issue.

Hi, almost the same problem... I follow this sample and
I can see the graph wihout data but when I add some data I got this ERROR TypeError: Cannot read property 'getPixelForValue' of undefined

@johndacost Do you see any error messages in console?

Hi, almost the same problem... I follow this sample.
but onRefresh: function (chart) {...} is never call
  public options: any = {
    scales: {
      xAxes: [{
        type: 'time',
        realtime: {
          duration: 20000,    // data in the past 20000 ms will be displayed
          refresh: 1000,      // onRefresh callback will be called every 1000 ms
          delay: 1000,        // delay of 1000 ms, so upcoming values are known before plotting a line
          pause: false,       // chart is not paused
          ttl: undefined,
          // a callback to update datasets
          onRefresh: function (chart: any) {
            debugger;
            // query your data source and get the array of {x: timestamp, y: value} objects
            var data = [Math.random()];
            // append the new data array to the existing chart data
            Array.prototype.push.apply(chart.data.datasets[0].data, data);
          }
        }
      }]
    },
    plugins: {
      streaming: {            // per-chart option
        frameRate: 30       // chart is drawn 30 times every second
      }
    }

I am not using it this way. I have no realtime property. Try this:
public options: any = {
  scales: {
    xAxes: [{
      type: 'realtime',
    }]
  },
  plugins: {
    streaming: {
      frameRate: 30,
      duration: 20000,
      refresh: 1000,
      delay: 1000,
      onRefresh: (chart: any) => {
        ...
      }
    }
  }
}

@johndacost Do you see any error messages in console?

Nope... no error catched..
Congifuration

Angular6
ionic4

live.page.module.ts
@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    ChartsModule,
    RouterModule.forChild(routes)
  ],
  declarations: [LivePage]
})

export class LivePageModule { }
live.page.html
    <div style="display: block">
      <canvas baseChart [chartType]="'line'" [datasets]="datasets" [options]="options">
      </canvas>
    </div>

live.page.ts
  ...
  import 'chartjs-plugin-streaming';
  ...
  datasets: any[] = [{ data: [] }, { data: [] }];
  options: any = {
    scales: {
      xAxes: [{ type: 'realtime' }]
    },
    plugins: {
      streaming: {
        frameRate: 30,
        duration: 20000,
        refresh: 1000,
        delay: 1000,
        onRefresh: function (chart: any) {
          console.log("test");
          chart.data.datasets.forEach(function (dataset: any) {
            dataset.data.push({
              x: Date.now(),
              y: Math.random()
            });
          });
        },
      }
    }
  };

Result

Hi, almost the same problem... I follow this sample.
but onRefresh: function (chart) {...} is never call
  public options: any = {
    scales: {
      xAxes: [{
        type: 'time',
        realtime: {
          duration: 20000,    // data in the past 20000 ms will be displayed
          refresh: 1000,      // onRefresh callback will be called every 1000 ms
          delay: 1000,        // delay of 1000 ms, so upcoming values are known before plotting a line
          pause: false,       // chart is not paused
          ttl: undefined,
          // a callback to update datasets
          onRefresh: function (chart: any) {
            debugger;
            // query your data source and get the array of {x: timestamp, y: value} objects
            var data = [Math.random()];
            // append the new data array to the existing chart data
            Array.prototype.push.apply(chart.data.datasets[0].data, data);
          }
        }
      }]
    },
    plugins: {
      streaming: {            // per-chart option
        frameRate: 30       // chart is drawn 30 times every second
      }
    }

I am not using it this way. I have no realtime property. Try this:
public options: any = {
  scales: {
    xAxes: [{
      type: 'realtime',
    }]
  },
  plugins: {
    streaming: {
      frameRate: 30,
      duration: 20000,
      refresh: 1000,
      delay: 1000,
      onRefresh: (chart: any) => {
        ...
      }
    }
  }
}

I try your solution but still not refresh the graph :(

But is it calling to onRefresh method?

But is it calling to onRefresh method?

nope. I put a console.log("call") in the onRefresh method and nothing appear

@johndacost Do you see any error messages in console?

In fact, yes when i try to add data with a click function I got this LivePage.html:47 ERROR TypeError: Cannot read property 'getPixelForValue' of undefined

Closing as a solution was suggested.


Add unit tests for common sidebar functionality

Fixed Issues
This is part of the refactoring needed in this issue: https://github.com/Expensify/App/issues/7948
Tests
The unit tests were based on the tests written in these PRs:
https://github.com/Expensify/App/pull/6084
https://github.com/Expensify/App/pull/5317
QA Steps
Same as in these PRs:
https://github.com/Expensify/App/pull/6084
https://github.com/Expensify/App/pull/5317
cc @luacmartins

🚀 Deployed to staging by @danieldoglas in version: 1.1.95-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


feat(charts): 在服务模板中添加 annotations 配置支持

LoadBalancer service type 需要通过annotations 指定云上 LB 相关信息，需要支持在service 中配置annotations。

Summary by CodeRabbit
Release Notes

New Features

Added support for custom service annotations in Apollo Portal and Apollo Service Helm charts.
Enhanced service configuration flexibility.

Improvements

Updated Helm chart versions for Apollo Portal and Apollo Service from 0.8.0 to 0.9.0.
Improved service metadata configuration options, allowing users to specify additional annotations.

@nobodyiam


Fix #106: Use fixed schema for CFF 1.0.3

This fix hard-codes the use of schema version 1.0.3-1 for CFF files with a value of cff-version: 1.0.3.
This hard-coding seems reasonable as 1.0.3-1 is the last version that will use the schema.yaml + pykwalifire validation method.
This PR fixes #106.

Travis builds fail with
sonar-scanner: command not found
The command "sonar-scanner -Dsonar.login=$SONAR_TOKEN -X" exited with 127.

Just a quick recap for organizing my thoughts.

Users have various versions of the schema to choose from when creating a citation data file
currently we have GitHub releases for version 1.0.1, 1.0.2, 1.0.3, 1.0.3-1 of the schema repository (we don't have releases of the schema on Zenodo, so we can't retrieve through DOIs; it has to be through https://raw.githubusercontent.com )
This PR proposes to always interpret a user-supplied 1.0.3 as 1.0.3-1.

To me it would be a little bit unexpected if I entered 1.0.3 but 1.0.3-1 was used. This is because I interpret the cff-version key as an identifier for the schema, although the PDF of the spec can be read to mean cff-version is a identifier for the spec. However, interpreting cff-version this latter way makes it ambiguous which version of the schema should be used (as time passes, a given value may point to newer bugfix releases of the schema that implements that spec).
I think a better approach might be to add a dash in the middle of the regexp here, so instead of
^cff-version: (['|\"])?(?P<semver>[\d\.]*)(['\"])?\s*$

have this:
^cff-version: (['|\"])?(?P<semver>[\d\.-]*)(['\"])?\s*$

As far as I can tell from looking at the code (I didn't test it yet), that will fix the problem #106 in a way that is more predictable: if a user types 1.0.3, that's what they get; if they type 1.0.3-1, that's what they'll get; if they type 1.0.3-99, they get an error when trying to retrieve the corresponding schema file.
Additionally, this would be a mechanism with which @thomaskrause can have direct control over the value of version as per their comment in #106.
I'd be happy to hear your or others' thoughts on this.

This PR proposes to always interpret a user-supplied 1.0.3 as 1.0.3-1.

Yes.

To me it would be a little bit unexpected if I entered 1.0.3 but 1.0.3-1 was used. This is because I interpret the cff-version key as an identifier for the schema, although the PDF of the spec can be read to mean cff-version is a identifier for the spec.

Due to the unfortunate split versioning between schema and specs, the latter is correct. Cf. the schema README where it says

The versioning scheme for cff-schema is based on CFF specs versions, with changes in the schema that don't follow changes in the specifications suffixed by -n where n is a consecutive number. E.g., cff-schema version 1.0.2-2 would be the second bugfix version after the cff-schema release version that applies to CFF specifications version 1.0.2.

I.e., schema v1.0.3-1 doesn't pertain to CFF 1.0.3-1. Instead, it's a bugfix release for specs 1.0.3 of CFF.

As far as I can tell from looking at the code (I didn't test it yet), that will fix the problem #106 in a way that is more predictable: if a user types 1.0.3, that's what they get; if they type 1.0.3-1, that's what they'll get; if they type 1.0.3-99, they get an error when trying to retrieve the corresponding schema file.

I don't expect users to use cff-version with a value outside of standard SemVer, so they should always use 1.0.3, even if the schema version is 1.0.3-1. In this case, the change is just an updated SPDX id list, so it won't break anything.
Thankfully this mess will be fixed in future versions where we'll just be able to release and version schema and specs together :).
Hope this makes it clearer why this PR does what it does.


LICENSE

we need to figure out a license for this

Agree, that's important for other OSS projects to include your lib without issues.
Thanks for your contributions!
Finally had a little bit of time and added a page for your client to our docs:
https://docs.photoprism.org/developer-guide/clients/go/

oh great if we can just keep the client here then I will add an Apache2 license and we can close this.
also if you show me where the source is for the documentation I can keep it updated if/when our client grows.


First-time Orientation: Figma kit discussion

Discuss what and where we want to publish PLG Get started documentation
Determine how we want to deliver the Orientation flow (Get started) assets and future PLG design assets

What type of Figma files are teams expecting

Mini kit like AI: A PLG specific kit
In the All themes kit

Option 1: PLG kit
A mini Figma kit that has all PLG assets for designers

Onboarding Orientation (Get started)

Usage docs
Examples of layouts
Get started cards
How to link tabs?

Feature Preview

Usage docs
Examples of layouts

Website

Do we need to publish the docs on the website if they are in the kit? Similar to AI approach

Option 2
Website

Publish website docs on Product PAL

Include "experimental" notification
Include instructions on where to find each component?

Figma

Product PAL kit

Add Get started cards
Add Feature preview banner
Interstitial (make sure it's there)

Carbon Core kit

Vertical tabs
Tags

### Tasks
- [x] Discuss strategy with the Carbon teams and PLG workstream team
- [ ] Open follow on issues based on decision

Bridget's current Figma file

Option A
Discussed at the workshop Apr 25
Provide a "Get started" kit similar to how we delivered AI
Figma file would contain:

Card components
Tab components (?)
Usage guidance

Within IBM Product PAL Figma project:

Folder called PLG experiences

"Get started"
"Preview"
etc...

Once PLG is production ready, we will publish the usage guidance on the Product PAL website and within the Product PAL all themes kit
Option B
PLG has a L1 section in the nav
Publish the guidance

dupe https://github.com/carbon-design-system/ibm-products/issues/5233

As our understanding of the content in this PAL is evolving, it feels like there is another potential option that we can standardize on and that is that each pattern, the equivalent of a recipe, should have their own Figma kit and in the case where the pattern of patterns expands out, we could have one Figma kit for the collection of recipes (e.g. Onboarding).  This is similar to the AI Essentials Kit.  It's a collection of recipes on how to embed AI in your product.
We may need a template for this kind of Figma Kit for Patterns especially when the Kit refers to coded components as it doesn't have to repeat the details that are provided in the All Themes Kit, and in the website docs but its goal is to provide designers with a detachable design to use in their product designs.

We've decided to move forward with Option 2:

Provide the components (ingredients) in Carbon core and Carbon for IBM Products kits
The website will document the various pattern options and provide the recipe list

Next steps

Open an issue to add the get started cards into C4IP all themes
Open an issue for design exploration on documenting a recipe

@oliviaflory Can this be closed?

Yes! Thank you for reminding me. Closed


Unable to configure Auth Provider when serving dashboard locally

Setup

Rancher version: v2.7.5ish
Rancher UI Extensions:
Browser type & version:

Describe the bug

Auth Providers need a url to redirect to once users have verified themselves. This ends with /verify-auth
If the dashboard is served up locally shell/server/server-middleware.js should redirect it to the required /auth/verify page (rancher instance usual does this)
however that server-middleware file should be loaded via serverMiddleware in vue-config, but it's not wired in (it's a nuxt thing...)

To Reproduce

configure github auth provider
after enabling the provider the user is redirected to the github ui to accept app permissions
user should then sent to redirect url /verify-auth

Result

404 page

Expected Result

redirect happens and window closes

Additional context
This only affects dashboard running locally, not served by rancher
Workaround - Add the following to routes in shell/config/router.js
{
    path:     '/verify-auth',
    redirect: (to) => {
      return 'auth/verify';
    },
  }

Duplicated, and resolved, by #9138


Add Beginner's Essential Javascript Cheat Sheet to free-programming-cheatsheets.md

Hacktoberfest notes:

due to volume of submissions, we may not be able to review PRs that do not pass tests and do not have informative titles.
please read our contributing guidelines
be sure to check the output of Travis-CI for linter errors
if this is your first open source contribution, make sure it's not your last!

What does this PR do?
Add Resource(s)
For resources
Description
JavaScript is gaining much importance as a programming language. It is increasingly the go-to language for building web properties thanks to its proven track record and benefits.
Why is this valuable (or not)?
In the JavaScript cheat sheet above, we have compiled many of the most basic and important operators, functions, principles, and methods. It provides a good overview of the language and a reference for both developers and learners. We hope you have found it useful.
How do we know it's really free?
It's simply a link to a pdf
For book lists, is it a book? For course lists, is it a course? etc.
PDF Cheatsheet
Checklist:

[x] Not a duplicate
[x] Included author(s) if appropriate
[x] Lists are in alphabetical order
[x] Needed indications added (PDF, access notes, under construction)

Hey, and welcome to free programming books! :wave:
It looks like you've let your code editor auto-format the document and break most of the repositories conventions. It's always worth giving the changes files a peek before submitting the PR! Could you please fix the formatting?

This appears to be duplicated at https://github.com/EbookFoundation/free-programming-books/pull/5022 it seems?
It could be nice to close this one since it's the same thing but with the formatting issues?
Could you please ensure all lists, categories, and sections/subsections remain in alphabetical order?


[REQUEST] [Rust] add colors in compiler output

Adding --color=always improves the readability of the output of the compiler.
Note: --color=auto doesn't add any color (I guess it's the current setting).

Thanks for the suggestion! I've now implemented this for every rustc compiler that supports it and the change is already available on the live site. :)
Let us know if there's anything else we can do.

Nice ;)


Combined CHANGELOG and GitHub Releases

I'm loving the new mono-repo structure, but the multiple changelogs are going to make it hard to keep up with releases. For v2, I had to track down the blog article to even understand what was going on.
Would it be possible to aggregate all the changelogs into one, like they do in Babel, for instance?
Also, I use GitPunch to keep track of new releases, and having the changelog right in the GitHub Release is very convenient. This used to be the case prior to v2.0, so I'd love to see it happen again! ❤ Either way, thanks for all your awesome work!

Agreed, the current release notes setup is rough. Other monorepo projects seem to be handling it better, such as React and Slate. I'll take a look at GitPunch.
@mittalyashu LogChimp creates external release notes, this issue is about providing release notes within GitHub, which is where developers expect to see them.

There's also this Lerna tool that does changelog rollups:
https://github.com/lerna/lerna-changelog

Looks cool! I'd try it if it could key off of conventional commits rather than requiring labels on every PR. Seems to use the GitHub API instead of Git on the local machine.

@demshy found a way to generate release notes based on changelogs in all packages. This works retroactively, so release notes were generated for all versions since decap 3.0. See all releases here: https://github.com/decaporg/decap-cms/releases


Simple maintenance improvements

Rebased #127 on latest testing branch, and additionally fixed some of the style issues introduced in #126
Review comments are very welcome.

I am doing extensive tests in virtual machines of all platforms mentioned in the readme.

Extensive testing was completed, the only thing that didn't work reliably across all the systems (but didn't work even before any of these changes) was proper color output, so I fixed that as well.

It's more work but might be better to split this PR into two. One with the cleanup. One with the color fix (include which platforms had issues).


feat: common crate name config

Motivation

see: https://github.com/cloudwego/volo/issues/358
Solution

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


Update examples affected by customizable random generators

Use Randomization.getRandom() in all examples where a random generator is applied (custom neighbourhoods, custom initial solutions, random permutation, ....). Applies to examples 2A, 3, 4A and 4B.
Mention how a custom global random generator can be set using Randomization.setRandom(...).

Update following new strategy (see hdbeukel/james-core#1).