Metrics Phase 1

This is the first phase of the metrics classes focused on those metrics that leverage Losses.
The second phase will focus on more complex metrics, like Area Under Curve (AUC).
A couple of notes.

The metric CosineSimilarity in Keras, does not call its Loss counterpart, losses.cosineSimilarity, but instead it calls Metrics.cosineProximity. This metric is calculating the Euclidean distance using L2 norms, while the loss class losses.CosineSImilarity is using the dot product proportional to the product of their magnitudes. While the 2 concepts are similar, they are different. Should we rename this metric to CosineProximity?
In the Metrics class, there are two methods for l2Normalize(), which is defined as tf.math.l2_normalize in TF Python implemented in Python. Where should these methods reside, or just leave them inside Metrics?

Should we rename this metric to CosineProximity?

Is "cosine proximity" actually a thing outside of Keras? Searching the net, it looks like this is simply called euclidean distance, while cosine similarity stands on its own.
Since we already agreed in the past that we don't have to copy exactly what is found in Keras, would it make sense to simply call it EuclideanDistance or EuclideanDistanceL2?

Should we rename this metric to CosineProximity?

Is "cosine proximity" actually a thing outside of Keras? Searching the net, it looks like this is simply called euclidean distance, while cosine similarity stands on its own.
Since we already agreed in the past that we don't have to copy exactly what is found in Keras, would it make sense to simply call it EuclideanDistance or EuclideanDistanceL2?

Instead of wrapping all these loss classes inside metrics, would it make sense to simply add a Metric interface implemented by the same classes to avoid duplicating them?
The actual way is better for metrics discovery, as they all reside in the same package, but it might be better to avoid having classes with the same name and the same instance of Loss could be used for computing the loss and collecting it as a metric, wdyt?

Instead of wrapping all these loss classes inside metrics, would it make sense to simply add a Metric interface implemented by the same classes to avoid duplicating them?
The actual way is better for metrics discovery, as they all reside in the same package, but it might be better to avoid having classes with the same name and the same instance of Loss could be used for computing the loss and collecting it as a metric, wdyt?

Instead of wrapping all these loss classes inside metrics, would it make sense to simply add a Metric interface implemented by the same classes to avoid duplicating them?
The actual way is better for metrics discovery, as they all reside in the same package, but it might be better to avoid having classes with the same name and the same instance of Loss could be used for computing the loss and collecting it as a metric, wdyt?
(though I'm not sure what would be the use case for doing it, as the loss should always be available as a metric, right?)

The main difference between the specific “loss” metrics and Loss classes is one of state. Loss classes are stateless in that the the loss is calculated, returned, then forgotten. Metrics, however are stateful. After each call, the result is added to the previous result along with a running counter. As a result, the reductions differ. Loss reduction focuses on reducing a multi dimensional result into a single value, e.g. reduce sum. While a Metric reduction looks to reduce the metric results across state, e.g a mean.
To maintain the state, Metric classes keep two variables, total and count. Loss classes do not have any variables. Also reduction logic is different.
I think if you tried to combine these disparate concepts into one class, things would get messy. Also, the real core of the actual loss calculation is already broken out into the Losses methods used by both classes.
Lastly, there is a whole other set of metrics that don’t rely on Losses at all, including the various accuracy metrics. These will be included in metrics phase 2.

Instead of wrapping all these loss classes inside metrics, would it make sense to simply add a Metric interface implemented by the same classes to avoid duplicating them?
The actual way is better for metrics discovery, as they all reside in the same package, but it might be better to avoid having classes with the same name and the same instance of Loss could be used for computing the loss and collecting it as a metric, wdyt?
(though I'm not sure what would be the use case for doing it, as the loss should always be available as a metric, right?)

The main difference between the specific “loss” metrics and Loss classes is one of state. Loss classes are stateless in that the the loss is calculated, returned, then forgotten. Metrics, however are stateful. After each call, the result is added to the previous result along with a running counter. As a result, the reductions differ. Loss reduction focuses on reducing a multi dimensional result into a single value, e.g. reduce sum. While a Metric reduction looks to reduce the metric results across state, e.g a mean.
To maintain the state, Metric classes keep two variables, total and count. Loss classes do not have any variables. Also reduction logic is different.
I think if you tried to combine these disparate concepts into one class, things would get messy. Also, the real core of the actual loss calculation is already broken out into the Losses methods used by both classes.
Lastly, there is a whole other set of metrics that don’t rely on Losses at all, including the various accuracy metrics. These will be included in metrics phase 2.

@JimClarke5 , any comment on this suggestion?

@JimClarke5 , any comment on this suggestion?

Should we rename this metric to CosineProximity?

Is "cosine proximity" actually a thing outside of Keras? Searching the net, it looks like this is simply called euclidean distance, while cosine similarity stands on its own.
Since we already agreed in the past that we don't have to copy exactly what is found in Keras, would it make sense to simply call it EuclideanDistance or EuclideanDistanceL2?

Going back to review this, the only difference between losses.CosineSimilarity and metrics.CosineSimilarity is the sign of the result. losses.CosineSimilarity applies a tf.math.neg() on the final result, while metrics.CosineSimilarity does not.
From researching Keras and notes on GitHub for Keras,  it seems this was done to facilitate the disparate goals of a loss versus the goal of a metric. Losses are meant to be minimized, so it seems they apply negative to the result to facilitate with that minimization. For normal cosine similarity, -1 indicates the vectors are diametrically opposed, while 1 means they are similar. As the loss focuses on minimization, they flip the sign, so -1 becomes similar, while +1 becomes dissimilar. That makes it easier to to minimize down toward similarity. In a sense, CosineSimilarity is the right paradigm for both, it is just that the loss version flips the sign to facilitate minimization.
Maybe the correct answer is to rename losses.CosineSimilarity to losses.CosineSimilarityLoss, to indicate that they are both calculating Cosine Similarity, but that the Loss class  finagles the result for help with the loss calculation.

Should we rename this metric to CosineProximity?

Is "cosine proximity" actually a thing outside of Keras? Searching the net, it looks like this is simply called euclidean distance, while cosine similarity stands on its own.
Since we already agreed in the past that we don't have to copy exactly what is found in Keras, would it make sense to simply call it EuclideanDistance or EuclideanDistanceL2?

Going back to review this, the only difference between losses.CosineSimilarity and metrics.CosineSimilarity is the sign of the result. losses.CosineSimilarity applies a tf.math.neg() on the final result, while metrics.CosineSimilarity does not.
From researching Keras and notes on GitHub for Keras,  it seems this was done to facilitate the disparate goals of a loss versus the goal of a metric. Losses are meant to be minimized, so it seems they apply negative to the result to facilitate with that minimization. For normal cosine similarity, -1 indicates the vectors are diametrically opposed, while 1 means they are similar. As the loss focuses on minimization, they flip the sign, so -1 becomes similar, while +1 becomes dissimilar. That makes it easier to to minimize down toward similarity. In a sense, CosineSimilarity is the right paradigm for both, it is just that the loss version flips the sign to facilitate minimization.
Maybe the correct answer is to rename losses.CosineSimilarity to losses.CosineSimilarityLoss, to indicate that they are both calculating Cosine Similarity, but that the Loss class  finagles the result for help with the loss calculation.

Looking at this in the context of #193 and #176, it seems like there's a few cases where there's a type parameter on the class that isn't really necessary, since it's never used to enforce anything (as best I can tell).  I.e. U in Metric.  This also affects #201, since the Kotlin wrappers won't work as well if you have to specify extra types.  Since things are cast anyways, it looks like U could be removed from the class and replaced by ? extends TNumber in the call method.  There's some places in LossHelper or MetricsHelper that would need to be refactored, though.
Thoughts?  It would make the inline Kotlin wrappers much nicer if this is possible.

Looking at this in the context of #193 and #176, it seems like there's a few cases where there's a type parameter on the class that isn't really necessary, since it's never used to enforce anything (as best I can tell).  I.e. U in Metric.  This also affects #201, since the Kotlin wrappers won't work as well if you have to specify extra types.  Since things are cast anyways, it looks like U could be removed from the class and replaced by ? extends TNumber in the call method.  There's some places in LossHelper or MetricsHelper that would need to be refactored, though.
Thoughts?  It would make the inline Kotlin wrappers much nicer if this is possible.

@rnett , following this comment, Jim agreed to go through the whole framework for cleaning up the superfluous generics in a separate PR, probably right after this one.

@rnett , following this comment, Jim agreed to go through the whole framework for cleaning up the superfluous generics in a separate PR, probably right after this one.

@rnett I think the Googlebot CLA is asking you to consent as Jim merged in from master rather than rebasing.

@rnett I think the Googlebot CLA is asking you to consent as Jim merged in from master rather than rebasing.

@googlebot I consent.

@googlebot I consent.


test.dart gives false positives for tests with no output

If test.dart runs a test file and it produces no output, that's considered a success. This means that if a test is somehow failing to run, it's incorrectly considered successful. It seems like test.dart should explicitly verify that the tests are printing PASS.

@nex3 Is still in the realm of an issue?

No, this can be closed out.


Proposition for LoremIpsum#paragraphs()

I have made LoremIpsum#parahraph() yield each paragraph, if a block is given. Otherwise it behaves exactly as before (returns a string of paragraphs). All the options that would be taken into account when returning a string are also honored when yielding paragraphs, except for separator.
For instance
Forgery(:lorem_ipsum).paragraphs(2) do |paragraph| puts paragraph end

would print each paragraph.
Of course, for a more coherent API, the same feature should be there with every other method of lorem ipsum (and perhaps other generators as well).
Also, I am not sure how the separator option should be taken into account when using the yield feature of the method, but my opinion is that the caller can use their separator inside the block they provide directly.
Finally, if I had to propose a cleaner API reform, I would factor out the generation code into each_* methods, and make normal methods be simple wrappers for their each_ corresponding ones. For example:
def each_paragraph(number_of_paragraphs)
  return enum_for(:each_paragraph, number_of_paragraphs) unless block_given?
  number_of_paragraphs.times do
    yield generate_paragraph
  end
end

def paragraphs(num, opts)
  each_paragraph(num).to_a.join(opts[:separator])
end

If people find this an interesting idea, I could continue this idea in some future commits.

@mouchtaris I will review your PR during next week.

Open again if still interested.


Terminal don' show characters at start.

Issue Type: Bug
Just open the terminal A "blank" area is show.  The information is there, but it's not visible.
Typing "clear" refreshes the terminal and the characters will be visible.
I tried with a fresh install, as the screenshot below

VS Code version: Code 1.28.2 (7f3ce96ff4729c91352ae6def877e59c561f4850, 2018-10-17T00:23:51.859Z)
OS version: Windows_NT x64 10.0.17763

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz (4 x 2808)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
15.93GB (6.22GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (1)

Extension
Author (truncated)
Version

csharp
ms-
1.17.0

I have the same problem. When you start terminal panel in maximized mode, the problem is gone.

Me too. Switching to dom render does not help.

Same Issue on Versin 1.29.1

I can confirm, it is a Windows 1809 problem.

https://github.com/Microsoft/vscode/issues/57803


Add transaction

Hello all! This code is more on the UI pa. Dile ni sya mo work if you input something.

Noice ka Carryl!


audio not working

here i attached the screenshot and the error i am getting in browser
plz help on this @tjtanjin

@ajaysingh7623 That message is saying the user needs to interact with the page before audio can be played.

import axios from "axios";
import { CDN_LOTTIES } from "config/env";
import React, { useState } from "react";
import ChatBot from "react-chatbotify";
import { useDispatch } from "react-redux";
function ChatBotify() {
const dispatch = useDispatch();
const [quote, setQuote] = useState("");
// Select the session history from the Redux store
//   const {quote,quoteID} = useSelector((state) => state.chatBotifyReducer);
console.log(quote, "session");
//   const [sessionHistory, setSessionHistory] = useState({
//     quote: "",
//     quoteID: ""
//   });
//   console.log(sessionHistory, "hh");
async function run(params) {
const authToken = localStorage.getItem("authToken");
const payload = {
userinput: params?.userInput,
history: {
quote: "14235436",
quoteID: quote ||""
}
};
const url = "/api/start";
const config = {
headers: {
"Content-Type": "application/json",
Authorization: Bearer ${authToken}
}
};
try {
const response = await axios.post(url, payload, config);
const quote = response?.data?.session_history.quote;
const quoteID = response?.data?.session_history.quoteID;
setQuote(quoteID);
//   setSessionHistory((prev) => ({
//     ...prev,
//     quote: quote,
//     quoteID: quoteID
//   }));
// dispatch({
//   type: "SET_SESSION_HISTORY",
//   payload: response?.data?.session_history
// });
if (response.data) {
params.streamMessage(
response?.data?.bot_response +
" " +
response?.data?.next_step_recommendation
);
} else {
console.error("Unexpected response structure:", response);
return "Unexpected response from server.";
}
} catch (error) {
console.error("Error during Axios request:", error);
return "An error occurred while processing your request.";
}
}
const flow = {
start: {
message: "Hello, I am CPQ ChatBot, How Can I Help You!",
path: "model_loop"
},
model_loop: {
message: (params) => {
run(params);
},
path: "model_loop"
}
};
const themes = [
{ id: "minimal_midnight", version: "0.1.0" }
];
const microsoftLogo = ${CDN_LOTTIES.replace(     "lotties",     "images"   )}microsoft-edge.png;
const styles = {
// chatButtonStyle: {
//   height: "10%",
//   width: "10%"
// }
};
return (
<ChatBot
themes={themes}
styles={styles}
settings={{
audio: { disabled: false, defaultToggledOn: false },
voice: { disabled: false },
chatHistory: { storageKey: "example_audio" },
chatButton: {
icon: microsoftLogo
}
}}
flow={flow}
/>
);
}
export default ChatBotify;
can u plz go through the code something i am missing so audio is not working

  here i attached the screenshot and the error i am getting in browser plz help on this @tjtanjin

Based on the message in the yellow box above, the chatbot was already trying to play audio (i.e. audio is working) but was unable to, because the user has yet to interact with the page. Try clicking around and then trigger the next message.

  here i attached the screenshot and the error i am getting in browser plz help on this @tjtanjin

Based on the message in the yellow box above, the chatbot was already trying to play audio (i.e. audio is working) but was unable to, because the user has yet to interact with the page. Try clicking around and then trigger the next message.

hello @tjtanjin  i tried this thing but then also it is happening

The yellow box message appearing is indicative that it is trying to play an audio, but I can't really tell why you're not getting the sound (it seems likely it's a local issue since it works on the playground for you). Is your project available on GitHub? If so I could clone and take a look.

The yellow box message appearing is indicative that it is trying to play an audio, but I can't really tell why you're not getting the sound (it seems likely it's a local issue since it works on the playground for you). Is your project available on GitHub? If so I could clone and take a look.

no it is not in github
we can connect on google-meet if u don't mind?

The yellow box message appearing is indicative that it is trying to play an audio, but I can't really tell why you're not getting the sound (it seems likely it's a local issue since it works on the playground for you). Is your project available on GitHub? If so I could clone and take a look.

no it is not in github we can connect on google-meet if u don't mind?

We can use discord if you're already in the server

@tjtanjin Thank you now it is working


Jordanjones243/accent icon bugs

Alaska Airlines Pull Request
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes: #201
Summary:
Please summarize the scope of the changes you have submitted, what the intent of the work is and anything that describes the before/after state of the project.
Type of change:
Please delete options that are not relevant.

[ ] New capability
[ ] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[ ] Other (please elaborate)

Checklist:

[ ] My update follows the CONTRIBUTING guidelines of this project
[ ] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

This PR was put on hold after a discussion of a potential refactor of auro-input. This will now be closed as this PR was to originally address an issue with the positioning of the accent icon, which has now been addressed in this PR:

https://github.com/AlaskaAirlines/auro-input/pull/231


How to remap filenames while keeping the grouping by folder?

Search terms
custom module name, hierarchy, nested modules, submodules
Question
How can I change the name that a module is displayed as while still having it grouped together with other modules in the same directory.
Let's say I have utils/dom-utils.ts and utils/text-utils.ts and I want them to show as Utils/DOMUtils and Utils/TextUtils
I tried adding
/**
 * @module Utils/DOMUtils
 */

to dom-utils.ts and a similar entry to the other one and they indeed show as <X>Utils nested under Utils, except there's now a separate duplicate group of Utils (the directory) for each module:

The first Utils links to Utils.html and the second links to Utils-1.html.
If I omit the Utils/ prefix then they both show up in the top level, not under "Utils".
How can I group them or leave the grouping by folder structure but remap names?

Oops, my bad! I was trying a few things and the result I posted below (of having duplicate "Utils" entries) was when I only had @module Utils in both modules, i.e. I was setting both to have the same name. When I use @module Utils/X and @module Utils/Y they are indeed correctly grouped together.


Not supporting MULTIPLE HUBs

when we are connecting to multiple hubs it is only remembering the recent object initialised .
Instead of invoking method of first hub it is checking for the same method on recent hub.

Have you tried the pre-release version?

Have you tried the pre-release version?

This issue addressed in latest pre-release version.

This issue addressed in latest pre-release version.

hub1 and hub2 are created and the method of hub1 invoked then this issue occurs....
" method could not be resolved. No method found with that name"
if the same hubs are swapped hub2 created first and hub1 after it then the same method works fine
because dependency remembers latest initialized hub only  for invoke

hub1 and hub2 are created and the method of hub1 invoked then this issue occurs....
" method could not be resolved. No method found with that name"
if the same hubs are swapped hub2 created first and hub1 after it then the same method works fine
because dependency remembers latest initialized hub only  for invoke

Ok, I misunderstood your issue previously, Sorry for that.
Currently you can connect to only one Hub. Multiple Hubs not supported yet.
I'll try to solve this issue in the next stable update after 0.1.0.

Ok, I misunderstood your issue previously, Sorry for that.
Currently you can connect to only one Hub. Multiple Hubs not supported yet.
I'll try to solve this issue in the next stable update after 0.1.0.


Update CF on K8s Charter

Request from @emalm to add new korifi repos to the CF-K8s working group charter.
Should be merged after this PR to rename the cf-k8s-secrets repo.

Closed https://github.com/cloudfoundry/community/pull/257 and switched back to cf-k8s-secrets this PR can be merged whenever!

@emalm re-alphabetized and ready to merge!

Merging, as we have a TOC quorum on the content changes with enough time elapsed.


feat: upload released binaries to server

This will upload the binaries directly to our testvm. A script on the test vm will check for the existance of the file and deploy it if necessary

It's a non-invasive change on the repo, so I'm just going ahead and merge this.


PR: Do not eval quoted application path if spaces are found

Description of Changes

Issue(s) Resolved

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

I certify the above statement is true and correct: @goanpeca

@CAM-Gerlach I think this should fix the issue you saw.
Could you test?

@goanpeca Sure, in work now.

@goanpeca No, sorry, exact same error as before, and I confirmed the Spyder instance I was running was from commit bac3280 , the tip of this PR branch. I assume you'll also add a test for this to ensure it works as expected across platforms in the future and this doesn't happen again?
Also, not sure how it could be related to such a simple change, but every time I switched to this PR  (and only this PR, not #10333 I tested earlier today) and started up Spyder, it shows the Kite first-run advertisement again, and re-enables "Enable Kite" (which was enabled by default for some reason even though I've never have Kite installed and have no intention of ever using it) and the Kite advertisement on completions, the latter two of which persists when I closed and restarted it with rc1, and all three would consistently re-occur every time I switched to this PR. None of my other settings appear to be touched.

@CAM-Gerlach could you check again?

@goanpeca Sure, in work.

@goanpeca Nope, sorry, still exact same error when running commit 710552c41. Let me know if there's something further I can do to help track this down.

@goanpeca My mistake, the line content was identical but this most recent error, the line number of programs.py was different in this traceback. Your two changes fixing the path separator and checking for quotes only at the start and end of literals need to be applied there too. When I did that, it worked and I was able to add an application, though when I actually tried to open a file in the Files pane by double clicking I got what I presume is an unrelated error due to adding the cwd to a path that was already absolute:

Applied where?

Sorry, I wanted to test it for you before I ran to the store just before it closed, and ended up forgetting to include the line number. Later in the same function, line 403-404, where literal_eval is used again.

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

In the file spyder/utils/programs.py:

Line 407:80: E501 line too long (86 > 79 characters)

@CAM-Gerlach added some prints, please send all that gets printed with this change so I can write a test for this. Thanks!

You still need to do the backslash replacement both places, or if any path componet starts with x, Python thinks its a Unicode escape in the literal eval and raises a SyntaxError (full traceback below); thus, my local patch worked but the PR as currently is implemented does not. Thanks.
Just curous, but was there a reason you wrapped all the prints in lists? Something to do with preserving quotes or something? I couldn't see an obvious rationale but I assume there's just something I'm missing here.
['"c:\\program files\\xnviewmp\\associate files with xnviewmp.exe"']
Traceback (most recent call last):
  File "C:\Users\C. A. M. Gerlach\Documents\dev\SpyderDev\spyder\spyder\plugins\explorer\widgets\fileassociations.py", line 496, in add_application
    self._dlg_applications = ApplicationsDialog(self)
  File "C:\Users\C. A. M. Gerlach\Documents\dev\SpyderDev\spyder\spyder\plugins\explorer\widgets\fileassociations.py", line 145, in __init__
    self.setup()
  File "C:\Users\C. A. M. Gerlach\Documents\dev\SpyderDev\spyder\spyder\plugins\explorer\widgets\fileassociations.py", line 152, in setup
    apps = get_installed_applications()
  File "C:\Users\C. A. M. Gerlach\Documents\dev\SpyderDev\spyder\spyder\utils\programs.py", line 503, in get_installed_applications
    apps = _get_win_applications()
  File "C:\Users\C. A. M. Gerlach\Documents\dev\SpyderDev\spyder\spyder\utils\programs.py", line 365, in _get_win_applications
    expanded_fpath = literal_eval(expanded_fpath)
  File "C:\Miniconda3\envs\spyder-4\lib\ast.py", line 46, in literal_eval
    node_or_string = parse(node_or_string, mode='eval')
  File "C:\Miniconda3\envs\spyder-4\lib\ast.py", line 35, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 16-17: truncated \xXX escape

Not sure if you wanted the full dump or just one set of such, but I ddi the latter:

['c:\\program files\\7-zip\\7zfm.exe']
['c:\\program files\\7-zip\\7zfm.exe']
['c:\\program files\\7-zip\\7zfm.exe']
['c:\\program files\\7-zip\\7zfm.exe']
['c:\\program files (x86)\\autohotkey\\au3_spy.exe']
['c:\\program files (x86)\\autohotkey\\au3_spy.exe']
['c:\\program files (x86)\\autohotkey\\au3_spy.exe']
['c:\\program files (x86)\\autohotkey\\au3_spy.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrodist.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrodist.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrodist.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrodist.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrobat.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrobat.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrobat.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrobat.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrobatinfo.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrobatinfo.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrobatinfo.exe']
['c:\\program files (x86)\\adobe\\acrobat 11.0\\acrobat\\acrobatinfo.exe']
['"c:\\program files (x86)\\adobe\\adobe audition cs6\\adobe audition cs6.exe"']
['c:\\program files (x86)\x07dobe\x07dobe audition cs6\x07dobe audition cs6.exe']
['"c:\\program files (x86)\\adobe\\adobe audition cs6\\adobe audition cs6.exe"']
['c:\\program files (x86)\x07dobe\x07dobe audition cs6\x07dobe audition cs6.exe']
['"c:\\program files\\adobe\\adobe encore cs6\\adobe encore.exe"']
['c:\\program files\x07dobe\x07dobe encore cs6\x07dobe encore.exe']
['"c:\\program files\\adobe\\adobe encore cs6\\adobe encore.exe"']
['c:\\program files\x07dobe\x07dobe encore cs6\x07dobe encore.exe']
['"c:\\program files (x86)\\adobe\\adobe prelude cs6\\adobe prelude.exe"']
['c:\\program files (x86)\x07dobe\x07dobe prelude cs6\x07dobe prelude.exe']
['"c:\\program files (x86)\\adobe\\adobe prelude cs6\\adobe prelude.exe"']
['c:\\program files (x86)\x07dobe\x07dobe prelude cs6\x07dobe prelude.exe']
['"c:\\program files\\adobe\\adobe premiere pro cs6\\adobe premiere pro.exe"']
['c:\\program files\x07dobe\x07dobe premiere pro cs6\x07dobe premiere pro.exe']
['"c:\\program files\\adobe\\adobe premiere pro cs6\\adobe premiere pro.exe"']
['c:\\program files\x07dobe\x07dobe premiere pro cs6\x07dobe premiere pro.exe']
['c:\\program files\\adobe\\adobe after effects cs6\\support files\\afterfx.exe']
['c:\\program files\\adobe\\adobe after effects cs6\\support files\\afterfx.exe']
['c:\\program files\\adobe\\adobe after effects cs6\\support files\\afterfx.exe']
['c:\\program files\\adobe\\adobe after effects cs6\\support files\\afterfx.exe']
['c:\\program files (x86)\\autohotkey\\compiler\\ahk2exe.exe']
['c:\\program files (x86)\\autohotkey\\compiler\\ahk2exe.exe']
['c:\\program files (x86)\\autohotkey\\compiler\\ahk2exe.exe']
['c:\\program files (x86)\\autohotkey\\compiler\\ahk2exe.exe']
['c:\\program files (x86)\\autohotkey\\autohotkey.exe']
['c:\\program files (x86)\\autohotkey\\autohotkey.exe']
['c:\\program files (x86)\\autohotkey\\autohotkey.exe']
['c:\\program files (x86)\\autohotkey\\autohotkey.exe']
['c:\\program files (x86)\\autohotkey\\autoscriptwriter\\autoscriptwriter.exe']
['c:\\program files (x86)\\autohotkey\\autoscriptwriter\\autoscriptwriter.exe']
['c:\\program files (x86)\\autohotkey\\autoscriptwriter\\autoscriptwriter.exe']
['c:\\program files (x86)\\autohotkey\\autoscriptwriter\\autoscriptwriter.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\backlight.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\backlight.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\backlight.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\backlight.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\bright.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\bright.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\bright.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\bright.exe']
['c:\\program files (x86)\\bufkit\\bufkit.exe']
['c:\\program files (x86)\\bufkit\\bufkit.exe']
['c:\\program files (x86)\\bufkit\\bufkit.exe']
['c:\\program files (x86)\\bufkit\\bufkit.exe']
['c:\\program files\\common files\\logishrd\\unifying\\djcuhost.exe']
['c:\\program files\\common files\\logishrd\\unifying\\djcuhost.exe']
['c:\\program files\\common files\\logishrd\\unifying\\djcuhost.exe']
['c:\\program files\\common files\\logishrd\\unifying\\djcuhost.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\dimmer.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\dimmer.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\dimmer.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\dimmer.exe']
['c:\\program files (x86)\\canon\\eos utility\\eos utility.exe']
['c:\\program files (x86)\\canon\\eos utility\\eos utility.exe']
['c:\\program files (x86)\\canon\\eos utility\\eos utility.exe']
['c:\\program files (x86)\\canon\\eos utility\\eos utility.exe']
['c:\\program files\\eraser\\eraser.exe']
['c:\\program files\\eraser\\eraser.exe']
['c:\\program files\\eraser\\eraser.exe']
['c:\\program files\\eraser\\eraser.exe']
['c:\\program files\\handbrake\\handbrake.exe']
['c:\\program files\\handbrake\\handbrake.exe']
['c:\\program files\\handbrake\\handbrake.exe']
['c:\\program files\\handbrake\\handbrake.exe']
['c:\\program files\\internet explorer\\iediagcmd.exe']
['c:\\program files\\internet explorer\\iediagcmd.exe']
['c:\\program files\\internet explorer\\iediagcmd.exe']
['c:\\program files\\internet explorer\\iediagcmd.exe']
['c:\\program files\\internet explorer\\iediagcmd.exe']
['c:\\program files\\internet explorer\\iediagcmd.exe']
['c:\\program files\\internet explorer\\iediagcmd.exe']
['c:\\program files\\internet explorer\\iediagcmd.exe']
['c:\\program files\\internet explorer\\iexplore.exe']
['c:\\program files\\internet explorer\\iexplore.exe']
['c:\\program files\\internet explorer\\iexplore.exe']
['c:\\program files\\internet explorer\\iexplore.exe']
['c:\\program files\\logitech\\setpointp\\lbtwiz.exe']
['c:\\program files\\logitech\\setpointp\\lbtwiz.exe']
['c:\\program files\\logitech\\setpointp\\lbtwiz.exe']
['c:\\program files\\logitech\\setpointp\\lbtwiz.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\notifybuttonevent.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\notifybuttonevent.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\notifybuttonevent.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\notifybuttonevent.exe']
['pcdiag.exe']
['pcdiag.exe']
['pcdiag.exe']
['pcdiag.exe']
['c:\\program files\\adobe\\adobe photoshop cs6 (64 bit)\\photoshop.exe']
['c:\\program files\\adobe\\adobe photoshop cs6 (64 bit)\\photoshop.exe']
['c:\\program files\\adobe\\adobe photoshop cs6 (64 bit)\\photoshop.exe']
['c:\\program files\\adobe\\adobe photoshop cs6 (64 bit)\\photoshop.exe']
['c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe']
['c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe']
['c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe']
['c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\presentation.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\presentation.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\presentation.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\presentation.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\progbtn.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\progbtn.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\progbtn.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\progbtn.exe']
['c:\\windows\\system32\\snippingtool.exe']
['c:\\windows\\system32\\snippingtool.exe']
['c:\\windows\\system32\\snippingtool.exe']
['c:\\windows\\system32\\snippingtool.exe']
['"c:\\program files\\adobe\\adobe speedgrade cs6\\bin\\speedgrade.exe"']
['c:\\program files\x07dobe\x07dobe speedgrade cs6\x08in\\speedgrade.exe']
['"c:\\program files\\adobe\\adobe speedgrade cs6\\bin\\speedgrade.exe"']
['c:\\program files\x07dobe\x07dobe speedgrade cs6\x08in\\speedgrade.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbrowser.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbrowser.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbrowser.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbrowser.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbtncfg.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbtncfg.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbtncfg.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbtncfg.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsdispatcher.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsdispatcher.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsdispatcher.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsdispatcher.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsmain.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsmain.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsmain.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsmain.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsmediacontrol.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsmediacontrol.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsmediacontrol.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsmediacontrol.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbssoundmute.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbssoundmute.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbssoundmute.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbssoundmute.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbswireless.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbswireless.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbswireless.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbswireless.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbtnst.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbtnst.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbtnst.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\tbsbtnst.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\thatassist.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\thatassist.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\thatassist.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\thatassist.exe']
['c:\\program files\\common files\\microsoft shared\\ink\\tabtip.exe']
['c:\\program files\\common files\\microsoft shared\\ink\\tabtip.exe']
['c:\\program files\\common files\\microsoft shared\\ink\\tabtip.exe']
['c:\\program files\\common files\\microsoft shared\\ink\\tabtip.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\touchpaded.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\touchpaded.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\touchpaded.exe']
['c:\\program files\\toshiba\\hotkey\\buttonsupport\\touchpaded.exe']
['"c:\\program files\\windows nt\\accessories\\wordpad.exe"']
['c:\\program files\\windows nt\x07ccessories\\wordpad.exe']
['"c:\\program files\\windows nt\\accessories\\wordpad.exe"']
['c:\\program files\\windows nt\x07ccessories\\wordpad.exe']
['"c:\\program files\\windows nt\\accessories\\wordpad.exe"']
['c:\\program files\\windows nt\x07ccessories\\wordpad.exe']
['"c:\\program files\\windows nt\\accessories\\wordpad.exe"']
['c:\\program files\\windows nt\x07ccessories\\wordpad.exe']
['c:\\progra~2\\micros~1\\office15\\winword.exe']
['c:\\progra~2\\micros~1\\office15\\winword.exe']
['c:\\progra~2\\micros~1\\office15\\winword.exe']
['c:\\progra~2\\micros~1\\office15\\winword.exe']
['c:\\program files (x86)\\adobe\\adobe bridge cs6\\bridge.exe']
['c:\\program files (x86)\\adobe\\adobe bridge cs6\\bridge.exe']
['c:\\program files (x86)\\adobe\\adobe bridge cs6\\bridge.exe']
['c:\\program files (x86)\\adobe\\adobe bridge cs6\\bridge.exe']
['c:\\program files\\ccleaner\\ccleaner64.exe']
['c:\\program files\\ccleaner\\ccleaner64.exe']
['c:\\program files\\ccleaner\\ccleaner64.exe']
['c:\\program files\\ccleaner\\ccleaner64.exe']
['c:\\program files (x86)\\google\\chrome\\application\\chrome.exe']
['c:\\program files (x86)\\google\\chrome\\application\\chrome.exe']
['c:\\program files (x86)\\google\\chrome\\application\\chrome.exe']
['c:\\program files (x86)\\google\\chrome\\application\\chrome.exe']
['c:\\progra~2\\micros~1\\office15\\excel.exe']
['c:\\progra~2\\micros~1\\office15\\excel.exe']
['c:\\progra~2\\micros~1\\office15\\excel.exe']
['c:\\progra~2\\micros~1\\office15\\excel.exe']
['c:\\program files\\inkscape\\inkscape.exe']
['c:\\program files\\inkscape\\inkscape.exe']
["c:\\program files (x86)\\malwarebytes' anti-malware\\mbam.exe"]
["c:\\program files (x86)\\malwarebytes' anti-malware\\mbam.exe"]
["c:\\program files (x86)\\malwarebytes' anti-malware\\mbam.exe"]
["c:\\program files (x86)\\malwarebytes' anti-malware\\mbam.exe"]
['c:\\program files\\common files\\microsoft shared\\ink\\mip.exe']
['c:\\program files\\common files\\microsoft shared\\ink\\mip.exe']
['c:\\program files\\common files\\microsoft shared\\ink\\mip.exe']
['c:\\program files\\common files\\microsoft shared\\ink\\mip.exe']
['c:\\program files (x86)\\windows media player\\wmplayer.exe']
['c:\\program files (x86)\\windows media player\\wmplayer.exe']
['c:\\program files (x86)\\windows media player\\wmplayer.exe']
['c:\\program files (x86)\\windows media player\\wmplayer.exe']
['c:\\program files (x86)\\common files\\microsoft shared\\office15\\msoxmled.exe']
['c:\\program files (x86)\\common files\\microsoft shared\\office15\\msoxmled.exe']
['c:\\program files (x86)\\common files\\microsoft shared\\office15\\msoxmled.exe']
['c:\\program files (x86)\\common files\\microsoft shared\\office15\\msoxmled.exe']
['c:\\program files (x86)\\notepad++\\notepad++.exe']
['c:\\program files (x86)\\notepad++\\notepad++.exe']
['c:\\program files (x86)\\notepad++\\notepad++.exe']
['c:\\program files (x86)\\notepad++\\notepad++.exe']
['c:\\windows\\system32\\mspaint.exe']
['c:\\windows\\system32\\mspaint.exe']
['c:\\windows\\system32\\mspaint.exe']
['c:\\windows\\system32\\mspaint.exe']
['c:\\progra~2\\micros~1\\office15\\powerpnt.exe']
['c:\\progra~2\\micros~1\\office15\\powerpnt.exe']
['c:\\progra~2\\micros~1\\office15\\powerpnt.exe']
['c:\\progra~2\\micros~1\\office15\\powerpnt.exe']
['c:\\program files\\rstudio\\bin\\rstudio.exe']
['c:\\program files\\rstudio\\bin\\rstudio.exe']
['c:\\program files\\rstudio\\bin\\rstudio.exe']
['c:\\program files\\rstudio\\bin\\rstudio.exe']
['c:\\program files\\libreoffice\\program\\sbase.exe']
['c:\\program files\\libreoffice\\program\\sbase.exe']
['c:\\program files\\libreoffice\\program\\sbase.exe']
['c:\\program files\\libreoffice\\program\\sbase.exe']
['c:\\program files\\libreoffice\\program\\scalc.exe']
['c:\\program files\\libreoffice\\program\\scalc.exe']
['c:\\program files\\libreoffice\\program\\scalc.exe']
['c:\\program files\\libreoffice\\program\\scalc.exe']
['c:\\program files\\libreoffice\\program\\sdraw.exe']
['c:\\program files\\libreoffice\\program\\sdraw.exe']
['c:\\program files\\libreoffice\\program\\sdraw.exe']
['c:\\program files\\libreoffice\\program\\sdraw.exe']
['c:\\program files\\libreoffice\\program\\simpress.exe']
['c:\\program files\\libreoffice\\program\\simpress.exe']
['c:\\program files\\libreoffice\\program\\simpress.exe']
['c:\\program files\\libreoffice\\program\\simpress.exe']
['c:\\program files\\libreoffice\\program\\smath.exe']
['c:\\program files\\libreoffice\\program\\smath.exe']
['c:\\program files\\libreoffice\\program\\smath.exe']
['c:\\program files\\libreoffice\\program\\smath.exe']
['c:\\program files\\libreoffice\\program\\soffice.exe']
['c:\\program files\\libreoffice\\program\\soffice.exe']
['c:\\program files\\libreoffice\\program\\soffice.exe']
['c:\\program files\\libreoffice\\program\\soffice.exe']
['c:\\program files\\libreoffice\\program\\swriter.exe']
['c:\\program files\\libreoffice\\program\\swriter.exe']
['c:\\program files\\libreoffice\\program\\swriter.exe']
['c:\\program files\\libreoffice\\program\\swriter.exe']
['c:\\program files\\libreoffice\\program\\unopkg.exe']
['c:\\program files\\libreoffice\\program\\unopkg.exe']
['c:\\program files\\libreoffice\\program\\unopkg.exe']
['c:\\program files\\libreoffice\\program\\unopkg.exe']
['c:\\program files\\videolan\\vlc\\vlc.exe']
['c:\\program files\\videolan\\vlc\\vlc.exe']
['c:\\program files\\videolan\\vlc\\vlc.exe']
['c:\\program files\\videolan\\vlc\\vlc.exe']
['c:\\program files\\windows mail\\wab.exe']
['c:\\program files\\windows mail\\wab.exe']
['c:\\program files\\windows mail\\wab.exe']
['c:\\program files\\windows mail\\wab.exe']
['c:\\program files\\windows mail\\wabmig.exe']
['c:\\program files\\windows mail\\wabmig.exe']
['c:\\program files\\windows mail\\wabmig.exe']
['c:\\program files\\windows mail\\wabmig.exe']
['c:\\program files (x86)\\windows media player\\wmplayer.exe']
['c:\\program files (x86)\\windows media player\\wmplayer.exe']
['c:\\program files (x86)\\windows media player\\wmplayer.exe']
['c:\\program files (x86)\\windows media player\\wmplayer.exe']
<error occurs; see below>

Thanks for the info @CAM-Gerlach! Added your suggestions.
Does it work now then?

@goanpeca Yup, adding applications works. Actually opening files in an associated external applications with files is still broken at least on Windows because of the bug I mentioned above; using any applications from the Open With menu also results in the bug, while using the OS default application does not even if its the same as the Spyder-associated application (to note, the popup dialog is specific to the application used; the error appears to be with prefixing the CWD, in this case my home folder, to a file path that is already absolute, only in the codepath taken for opening a file in an preferred external application but not the one taken for opening with the OS default program).
 It seems it should be a priority to fix before the final release since this feature was the premiere one advertised in the most recent blog post on Spyder 4 features on Quansight and the Spyder site, and Windows is Spyder's biggest platform (assuming it is even a Windows-specific bug). It would be a really bad look for all the hard work the team has put in to have it completely broken.

Should I open a separate bug for the other issue, or do you already have enough info to know where to look to fix it?

I will look into solving it on this PR so no need to open a new issue. Thanks for the help testing!

Actually opening files in an associated external applications with files is still broken at least on Windows because of the bug I mentioned above; using any application from the Open With menu also results in the bug, while using the OS default application does not even if its the same as the Snyder-associated application (to note, the popup dialog is specific to the application used but any applicaiton I tried gave me an error of some sort; the error appears to be with prefixing the CWD, in this case my home folder, to a file path that is already absolute, only in the codepath taken for opening a file in an preferred external application but not the one taken for opening with the OS default program).

I cannot reproduce this. If I add file associations for some txt file, the files open as expected.

@ccordoba12 this is ready to merge

I cannot reproduce this. If I add file associations for some txt file, the files open as expected.

That's exactly what I did, and it occurs every time. I've tried multiple different extensions, being in a project or not, different CWDs, different files, different directories, different extensions and different programs, removing and re-adding programs and extensions, and the latest 4.0 rc2 build as well as this PR and it happens reproducibly every time I try to open any file in an external program. I'm testing on Windows 8.1 x64; I can test this on my Win 10 machine with a clean rc2 install + this PR and clean prefs when I get home in a few hours. What version of Windows, Python, etc. are you testing on?

What version of Windows, Python, etc. are you testing on?

@CAM-Gerlach Win10x64, python 3.6, 3.7

Thanks @goanpeca , same Python versions for me. I'll test on my clean Windows 10 x64 box when I get home, and open another issue with the results, since as I've mentioned this issue doesn't appear as if its directly related to the original I reported.


Criterion fails to build with GHC 6.12.3

Please see below for the error log on cabal install of criterion <IP_ADDRESS>. The error doesn't happen with GHC 7.0.4. It will be very helpful to have criterion build on 6.12.3 as well because I am trying to pin-point the performance regression between 6.12.3 and 7.0.4 for my code. I am using RHEL 5 x86_64.
Error:
Configuring criterion-<IP_ADDRESS>...
Preprocessing library criterion-<IP_ADDRESS>...
Building criterion-<IP_ADDRESS>...
[ 1 of 12] Compiling Paths_criterion  ( dist/build/autogen/Paths_criterion.hs, dist/build/Paths_criterion.o )
[ 2 of 12] Compiling Criterion.Analysis.Types ( Criterion/Analysis/Types.hs, dist/build/Criterion/Analysis/Types.o )
[ 3 of 12] Compiling Criterion.Types  ( Criterion/Types.hs, dist/build/Criterion/Types.o )
[ 4 of 12] Compiling Criterion.Measurement ( Criterion/Measurement.hs, dist/build/Criterion/Measurement.o )
[ 5 of 12] Compiling Criterion.Config ( Criterion/Config.hs, dist/build/Criterion/Config.o )
[ 6 of 12] Compiling Criterion.Monad  ( Criterion/Monad.hs, dist/build/Criterion/Monad.o )
[ 7 of 12] Compiling Criterion.IO     ( Criterion/IO.hs, dist/build/Criterion/IO.o )
[ 8 of 12] Compiling Criterion.Analysis ( Criterion/Analysis.hs, dist/build/Criterion/Analysis.o )
[ 9 of 12] Compiling Criterion.Environment ( Criterion/Environment.hs, dist/build/Criterion/Environment.o )
[10 of 12] Compiling Criterion.Report ( Criterion/Report.hs, dist/build/Criterion/Report.o )
Criterion/Report.hs:73:24:
No instance for (MonadIO Criterion)
arising from a use of liftIO' at Criterion/Report.hs:73:24-29     Possible fix: add an instance declaration for (MonadIO Criterion)     In the first argument of ($)', namely `liftIO'
In the expression:
liftIO
$ do { tpl <- loadTemplate
[".", templateDir] (fromLJ cfgTemplate cfg);
L.writeFile name =<< formatReport reports tpl }
In a case alternative:
Last (Just name)
-> liftIO
$ do { tpl <- loadTemplate [".", ....] (fromLJ cfgTemplate cfg);
L.writeFile name =<< formatReport reports tpl }
cabal: Error: some packages failed to install:
criterion-<IP_ADDRESS> failed during the building phase. The exception was:
ExitFailure 1

The error was due to older mtl library (v1). Doing cabal update to  mtl-<IP_ADDRESS> fixed the issue. So, may be add a dependency in the cabal listing on mtl, to avoid this issue. There is no explicit version numbering for mtl in build-depends target.

Thanks for the report!


Support / document Windows usage

Some plugins may not work (dependency issues), and if anything is broken in the core, we want to fix it.

I can get to work on it soon if you still need a good run on a windows machine to make sure it all works.

@TheCryptek If you'd like to give it a try on Windows and report back any issues, that'd be awesome! 👍

@JohnMaguire Alright just give me a list of commands supported by the bot :P

You can run ".help" to get a list of commands. :)
On Mon, Dec 19, 2016 at 3:38 PM Brandon Conley<EMAIL_ADDRESS>wrote:

@JohnMaguire https://github.com/JohnMaguire Alright just give me a list
of commands supported by the bot :P
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JohnMaguire/Cardinal/issues/113#issuecomment-268071714,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAa24ep_EOXwu447YX4-XYFgJLl4wlq9ks5rJus5gaJpZM4H0fi8
.

@JohnMaguire Thanks I thought it was @help xD

@JohnMaguire After messing with the bot on a windows machine it all seems to working just fine, except for .quit and .dbg_quit the bot doesn't quit for some reason in the terminal it just says
2016-12-20 09:59:46,948 - cardinal.bot - DEBUG -<EMAIL_ADDRESS>to #Cardinal: .quit
2016-12-20 09:59:46,950 - cardinal.plugins - DEBUG - Attempting to fire event: irc.privmsg
2016-12-20 09:59:46,951 - cardinal.plugins - DEBUG - Calling 0 callbacks for event: irc.privmsg

Today I will be bringing it up on a live IRC Network instead of my private local LAN IRC Network and run some tests with authenticating with nickserv.

Same issues with .load .unload and .part

Also after using .youtube Lynyrd Skynyrd the bot just freezes and doesn't reply to anything including .help

For the admin commands (.quit, .dbg_quit, .load, .unload, .part, and .join) you will need to add your vhost into the plugins/admin/config.json file.
Thanks for the YouTube report -- I'll try to check that out soon. 👍

I did add my vhost to plugins/admin/config.json as TheCryptek@*

It doesn't understand *. It uses a vhost/hostmask for auth with the idea
that if you identify against nickserv, a hostserv will cloak your hostname.
I like the idea of adding support for a wildcharacter though, thanks!
On Tue, Dec 20, 2016 at 10:06 PM Brandon Conley<EMAIL_ADDRESS>wrote:

I did add my vhost to plugins/admin/config.json as TheCryptek@*
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JohnMaguire/Cardinal/issues/113#issuecomment-268422866,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAa24fI72I404oyU6dN7hb7uYqDWYr7Tks5rKJe1gaJpZM4H0fi8
.

Your welcome, after fixing my vhost I have .quit and stuff working with .youtube I'm running another test with it. Only other issue I have is Cardinal and my other bot fighting but its an alias issue :P

Okay, turns out the youtube issue was just a little lag from my network, so all seems to be running good on windows thus far.

With the development of plugins do I have to make the .pyc files?

Thanks for testing it out! You didn't experience any issues on your local IRC server?
.pyc files are automatically generated by Python when you run Python code. You don't have to manually create them.

No issues at all, but still testing it trying to break it to see what may or may not need fixed


[BD-46] fix: fixed changelog genereation

Description

fixed changelog generation.

Issue
Deploy Preview
Paragon changelog
Merge Checklist

[ ] If your update includes visual changes, have they been reviewed by a designer? Send them a link to the Netlify deploy preview, if applicable.
[ ] Does your change adhere to the documented style conventions?
[ ] Do any prop types have missing descriptions in the Props API tables in the documentation site (check deploy preview)?
[ ] Were your changes tested using all available themes (see theme switcher in the header of the deploy preview, under the "Settings" icon)?
[ ] Were your changes tested in the example app?
[ ] Is there adequate test coverage for your changes?
[ ] Consider whether this change needs to reviewed/QA'ed for accessibility (a11y). If so, please add wittjeff and adamstankiewicz as reviewers on this PR.

Post-merge Checklist

[ ] Verify your changes were released to NPM at the expected version.
[ ] If you'd like, share your contribution in #show-and-tell.
[ ] 🎉 🙌 Celebrate! Thanks for your contribution.

Thanks for the pull request, @PKulkoRaccoonGang!
When this pull request is ready, tag your edX technical lead.

I don't think this fully fixes the issue, because the changelog will become stale very quickly again. Previously we used @semantic-release/changelog plugin to automatically populate changelog file with new releases data, but we turned it off due to CLA issue, see https://github.com/openedx/paragon/issues/1768. We should fix that as well as a part of this PR.
@adamstankiewicz I believe we can avoid CLA issues by changing git author in semantic-release configuration to someone who has necessary rights to the repo, can you maybe try that?


Integrate Volar

Currently the build is failing, because pretty much every package related to VSCode has incorrect package exports.

Volar handles the mapping between TypeScript and LSP.
Volar handles the mapping between TypeScript and Monaco editor.
Volar manages virtual files.
Volar imports TypeScript directly. As a result, the Monaco editor integration now requires path to be polyfilled.
It is no longer possible to pass compiler options in the Monaco editor integration.
This adds editor features for YAML based on yaml-language-server. This has a problematic indirect dependency vscode-json-languageservice.
Markdown features are now handled by vscode-markdown-languageservice. This will be contributed upstream to Volar soon.
Markdown definitions are broken due to a bug in Volar.
This adds remark-frontmatter with TOML and YAML support as well as remark-gfm by default unless specified otherwise in tsconfig.json.
The language server now requires typescript.tsdk to be passed via initialization options.
This adds support for debugging virtual documents using Volar labs.

Closes #168
Closes #284
Closes #295
Closes #298
Closes #301
Closes #341

I’m inclined to make some structural changes.

@mdx-js/language-service

Expose getLanguageModule — This is what processes MDX files into virtual files
Remove resolveConfig — This removes the dependency on volar-service-markdown, volar-service-typescript, and volar-service-yaml.
Maybe rename the package to @mdx-js/volar-language-module and deprecate the old name.

@mdx-js/monaco

Deprecate this in favour of building your own integration with @volar/monaco.

This gives the user more control to integrate other features.
This means we don’t have to deal with bundlers behaving different from Node.js

@mdx-js/language-server

Move the resolveConfig logic from @mdx-js/language-service here.

vscode-mdx

This won’t change.

Any thoughts on this @mdx-js/members @johnsoncodehk?

A small thing is that when users integrates @volar/monaco with the resolveConfig() of @mdx-js/language-server, unused @volar/language-server dependencies will be installed, so leaving the resolveConfig() alone in @mdx-js/language-service may be better. But I don't think it's very important.
The rest of it looks great!

The only thing that still needs to happen is verify our supported Node.js version matches Volar’s. Most of the unified ecosystem supports Node.js 16, which is already EOL. I recall Volar requires Node.js 18+, which means the language server would too.

Congratulation first!

but I want to wait for MDX 3 for the release.

Is there any news about MDX 3? I haven't noticed about it.

Is there any news about MDX 3? I haven't noticed about it.

MDX 3 is a new major upgrading unifies and remark with new parser fixes and improved node types. Version 3 is planned for release this week.
It could be as soon as tomorrow https://github.com/mdx-js/mdx/issues/2379#issuecomment-1774192601

Released in<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>:tada:


chore: remove unused linters

remove lint-staged (unused by scripts) and cz-conventional-changelog unused by us
@W-10957016@

QA notes:
used plugin-user/signups, first bumped from v2 -> v3 to, then referenced dev-scripts locally:
✅ does remove cz-conventional-changelog and lint-staged
✅ removes config.commitizen key if found (also added a few ones just to make sure only commitizen was removed)


Explain failed loads

On many screens, we show "Retrieving" on the background of the screen while we try to load and parse data. However, if we're unable to for whatever reason (the load fails, the data is incomplete, etc.), the user is stuck on the "Retrieving" screen indefinitely.
We need to trap these situations and change them to alert the user that we were unable to fulfill the request and to go back to the page they were coming from.
Similarly, we have the default image with the circle of dots that is replaced with loaded images afterwards. In some cases, that image is not replaced and the user is left wondering how long its going to take to load, when it's already done trying.

+1, or maybe +1000
When I very first used the roku release months ago, this was the thing that killed me.


soc: nordic: nrf54h: gpd: fix compile warning when CONFIG_DEBUG=y

Usage of K_SPINLOCK with CONFIG_DEBUG=y seems to trigger a compiler warning about request not always being initialized. Fallback to k_spin_lock/unlock calls to fix this issue.

Merging as hotfix


the docs web site menus disappear on HD screens

Bug type
Docs (mudblazor.com)
Component name
docs web site
What happened?
on HD screens, the components menu drawer hides and there's no way to pop it open.  feels like you are missing some breakpoints.  I know HD is considered smallish these days, but it's not mobile-small.
Expected behavior
on a computer screen with HD resolution, i should be able to navigate between components documentation.
Reproduction link
https://www.mudblazor.com/components/snackbar
Reproduction steps

navigate to https://www.mudblazor.com/components/snackbar
change screen resolution to HD
observe menu drawer disappears
...

Relevant log output
No response
Version (bug)
no version on web site
Version (working)
No response
What browsers are you seeing the problem on?
Chrome
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I also noticed it.  It's something to do with MudHidden.

@markdav-is Please confirm the fix please.  It is here
https://mudblazor-test.azurewebsites.net/


Deployment issue

Got to the Deployment Complete step on deploy.azure.com. Waited a "solid minute" which has turned into an hour, and I'm still getting a blank web page. Actually its a 500 response with no content:

HTTP/1.1 500 Internal Server Error
Content-Length: 0
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
Date: Wed, 20 Apr 2016 04:55:15 GMT

Deploying to a Basic-small instance. Any ideas as to why?

Did you use the Azure template from the old management portal to install ghost, or did you use the deploy to azure form GitHub?
I found the Azure template didn’t work – i’ve contacted azure support but they didn’t give a sh*t
The GitHub deployment works but does take a while to deploy, then you need to go to domainname/ghost
https://azuredeploy.net/
If you deployed from Github you should have a [Deployments] tab in the azure management portal if you don’t – delete ghost and install from Git Hub for Felix Rieseberg deployment
Also on the azure portal (old version) on the config tab
Scroll down to
Deployments section (should contain information)
App settings section (where you configure some variables such as URL & mail settings)
Also set:
Always On – ON
Web Sockets – ON
Platform – 64BIT
Managed Pipeline mode – INTEGRATED
PHP – 5.6
Otherwise the site goes to sleep and you need to restart it and wait 2 min for everything to kick in

I deployed from GitHub using the Deploy to Azure button. I tried from both the felixrieseberg repo and the AzureWebApps fork with no luck. I have a deployments tab in the management portal:

The other settings are as you mentioned. https://rushghostblog.azurewebsites.net/ is still coming up with a 500 error.
I'll try a fresh deploy this morning.

I got the same problem last weekend. Didn't have the time to investigate. I use the Ghost template from Azure Marketplace :( that one worked.

Hey everyone, quick update: We upgraded the Ghost repo here to Node v4, which seems to fix a sqlite issue that I'm sure some of you ran into. It should work fine for you now!

That must have fixed it. The deploy to Azure button is working now. Thanks @felixrieseberg

Thanks for testing! Im going to be super bold and close this is issue, but if there's something else going on, feel free to reopen or to open a new issue!


running the prod version failed

the docker-compose fails to run the python service with prod.yml
exited with this error:
python_1    | Update user 'user'
python_1    | usermod: user root is currently used by process 1
python_1    | usermod: group 'user' does not exist
python_1    | Running command 'gunicorn -w 4 tickets.wsgi -b <IP_ADDRESS>:8000'
python_1    | No passwd entry for user 'user'
django_upgrade_video_python_1 exited with code 1

I've just pushed a change to the master branch that should fix this issue.


'there can only be one only test' conflicts with 'before' test

I'm looking for a solution to a problem I'm having. Sometimes I need to isolate a test for a short period of time, but almost all my tests have setups like below. Commenting out all the other tests is really annoying, plus it stills runs the tests in my other files, so I need to comment all AND use a different glob pattern AND relaunch nodemon.
I'd be open to pretty much any solution, even if it involves modifying my tape node_modules since I only need this while i'm coding to improve productivity, it doesn't need to stay in the code permanently.
test('setup', async t => {
  await app.launch()
  await browser.open()
  t.end()
})

test('route: hello world', async t => {
  await browser.goTo(APP.URL)
  const pageContent = await browser.getPageContent()
  t.equal(pageContent, 'hello world')
  t.end()
})

Instead of using test as a hacked-together before, make a setup function, and call it inside each test that needs the setup. eg:
const setup = async () => {
  await app.launch();
  await browser.open();
});

test('route: hello world', async t => {
  await setup();
  await browser.goTo(APP.URL);
  const pageContent = await browser.getPageContent();
  t.equal(pageContent, 'hello world');
  t.end();
})

yes that would work but I don't like it for 2 reasons.

it's a before all setup, so calling it every time would be too slow, and checking if it was already called once doesn't seem right. What if some tests down the page need a re-setup? What if I need a slightly different set up. I'd rather avoid confusion created by that.

I'm trying to keep each individual test as small and clean as possible. I already extract setups and asserts relevant to specific tests inside reusable functions. I'd rather keep my before all setup before all tests, because then the code is self explanatory.

Considering that there's not an official "before" feature in tape, I'm not sure how to handle it.
Certainly, though, you could make the setup function memoized - so that it's safe to call it multiple times.

I've actually solved my problem using this
const test = require('tape')

const tests = []

const group = (description, test) => {
  tests.push({description, test})
  return group
}

group.run = (...args) => {
  if (args.length) {
    group(...args)
  }

  test.only('grouped tests', async t => {
    const endTest = t.end
    t.end = () => {}

    for (const _test of tests) {
      t.comment(_test.description)
      await _test.test(t)
    }

    endTest()
  })
}

test.group = group

then in your test file
const test = require('tape')
require('test/group')

test.group('some test', t => {})
test('some test', t => {})
test.group('some test', t => {})
test('some test', t => {})
test.group.run('some test', t => {})
test('some test', t => {})
test('some test', t => {})

It's not pretty but it's already saving me some time

I suppose you could do something gnarly like listen for the process exiting, and start the tests then.

I suppose you could do something gnarly like listen for the process exiting, and start the tests then.

Do you know how? I tried this but it doesn't register the test.only in group.run before the other tests already ran
const test = require('tape')

const tests = []
let ran

const group = (description, test) => {
  tests.push({description, test})
  return group
}

group.run = (...args) => {
  if (ran) {
    return
  }
  ran = true
  if (args.length) {
    group(...args)
  }

  test.only('grouped tests', async t => {
    const endTest = t.end
    t.end = () => {}

    for (const _test of tests) {
      t.comment(_test.description)
      await _test.test(t)
    }

    endTest()
  })
}
test.group = group

const run = () => {
  group.run()
}

process.on('beforeExit', run)

test('test one', t => {
  t.pass()
  t.end()
})

test.group('test two', t => {
  t.pass()
  t.end()
})

test('test three', t => {
  t.pass()
  t.end()
})

I'm not really sure as I haven't thought this through.
Personally, even in test frameworks that have a beforeAll feature, I never ever use it - i'd prefer to set up and destroy my database for every single test, no matter how slow that made the suite, rather than risk a single test falsely passing based on data pollution from a previous test.

I'm not really sure as I haven't thought this through.
Personally, even in test frameworks that have a beforeAll feature, I never ever use it - i'd prefer to set up and destroy my database for every single test, no matter how slow that made the suite, rather than risk a single test falsely passing based on data pollution from a previous test.

I do the same for databases because they open pretty quick and you need a clean slate. But right now I'm testing an express app and need to open the browser, which takes too long, and need to launch the express app, which even if it's quick, it's tons of useless code repetition. My tests are small and I have many of them. it would make 5-10% of the entire file useless code repetition.

I recommend using purple-tape. It provides a beforeAll (and also beforeEach/afterEach/afterAll) that seems to be what you're looking for.


Multiple consumers in consumer group breaks all consumers in group?

Describe the bug
I have a Nodejs app running in a Docker container that creates multiple consumers on startup. Each one of these consumers is for a a different topic with a single partition. All of these topics are added to the same group. When the second consumer is added to the group, I receive the logs below and neither consumer starts consuming messages. The log group in the example is 'log-sub-group' and the two topics are 'tracing.enterprise.connectionbus-update.v1' and 'tracing.enterprise.microflowengine.v1'.
{"level":"INFO","timestamp":"2023-08-04T21:58:33.820Z","logger":"kafkajs","message":"[Consumer] Starting","groupId":"log-sub-group"}
{"level":"ERROR","timestamp":"2023-08-04T21:58:38.836Z","logger":"kafkajs","message":"[Connection] Response Heartbeat(key: 12, version: 3)","broker":"kafka:9093","clientId":"log-subscriber-consumer","error":"The group is rebalancing, so a rejoin is needed","correlationId":9,"size":10}
{"level":"WARN","timestamp":"2023-08-04T21:58:38.837Z","logger":"kafkajs","message":"[Runner] The group is rebalancing, re-joining","groupId":"log-sub-group","memberId":"log-subscriber-consumer-f40e98b5-4519-4755-b89e-8b0d2976d9eb","error":"The group is rebalancing, so a rejoin is needed"}
{"level":"WARN","timestamp":"2023-08-04T21:58:38.841Z","logger":"kafkajs","message":"[ConsumerGroup] Consumer group received unsubscribed topics","groupId":"log-sub-group","generationId":6,"memberId":"log-subscriber-consumer-022c92b6-65dd-4b29-8ac5-22c10e71404a","assignedTopics":["tracing.enterprise.connectionbus-update.v1"],"topicsSubscribed":["tracing.enterprise.microflowengine.v1"],"topicsNotSubscribed":["tracing.enterprise.connectionbus-update.v1"],"helpUrl":"https://kafka.js.org/docs/faq#why-am-i-receiving-messages-for-topics-i-m-not-subscribed-to"}
{"level":"INFO","timestamp":"2023-08-04T21:58:38.842Z","logger":"kafkajs","message":"[ConsumerGroup] Consumer has joined the group","groupId":"log-sub-group","memberId":"log-subscriber-consumer-022c92b6-65dd-4b29-8ac5-22c10e71404a","leaderId":"log-subscriber-consumer-f40e98b5-4519-4755-b89e-8b0d2976d9eb","isLeader":false,"memberAssignment":{},"groupProtocol":"RoundRobinAssigner","duration":5022}
{"level":"INFO","timestamp":"2023-08-04T21:58:38.842Z","logger":"kafkajs","message":"[ConsumerGroup] Consumer has joined the group","groupId":"log-sub-group","memberId":"log-subscriber-consumer-f40e98b5-4519-4755-b89e-8b0d2976d9eb","leaderId":"log-subscriber-consumer-f40e98b5-4519-4755-b89e-8b0d2976d9eb","isLeader":true,"memberAssignment":{},"groupProtocol":"RoundRobinAssigner","duration":5}

To Reproduce
import { Kafka } from 'kafkajs';

const kafka = new Kafka(); // Real config here
let consumers = [{Topic: 'A', Group: 'my-group'}, {Topic: 'B', Group: 'my-group'}];
for (let consumer of consumers) {
   const consumer = kafka.consumer({ groupId: consumer.Group });
   await consumer.connect();
   await consumer.subscribe({ topics: [consumer.Topic] });
   await consumer.run({ eachMessage: () => console.log('Message received!') });
}

Expected behavior
The consumer should be able to run two consumers for two different topics in the same group.
Observed behavior
I receive the error in the description above when running the code.
Environment:

OS: [linux/amd64]
KafkaJS version [2.2.4]
Kafka version [e.g. 3.4.0]
NodeJS version [e.g. 18.16.0]

Additional context
I'm not sure if KafkaJs doesn't support this or if my implementation is incorrect. The docs here say that the warning "likely means that some members of your consumer group are subscribed to some topics, and some other members of the group are subscribed to a different set of topics" which makes me think I'm only supposed to be consuming for one topic on all consumers in a consumer group. But I haven't had to do this with the Java consumer implementations I've built.

Also running in to this.
About to rewrite all my stuff in Java and ditch this library.

This is normal while deploying a new version of an application where the new version subscribes to a new topic, and the warning will go away once the group stabilizes on a single version.

Yeah seems only the last subscribed topics remain i.e. makes sense when rolling new versions in.
Fixed by appending topic names into groupId. Don't think that's a huge workaround even if Kafka could work with having different topic subscribers on the same group.


should be "wallet_type" instead of "type"

Just came across this inconsistency: the docs specify the parameter name is "type" for create_new_wallet but it actually appears to be "wallet_type" - dunno if this a new breaking change?
https://dkackman.github.io/chia-api/static/wallet.html#api-WalletManagement-createNewWallet

Actually, the working request turned out to be totally different than this documentation - they must be updating stuff fast! Here is the correct request for create_new_wallet to create a new CAT wallet in your existing sync'd wallet via RPC (CATMOS asset_id for reference):
{
    "wallet_type": "cat_wallet",
    "mode": "existing",
    "asset_id": "ffbcf37f093d09410f17cdeb59fdaea24a544fdd5413e8eeca8fe68e917233e0"
}

Thanks for the report @joshpainter  - This looks like a bug in the static site generation. The swagger ui is showing the correct request parameters:
https://dkackman.github.io/chia-api/?urls.primaryName=Wallet#/Wallet Management/create_new_wallet
which are these:

              type: object
              required:
                - wallet_type
                - amount
              properties:
                wallet_type:
                  type: string
                  description: The type of wallet to create.
                  enum:
                    - cat_wallet
                    - rl_wallet
                    - did_wallet
                    - pool_wallet
                name:
                  type: string
                  description: User supplied name for the wallet. Will defualt if not provided.
                amount:
                  type: integer
                  format: uint64
                  description: The amount of mojo to deposit in the new wallet.
                fee:
                  type: integer
                  format: uint64
                  default: 0
                  description: The transaction fee amount in mojo.
              oneOf:
                - type: object
                  description: Details needed to create a cat_wallet.
                  properties:
                    mode:
                      type: string
                      enum:
                        - new
                        - existing
                    asset_id:
                      type: string
                - type: object
                  description: Details needed to create a rl_wallet.
                  required:
                    - rl_type
                  properties:
                    rl_type:
                      type: string
                      description: The type of RL Wallet to create.
                      enum:
                        - admin
                        - user
                    interval:
                      type: integer
                      format: uint64
                      description: Rate interval - needed for admin creation only.
                    limit:
                      type: integer
                      format: uint64
                      description: Rate linit - needed for admin creation only.
                    pubkey:
                      type: string
                      format: hex
                      description: Public key - needed for admin creation only.
                - type: object
                  description: Details needed to create a did_wallet.
                  required:
                    - did_type
                  properties:
                    did_type:
                      type: string
                      description: The type of DId wallet to create.
                      enum:
                        - new
                        - recovery
                  oneOf:
                    - type: object
                      description: Details needed for creating a new RId wallet.
                      properties:
                        backup_dids:
                          type: array
                          items:
                            type: string
                            format: hex
                        num_of_backup_ids_needed:
                          type: integer
                          format: uint64
                    - type: object
                      description: Details needed to create a recovery DId wallet.
                      properties:
                        filename:
                          type: string
                - type: object
                  description: Details needed to create a pool_wallet.
                  required:
                    - mode
                  properties:
                    mode:
                      type: string
                      description: The pooling mode.
                      enum:
                        - new
                        - recovery
                  oneOf:
                    - type: object
                      description: Details needed for creating a new pool wallet.
                      required:
                        - initial_target_state
                      properties:
                        initial_target_state:
                          $ref: "#/components/schemas/pool_state"
                        p2_singleton_delayed_ph:
                          type: string
                          format: hex
                        p2_singleton_delay_time:
                          type: integer
                          format: uint64
                    - $ref: "#/components/requestBodies/empty"

I suspect that the nested nature of this schema is confusing the html generation. I will take a look.

And yeah... this one is a weird one because the parameters needed for creation differ based on the value of wallet_type.

There was a bug in the yaml that was breaking the html. Fixed now. Please take a look.

Awesome thank you! FYI there is currently a bug with the "name" parameter for this method in the actual RPC code I just reported here: https://github.com/Chia-Network/chia-blockchain/issues/10336

which branch are you looking at? I see different code in main than you reference.

https://github.com/Chia-Network/chia-blockchain/blob/main/chia/rpc/wallet_rpc_api.py#L448

ah - i was looking at the new block


Formalize OpenTracing API compatibility practices

For context, the OpenTracing maintainers are making some people a little miserable by pushing out changes without much compatibility-related prep or, in some cases, follow-through.
On the one hand, PRs like https://github.com/opentracing/opentracing-java/pull/115 got plenty of review... that thread was getting so long that Github regularly returned 500 errors to me by the end.
That said, these larger changes also have implications both for (a) those who implement the OpenTracing APIs, and (b) those who call them... the OT-Java 0.30 release had some unceremonious discussion on Gitter but was pushed out (by me – I'll take responsibility for it!) without a meaningful CHANGELOG entry or a "migration guide" for either implementors or callers. (We did add something to the README, though).
There's perhaps an argument about the symbolic importance of a "1.0" release in each language, etc; maybe, but I would argue that the OpenTracing project has enough inbound dependencies at this point that we need to be more careful.
I would like to use this issue as a place to debate what's appropriate. There are three aspects I personally care about, though of course others are encouraged to chime in with others:

What sort of "prep work" must happen before a backwards-incompatible change to a published OT artifact goes out (e.g., prepping PRs in advance that update all OTSC-member Tracers on day one)
What sort of CHANGELOG entry and what sort of migration guide we must publish along with the backwards-incompatible OT artifact
How frequently OpenTracing is even allowed to make backwards-incompatible changes to published artifacts (i.e., per year)

If people have references to processes / practices that have struck a nice compromise for other API projects, it would be great to see them referenced in this thread, too.
cc: @opentracing/otsc @opentracing/otiab @adriancole @tedsuo

Yes, we have serious issues with the concept of backwards-compatibility, since re-linking 1000's of applications in a reasonable amount of time (<than 2 years) is near to impossible. @jquinn47, @SaintDubious might be able to comment and regarding back's compatible changes. My view is simply... the only version where non back'compatible changes can be made is OT 2.0. All 1.0 changes must be backwards compatible. This means that 1.0 is stable and in "maintenance" where (potentially ugly but backwards compatible) workarounds/patches are applied for every new feature while a nice, clean 2.0 is under development. That's how I view it! :)

Thank you to the maintainers, and for the record you haven't made me miserable. Quite the opposite!
If the number of inbound dependencies on an unstable API is becoming problematic, my suggestion is to prioritize achieving stability and shipping 1.0.0. As per semver 2.0:
How do I know when to release 1.0.0?

If your software is being used in production, it should probably already be 1.0.0. If you have a stable API on which users have come to depend, you should be 1.0.0. If you’re worrying a lot about backwards compatibility, you should probably already be 1.0.0.

Would be good to establish the must-haves and a tentative schedule for a 1.0 release, and then as @lookfwd suggests, use semver to communicate breaking changes.
In my experience, maintaining a functional example and linking to the diff is an ideal way of communicating the migration path of an API.
Post 1.0 release, my expectation is that major releases would be made when absolutely necessary, rather than an arbitrary timeline of one year. One year is a great target though.

This, if solved well, will reduce the downsides of OT proliferation. In java, OT are interfaces, which even adding a method (<java 8) breaks implementors leading to a revlock. This manifests as instrumentation or implementors stuck until everything is upgrades. This impacts users because any library pinned to OT may not get other OT unrelated change until all libraries synchronize on a version. Agents start having more complex code needing a matrix of versions. This sort of problem may not be obvious to all, but is the primary reason application libraries repackage internal <1.0 libraries. Repackaging defeats the purpose of OT!
Basically if widespread integration is desired, strict semver and also a policy/culture that feels the pain of change will help remove collateral damage and turn things from liability to benefit. For research on this point, you can look at interfaces that last a long time, for example standard apis (and JSRs that underpin it). You can also look at guava, which OT seems to aim to be used as often as. Guava is a great example of where one library choice can pin an app forever.
One way to handle this is to have compilation integration tests on snapshot versions. Well prior to making a release candidate or next minor, CI on each of the OT maintained integrations would catch any failures, giving people more than a gut feel of compat. This is important also because folks unfamiliar with java can look at those reports vs trusting a "this should work" type of comment on an issue.
Other things is that you can use animal sniffer to check api signatures on OT maintained integrations. Once v1.0 is out, don't immediately use a new method added in 1.1, as that will lead to the same revlock. Ex there are two problems, one knowing that a version will break compat, and also avoiding things that break compat.
Finally, some formalized release notes and broadcast system to users. For example, it matters not if there are 500 comments on an issue that only the inner circle are paying attention to. If something is widely deployed, there needs to be a channel to a wide audience well in advance of an inner circle choosing to break an api.
Hope this helps!

One other thing on this topic is to avail a "user api" which makes it clear what would impact code end users are likely to need. Such an api could limit the scope of damage of OT changes. For example, one that only allows tagging or overriding certain things. We did this in Brave to help isolate a single class that we can watch very carefully.
https://github.com/openzipkin/brave/blob/master/brave/src/main/java/brave/SpanCustomizer.java

I can't read this thread and not think about this talk: https://www.youtube.com/watch?v=heh4OeB9A-c . If you have an hour to spare, this is a great talk in API design, by Joshua Bloch.

In java, OT are interfaces, which even adding a method (<java 8) breaks implementors leading to a revlock.

A common trick for this is to provide an API to the user, and a base implementation as SPI to implementors. This way, if you have to evolve the API, you have to add a new base implementation that is sane enough for current implementations to use, making your code always backwards compatible.

One other thing on this topic is to avail a "user api" which makes it clear what would impact code end users are likely to need.

One tactic used by JBoss projects (or used to be used, at least) is to make it clear by the package name what level of support the API has. For OpenTracing, it could look like this:

io.opentracing.internal -- not meant to be consumed by anyone, only by OpenTracing itself
io.opentracing.spi -- meant to be implemented by a service provider
io.opentracing -- meant to be consumed by the general population and implementations


flutter run failed because rich_editor_demo depends on rich_editor from path which requires SDK version <2.0.0, version solving failed

➜  rich_editor_demo git:(master) flutter run
Running "flutter packages get" in rich_editor_demo...
The current Dart SDK version is 2.3.0-dev.0.5.flutter-a1668566e5.
Because rich_editor_demo depends on rich_editor from path which requires SDK version <2.0.0, version solving failed.
pub get failed (1)

This is not usable it's just a demo


Rename dataStorage to persistence in values.yaml

This patch switches the value to persistence to follow the helm convention.
fixes: https://github.com/spiffe/helm-charts/issues/199

Having experimented in the database side of implementation, I'm convinced this is the right thing to do now. As the persisted volume has stuff in it other then just sqlite and will be needed even if an external database is used.

I think this can be closed in favor of #225 ?

@marcofranssen do you concur? If so, thats fine, we'll finish it in the db pr.

/me sighs... two buttons right next to each other that do different things....


User-selectable folder for SSH keys ("identity files")

Introduces --ssh-dir flag to get and request subcommands so user
may specify in what directory their identity files (also called SSH
private keys, like id_rsa, id_dsa, id_ecdsa, etc.) are located.
Default folder remains ~/.ssh.

Before:
$ ssh-cert-authority get -e dev OY57UPLQRAG5E
Couldn't find ssh key for cert.

After:
$ ssh-cert-authority get -e dev --ssh-dir /tmp OY57UPLQRAG5E
Certificate data:
  Serial:<PHONE_NUMBER>889338834
  Key id: ec2-user
  Principals: [ec2-user ubuntu]
  Options:
  Permissions:
      permit-agent-forwarding:
      permit-port-forwarding:
      permit-pty:
  Valid for public key: 2e:08:03:e6:d8:e1:96:61:0f:0e:4d:db:92:a5:9f:03
  Valid from 2017-05-23 20:45:00 +0000 UTC - 2017-05-23 22:47:00 +0000 UTC
pubkey /tmp/temp_rsa.pub, privkey /tmp/temp_rsa
Identity added: /tmp/temp_rsa (/tmp/temp_rsa)
Lifetime set to 6983 seconds
Certificate added: /tmp/temp_rsa-cert.pub (ec2-user)
Lifetime set to 6983 seconds

And all tests continue to pass:
$ go test ./...
ok      ssh-cert-authority      1.031s
ok      ssh-cert-authority/client       0.008s
ok      ssh-cert-authority/util 0.009s

Just an FYI I'm still thinking about this one a few minutes at a time.

I'm in no rush :)

Still thinking? :)

Sorry for the delay, I've had you sitting as unread in my inbox for months :-. Anyway, this looks good, and you're all merged in. Thank you for your continued contributions to the project.


ui fixes in create proposal

Preview link: https://agora-next-lhiqdia5y-voteagora.vercel.app/
Linear issue: https://linear.app/agora-app/issue/AGORA-1584/button-to-delete-an-option-for-approval-vote-creation-disappeared
Solves different UI issues:

Title renamed to Title (no markdown)
Popup text should be white
Add delete buttons back to approval proposal options

PR-Codex overview
Focus of this PR:
This PR focuses on making style changes to the ProposalCreation component.
Detailed summary:

Added color: white to the styles.module.scss file in the shared component.
Removed the __option_title class and made corresponding changes in the ApprovalOptionsRow.tsx file in the ProposalCreation component.
Added a new styling for the option title in the ApprovalOptionsRow.tsx file.
Updated the label text for the option title in the ApprovalOptionsRow.tsx file.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Noticed a few issues (see video). Once fixed, feel free to merge.
Uploading Arc.mp4…

https://github.com/voteagora/agora-next/assets/5835973/b7f5185c-7c5c-48a4-997d-19904d681b87


Add Listing + Stopping to Deployment Launcher Rewrite

Description
This PR adds the listing and stopping functionality back into the deployment launcher. We fetch more data about each deployment (start time, region, which workers are connected, and tags on the deployment) and expose a button to open the deployment in the console.

Tests
Tested each part of the functionality. Seemed to work and report errors properly.
Documentation
Coming soon
Did you remember a changelog entry?
Will do a big one for the final merge.
Primary reviewers
If your change will take a long time to review, you can name at most two primary reviewers who are ultimately responsible for reviewing this request. @ mention them.
@jessicafalk @jared-improbable

First review done, will do another pass later


Correction required

Hi,
In free trial account it is mentioned as free EMS 90 day trial. EMS only provides Intune related features. Ideally, it should be Microsoft 365 E3/E5 trial.
Extract from the article above:
"Obtain a free EMS 90-day trial by visiting the following link. Provide your email address and answer a few simple questions."

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

ID: d34316d0-bb07-27a0-046b-a2534115a176
Version Independent ID: 7d358473-9967-2d62-10f2-ce761cc674b1
Content: Deploy Windows 10 with Microsoft 365
Content Source: windows/deployment/deploy-m365.md
Product: w10
GitHub Login: @greg-lindsay
Microsoft Alias: greglin

Hi kumaarrahul.
Microsoft does not currently offer a Microsoft 365 E3/E5 trial.
The free trial for EMS mentioned allows someone that already has Windows and Office 365 (or is running an Office 365 trial) to explore what EMS, as a part of Microsoft 365, offers.
I hope that helps.
Recommend closure.

Hello egallagh,
I beg to differ on this one.
As per this article: https://docs.microsoft.com/en-us/office365/admin/try-or-buy-microsoft-365?view=o365-worldwide
"The following Microsoft 365 subscriptions are available in the admin center for you to try or buy now:
Microsoft 365 Business
Microsoft 365 Enterprise E3
(Coming soon!) Microsoft 365 Enterprise E5"
I agree there is no direct page/link to sign-up for Microsoft 365 trial but existing users can do the same from Admin Center.

You are 100 percent correct, sir! New since last time I looked!
Thanks for the info. I will enter a correction.

Microsoft 365 Deployment Advisor doesn't seem to be ready. From the portal, there isn't any option even though I've applied for a trial on M365 E3. The wizard keeps looping back to Office 365 service offerings only

Hi James, I checked the deployment advisor and it's working for me. The UI has updated but the steps are essentially the same. It sounds like maybe the trial M365 E3 isn't active.

@officedocsbot assign @e0i

@kumaarrahul
This issue has had been addressed with the following commit and content has been updated according to your feedback.
d75866 Added info for Microsoft 365 trials
We are thus closing this issue since it seems to be resolved.
Thank you for taking the time to provide feedback.

@officedocsbot close


[Storage] Fix test failure caused by the differences in node and browser

Reference - https://github.com/Azure/azure-sdk-for-js/issues/5326
Aborter error is different in both node and browser.
Browsers - Error: The request was aborted
Node - AbortError: The user aborted a request

Looks good. Is this test unstable? i.e., some times it throw AbortError but other times it's the request aborted error (probably from the request)

I believe it is an issue caused by the differences in node and browser. Logging an issue for further investigation #5328.


adapt wfcc updated header - "news admin header"

@yzlucas Recent changes look like they've resulted in some conflicts that will need to be addressed.
Also noticing a lot of old commits on the history. Make sure you're updating your fork (sync from upstream) and branching from that , we shouldn't see commit messages from a month ago on a newer PR


error[E0446]: crate-private type FilesystemScan in public interface

Hi, since dua-cli v2.27.0, i receive this error while compiling:
error[E0446]: crate-private type `FilesystemScan` in public interface
  --> src/interactive/app/state.rs:42:5
   |
27 | pub(crate) struct FilesystemScan {
   | -------------------------------- `FilesystemScan` declared as crate-private
...
42 |     pub scan: Option<FilesystemScan>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak crate-private type

I am on Alpine Linux which is still using Rust 1.72.1 (due to some issues with newer Rust on 32-bit ARM).
I think that is probably the cause of the problem, so may i know if Rust 1.72.1 is still supported by dua-cli?
Thanks.

Thanks for reporting!
As I always build applications with the latest compiler, as is done by CI, these kinds of issues won't be typically noticed.
However, please feel free to submit a PR or patch for this once you have confirmed it to be working for you, and it will be merged.
Thanks for your help.

Turning pub(crate) struct FilesystemScan { into pub struct FilesystemScan { should already do the trick, in case that's easy for you to try.

Great! Shouldn't happen in the next release, even though it might happen again.


add white paper submission and fix list format

@caifand @jameshowison, just showing you this is happening


[release] v1.7.0

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (df6c17e) 92.01% compared to head (7e9c0da) 92.01%.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #112   +/-   ##
========================================
  Coverage    92.01%   92.01%
========================================
  Files           29       29
  Lines         1152     1152
========================================
  Hits          1060     1060
  Misses          92       92

Impacted Files
Coverage Δ

src/ragger/__init__.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.