Timeout for microsecond?

Thanks for the issue @XQDD!  Could you fill out the description?  I don't understand what the issue is based only on the title.

-t --timeout=TIMEOUT        The DNS lookup timeout in seconds. (Default is 5.)
--smtp-timeout=TIMEOUT      The SMTP connection timeout in seconds. (Default
is 5.)
Thanks for your quickly reply, my mean is here only offer timeout for second but can't use 0.5(500ms ) because they are int type.

@XQDD, are you asking that we allow floats for those two timeout parameters?  Or are you asking that we specify in the documentation that only integer values are accepted?

Well, it would be great if allow float.

@XQDD I apologize for the delay in further response from us.
--smtp-timeout is limited by the underlying Python smtplib library to values in seconds only.
Although the two packages using --timeout, dnspython and py3dns, appear to support timeouts more granular than seconds, the underlying code appears to round up to the nearest second in practice.
Due to these third party limitations we would not be able to implement this feature at this time. However, if something were to change in the future it would be worth revisiting.


Refactored how we handle updates

the update_userland_component function doing un-necessary work (especially during move).
In this PR:

we refactor it to handle partial updates to a single template node.
Split up the full reload pass between pause and play mode so we don't have to generate the full userland project twice when it isn't rendered

This should lower updating time during move by a fair amount and by about half for adds/removes.
Still further performance work to be done but this should be noticeable in the designer.

Okay, sounds practical enough! Merging.


Allow creation of a new Artist

Artists are associated with Songs and Albums.
They could be the or one of the creators of an Album.
They could be the or one the singers of a Song(s) on an Album for which they are not a creator of the Album.
They could be the or one of the re-mixers of a Song(s) on an Album.
They could be a companion in singing a Song(s) on an Album (ie. "sung by X with Y")

This should already be handled by the respective music media objects which utilize and Artist


Fixes GitHub issue #30257

Fixes https://github.com/apache/beam/issues/30257
Adds a static comparing method to the SerializableComparator interface. This almost similar to the inbuilt Java's Comparator#comparing(Function) method except that it uses SerializableFunction.

R: @je-ik

Hi @je-ik , it took a while for me to figure out that there were some check style errors in the code😅. I've fixed those but looks like there are some checks failing that passed in the previous commit. Can you please guide me here if it's anything that I should fix on my end? Thanks!

Hi @kirupha2000 , I'm sorry, I'm OOO, currently. I will take a look at this next week. Thanks for the contribution!

Also please squash the change to single commit. There is a documentation about how to structure granularity of commits in https://github.com/apache/beam/blob/master/contributor-docs/committer-guide.md. Thanks!


[Bug]: projects page have footer mispositioned

Describe the bug
In the projects page, footer is not it's position. Footer should be at the bottom of the page.
To Reproduce
Go to projects page.
Expected Behavior
It should be at the bottom of the page.
Screenshot/ Video

Desktop (please complete the following information)
No response
Additional context
@pradeeptosarkar I would love to work on this.

Hey, please assign this issue to me.  I can fix this issue

@MadhuSaini22 go ahead. @Aniketsahu28 we will open more issues soon bro


Allow to configure colors using an environment variable

This commit add support for configuring colors used by cargo through a
environment variable (CARGO_COLORS). The used syntax for the environment
variable is similar to that one used by gcc (GCC_COLORS).
Example: CARGO_COLORS="status=01;2:warn=01;3:error=01;1:default:01;231:blocked=01;4"
The current state should be seen as a proof of concept and demo to see if this functionality is wanted. I've only tested the code on linux so far.
For a final implementation the interpretation of the escape codes may be improved.
Resubmit of #3873

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

cc @rust-lang/dev-tools, this has an impact on not just Cargo but also tools like rustc/rustup, and I'd be curious to hear others' thoughts as well.

Thoughts:

I wonder whether we should unify colouring across all the tools?
Could we use a config file rather than an env var? This seems like a lot of info to stick in an env var.
I'm vaguely in favour of letting users customise their experience like this, but worry a bit about the cumulative complexity of lots of small features

Could we use a config file rather than an env var? This seems like a lot of info to stick in an env var.

In theorie we could use a config file for this, but this would prevent the main application of this. It is not that uncommon to work with several terminal emulators in parallel (say the build in terminal in vscode or emacs and the system terminal emulator). Now those could use different color schemes. So they must use a different configuration for the color codes. This would be quite hard to achieve with an config file.
See this comment on the old pull request for more details.

@nrc

I'm vaguely in favour of letting users customise their experience like this, [...]

A common issue with Rust tools is that they use bright colors on the default background. I have the background set to white, and redshift (similar to f.lux on MacOS) makes the contrast between bright colors and white background even smaller during the night.
It is annoying (but still doable) to change the profile of the current tab in my terminal every time I start using cargo/rustc.

:umbrella: The latest upstream changes (presumably #4162) made this pull request unmergeable. Please resolve the merge conflicts.

@alexcrichton f8fb0a022853ab3f423889d442c695511ece3692 broke the current implementation. It seems not possible to use custom color codes through termcolor, so this will not work anymore.
There is this open pull request that adds support for more color types.
I think the best way forward is to get this pull request merged. After that one could write a small utility crate that could do the parsing of the color codes from an environment variable. This crate could then be used to implement the color feature in cargo, rustc, …

Sounds reasonable to me!

Closing due to inactivity, but please feel free to resubmit with a rebase!

@weiznich the changes in https://github.com/BurntSushi/ripgrep/pull/452 were effectively merged with https://github.com/BurntSushi/ripgrep/pull/766, do you feel like rebasing this branch now to ship the change?

@dwijnand Rebasing that branch would be great, but it seems like I currently missing the time doing this. Feel free to grab this if you have time.


Run Selection/Line in Python Terminal does not execute w/ IPython

From @ruben-aghayan on August 25, 2017 23:2
Environment data
VS Code version:  1.15.1
Python Extension version:  0.7.0
Python Version:   3.6.2
IPython Version: 6.1.0
OS and version:     Windows 10 Enterprise 1703
Actual behavior
Pastes selected line(s) into IPython but does not run them. There is a new line at the end of the pasted text.

Observed ouptut from highlighting line or leaving cursor on line and issuing Run Selection/Line in Python Terminal command when IPython is default interpreter
Expected  behavior
To run selected line(s)
Steps to reproduce:

Set IPython default interpreter
Issue Run Selection/Line command

Copied from original issue: DonJayamanne/pythonVSCode#1180

From @TiemenSch on August 28, 2017 17:29
What happens if you add a new line at the end of your file?
Update:
I tried to reproduce and it only happens when sending the selection in my case.
Running the complete file works just fine.

Possibly related to https://github.com/DonJayamanne/pythonVSCode/issues/1180

From @ruben-aghayan on August 29, 2017 17:21
Hi Tiemen,
When I add a new line at the end of the file, it is also pasted into IPython, but the code is not run.
Also, I want to confirm your finding that this only occurs for sending a selection or a line, not for running the file.
Running line by line is an important part of workflow in cases like Data Science. It also makes the most of some of the interactive features in IPython.

@ruben-aghayan are you able to test this on the latest version of VS Code and let us know whether it works.

As far as I can tell, the issue is still there. Has it stopped on your machine? / Is it just me?

This bug also occurs for me, exactly as initially described.

@ruben-aghayan @amccaugh
In ipython, you do need a blank line and then you need to hit the enter key for IPython to evaluate the request. This is the standard behavior in ipython.

Ignore VS Code for a moment,
just launch the terminal and start ipython
type in the text print("test") and hit the enter key
A blank line will be displayed (standard ipython behavior)
You need to hit the enter key once again for the print("test") statement to get evaluated.

Please test and confirm this is the behavior outside VS Code.

The issue persists if a blank line is included then the 'run selection' command is given.
If, in order to run the line, the user must change the focus to IPython and hit enter ( and this can't or shouldnt be done in the Run Line/Selection command) then I think we can close it.

@DonJayamanne In my terminal (windows), using IPython 6.1.0 (Python 3.6), I do not need to hit the enter key twice.  The behavior I see is:

launch the terminal and start ipython
type in the text print("test") and hit the enter key (only once)
the line is evaluated, and the word "test" is printed along with a blank line underneath it

I've also tested this on a Debian box with IPython 0.13.1 + Python 2.7, and it's the same behavior (a single keypress of enter evaluates the line).  From what I can tell, getting a newline in the IPython prompt is actually somewhat difficult

@ruben-aghayan @amccaugh
This works at my end, please could you install the latest development version of the extension and test this out.

I have installed the latest development version of the extension. As before, running the first line of the selection executes nicely in ipython - this has never been an issue for me. The rest of the selection however, does not. This behaviour has been described in #460  already and it is still marked as needs-verification.

Ignore the other issue; it's closed.
Can someone upload a GIF showing what's happening for them including what OS, Python version, and IPython version they are using? We simply can't reproduce on our machines (I tested this issue the other day and couldn't reproduce either).

System macOS 10.13.3
VS Code 1.20.1
Python 2.7.13
ipython 5.2.0

This is not OS specific - tested on Ubuntu 16.04 with the development version of extension to same result

@draran and what happens if you send the code a second time after IPython has finished starting up?
Having the first line get lost is a known issue due to how VS Code interacts with terminals and how long it takes for IPython to start up (basically it's a race condition we almost always lose).

The same thing - even after the ipython has been running for a while, if I select several lines and try to "Run Selection/Line in Python Terminal" only the first line is being run. The remaining lines never are. This has already been described in #460, which has not been closed.
Similar to you, I am puzzled as to why you cannot replicate the issue. Could you try uploading a gif in which you successfully run selection (i.e., several lines) in ipython? Might give a hint about why I fail.

@draran
Could you try the following:

Open an integrated terminal (ensure you open it in side VS Code)
Start ipython
Copy multiple lines of code and past it into ipython
Please let us know whether all lines get executed when you manually past it into the terminal inside vs code. I have strong suspicion that might not work either.

All lines get pasted. I do need to to press return in order to have them executed - This may be related to the issue reported in this thread, and according to an earlier post this should have been corrected in the development version of the extension.
In the attached gif I employed all testing scenarios: (1) running selection without a running ipython instance, (2) running selection with running ipython and (3) copying and pasting the selection to running ipython.
I am using the latest development version of python extension and a fresh install of vs code v1.21.1

Here is what happens for me:

Now this is running on an VS Code insiders build and with the development build of the extension.
But I also notice you're running an old version of IPython. Can you try with the latest release (6.2.1)?

That gif looks very promising - I guess I'll wait the release of the the new VS Code version.
Two other things - According to the ipython documentation (https://ipython.readthedocs.io/en/stable/whatsnew/version6.html) the version 6 supports only python 3.3 and higher. Unfortunately, I use some packages available only for 2.7 so using ipython 6.+ is not an option.
Second - I did update to the latest ipython version available in anaconda (5.4) but the selected lines are not sent to the terminal even when using ipython 5.4.
Finally, in seems that even in your gif you still need to press the return key in ipython for the commands to be executed. I understood from Don's earlier post that this issue has been resolved in the development version of the extension.

Hi @brettcannon
Your gif is what I was trying to describe initially. Unlike in vanilla python, selecting 'run line/selection' does not run the code but pastes it into the terminal. The user must then focus on the terminal and hit enter. Is that the intention? If so, then I think this isn't a bug. My thought is that ,if it's possible, it would be nice to have ipython run it. But I think you know better. @draran 's gif looks related but slightly different.

@brettcannon
Similar to what @ruben-aghayan has said, this is what I was describing as a bug.  As shown in the gif, the command doesn't run the selection in the ipython terminal, it just copies the selection into the ipython console.
This is in opposition to when the terminal is regular python.  In that case, run selection copies the selection into the terminal and evaluates it.  This is particularly useful when working with data and you need to run specific sections of code to manipulate it (and not necessarily always in the same order)
The desired behavior shown in the python terminal, where the statement is evaluated immediately:

The same command in ipython where I have to switch to the mouse, move to the terminal window, and press enter for the evaluation to actually occur:

OK, now that we know where we all stand, this is all because of how IPython functions versus Python's REPL. Basically we don't control the terminal, we just get to send text to it (it's actually a blackbox to use due to how VS Code exposes it). In Python's REPL, the newline that gets sent is enough to cause the REPL to run the line since it assumes a newline for a top-level statement means "run". IPython, on the other hand, wants an extra newline which we aren't sending since we aren't special-casing for IPython (or any other REPL for that matter; we're literally just sending the text you have highlighted).
What Don and I were referring to was a previous issue where only some lines got sent instead of all the highlighted lines (plus the issue of the initial sending failing due to IPython taking a while to start up).
I have made this a feature enhancement request and tweaked the title to express what people are after. We will have to eventually discuss on the team if/how we want to handle this since we would basically have to special-case IPython and add the ability to specify what REPL you want to use (can't make any timeline promises).

Sounds great, thanks for the response.  To me, it's one of the most useful features of Spyder when manipulating data or testing instrumentation scripts -- being able to execute line-by-line (or selection-by-selection) allows you to quickly test in a non-linear fashion.  When you're trying to e.g. clean data, sometime you need to experiment with the order of operations and it's extremely helpful to be able to do this without having to cut/paste/rearrange the lines each time.

We are now thinking about sending an extra newline no matter what, although it will lead to some newline noise in Python's REPL when sending a single statement. This doesn't let people configure a custom REPL, but it should get everyone here what they are after in terms of immediate execution.

@brettcannon
I haven't had the chance to look into this issue. Based on your comments, it sounds as thought we might need to spend more time looking into this.

@DonJayamanne I think the first step is to see if it even fixes the issue. 😉 When I tried copying and extra newline, IPython still didn't start executing, so it's quite possible that the way IPython is interacting with the integrated terminal just isn't harmonious enough to solve this.

@brettcannon
I"ll check this out, but there are circumstances where we wouldn't want to add a new line.
E.g. assume a user sends a block of code (for some bizarre reason it is split):
def do_something():
    print(1)

    print('another line in the method')

Now, both the print statements belong to the same method (or that's the intention). Us adding new lines will break things.
I'll look into this further.

for vs code to replace spyder for data science I have two recommendations

have the ability to work with ipython in vs code.
have a data viewer and in that data viewer have the ability to search for items

/cc @jflam

@boazdori no current plans to do so.

@boazdori If you're interested in seeing a preview of what this experience could look like, take a look at this extension: https://marketplace.visualstudio.com/items?itemName=neuron.neuron-IPE
I had some students build this proof of concept for us - would love to hear your feedback!

@jflam This looks very promising. Quite similar and potentially more powerful than hydrogen package for atom IDE

Tried it thanks
What I am really missing in vs code python is

Console - Ipython
Variable explorer

Functionality that matlab has
Thanks
Boaz
From: John Lam<EMAIL_ADDRESS>Sent: Thursday, August 16, 2018 6:51 PM
To: Microsoft/vscode-python<EMAIL_ADDRESS>Cc: boazdori<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Microsoft/vscode-python] Send extra newline for 'Run Selection/Line in Python Terminal' to immediately execute (#169)
@boazdori https://github.com/boazdori  If you're interested in seeing a preview of what this experience could look like, take a look at this extension: https://marketplace.visualstudio.com/items?itemName=neuron.neuron-IPE
I had some students build this proof of concept for us - would love to hear your feedback!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Microsoft/vscode-python/issues/169#issuecomment-413593425 , or mute the thread https://github.com/notifications/unsubscribe-auth/AZGAzCAju28RNfQ-nNjt6U1SyJW466zHks5uRZThgaJpZM4Qdo0R .  https://github.com/notifications/beacon/AZGAzOPVHFWWTHbhd-BEcHUUK8NgYqbZks5uRZThgaJpZM4Qdo0R.gif

Thanks! @boazdori we're definitely going to be moving forward with building out this feature set (and others) soon. Stay tuned.

I've just installed vscode. Honestly, it's hard to believe this functionality isn't present. We are talking about running code in the most popular shell for data analysis. uninstalling asap vscode. A piece of advice: try to mimic Rstudio's functionality, otherwise it's useless for data science. A text editor with iPython is just better.

@martinbel did you try the Neuron extension linked above? We are working on turning the Neuron experience into the Microsoft experience.

Thanks for the suggestion but I've just finished setting up vim + tmux + vim-slime that has all I need really. I'll give it a try later on, thanks!

@DonJayamanne Has any progress been made on this front?
So far, the best I could do to approximate the desired behavior, i.e. multiple selected lines properly sent and executed in the IPython terminal, was to manually send the extra line break a few milliseconds after the original code was sent. This works well for few selected lines, but of course becomes a problem when the number of selected-and-sent lines increase.

@vasselai our data science team has taken ownership of this issue, so it's up to @ronglums and company to make a prioritization call.

The original issue entered was not about data science, but only the existing python terminal window. This bug will now only track this issue.
The other Python Interactive window issues scattered throughout this issue are likely covered by #727.

I've been looking at a few ways to address this issue. Here are some approaches:

Use keybindings.json for interacting with the terminal. You can set key bindings for shifting focus to and from the iPython terminal and also have an additional key binding to send a carriage return. Try doing a key binding for "python.execSelectionInTerminal" to send a line or lines to the terminal followed by a key binding for "workbench.action.terminal.sendSequence" with a carriage return as the argument. Here are my keybindings.json enteries:

{
    "key":"ctrl+`",
    "command":"workbench.action.focusActiveEditorGroup",
    "when":"terminalFocus"
},
{
    "key":"ctrl+`",
    "command":"workbench.action.terminal.focus",
    "when":"!terminalFocus"
},
{
    "key":"alt+enter",
    "command":"python.execSelectionInTerminal",
    "when":"editorFocus && !findInputFocussed && !replaceInputFocussed && editorLangId == 'python'"
},
{
    "key":"alt+shift+enter",
    "command":"workbench.action.terminal.sendSequence",
    "args":{ "text": "\u000d" }
}

Modify src\client\common\terminal\service.ts to send a delayed carriage return to the terminal so that the python-prompt-toolkit in jupyter_console in iPython interprets the CR as an "enter" key binding and initiates code execution:

public async sendText(text: string): Promise<void> {
        await this.ensureTerminal();
        this.terminal!.show(true);
        this.terminal!.sendText(`${text}`);
        // send carriage return to make code execute
        await new Promise(resolve => setTimeout(resolve, 100));
        this.terminal.sendText('\u000D', false);
        await new Promise(resolve => setTimeout(resolve, 100));
    }

Use the new REPL feature for interactive python in the Python Extension for VSCode that is available in the current build (but not yet in a release). If going that route, I use the following key binding to send a line/selection to the REPL:

{
    "key":"alt+shift+enter",
    "command":"python.datascience.execSelectionInteractive",
    "when":"editorFocus && !findInputFocussed && !replaceInputFocussed && editorLangId == 'python'"
}

and I also sometimes open a REPL in the terminal interface connected to the same kernel with
jupyter console --existing

We're not fixing the issue as stated because of limitations with the terminal. Closing in favor of #727

@saponas this works. can combine opt1 with multi-command ext, too.


Lidar LMS511 connection problem

System:
ros2 foxy
ubuntu 20.04 (kernal 5.11.0-46-generic)
sick_scan_xd
LMS511-20100
Problem: When executing "ros2 run sick_scan sick_generic_caller ./src/sick_scan_xd/launch/sick_lms_5xx.launch" i get the following error:
ERROR SickScanMessages::parseLIDoutputstateMsg(): received 95 byte with invalid format (/home/henry/testbench_ws/src/sick_scan_xd/driver/src/sick_scan_messages.cpp:142): \x02\x02\x02\x02\x00\x00\x00VsSN LIDoutputstate 0 0 0 16 0 16 0 16 0 16 0 16 0 16 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 0w
Note: I changed the IP-address in the launch file according to the one shown in SOPAS. Also i set sw_pll_only_publish to false according to an error i got before.
I really appreciate any help you can provide.
Full terminal code:
error.txt

Thanks for reporting. Unfortunately, we can't reproduce the error using a LMS511 on ROS-2 Foxy. The datagram "\x02\x02\x02\x02\x00\x00\x00VsSN LIDoutputstate 0 0 0 16 0 16 0 16 0 16 0 16 0 16 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 0" looks like an incorrect mix of binary and ascii telegram.
Please update to the latest sick_scan_xd release (V2.4.3) with improved switching to binary communication and check that both the driver and the lidar is running in binary communication mode:

Set parameter "use_binary_protocol" to "true" in the launch file (which is the default), and
Set the lidar communication mode with the SOPAS ET software to "binary" and save this setting in the scanner's EEPROM.

The following screenshot shows an example (LMS511 with latest sick_scan_xd on ROS-2 Foxy):

Thank you for the detailed and quick answer you gave me.
After downloading the newest Version (V2.4.3) everything worked again, no more errors!
Also i did not have to change any more settings or parameters. Just straight up works again.


Symbol completion: new approach

Preliminary: rename getToMatchAndTokenType() to getSymbolCompletionSpec` given that it will probably also define context
New getActiveNode to be implemented by every parse node, which cascades down as needed
Must differentiate Valid from Complete  - DONE
Example: parsing a as an Expression. Since a is a valid identifier, SimpleTerm is already looking for the next thing in the sequence, which is an optional index. So the activeParseNode is an OptionalNode, when we really want it to still be the Identifier node, so that symbols matching a can be offered.
I think the solution is that ParseStatus should distinguish:

Valid
Complete means that the contents are valid, but nothing else could be added. In this case only if the current node is within a sequence, the sequence should already be selecting the next in sequence as the active node.

Note that Complete may only be offered by certain nodes e.g. FixedTextNode (inherited by Punctuation and Keyword), and by AbstractSequence that ends with a FixedTextNode.
Valid should remain highter-ranked than Complete - so that a complete node does not cut off symbol completions from valid nodes that could take more text.
When change is made, every reference to ParseStatus.Valid should be checked.
A Sequence should only move to the next parse node when the current active node is complete, and there is no alternative valid node. (This will be fixed text i.e. keyword, 'puncuation', 'space' or 'newline'.
Note that syntax completions can be offered based on the active parse node being valid.
Alternatives - DONE

When any form of Alternatives is empty, then the active node is itself. (This might be the automatic/default behaviour if bestMatch is undefined - but need to check this.
If 'BestMatch' leaves no remaining text, Alternatives needs to know if there are other candidates (later in precedence) that have same status and no remaining text. In this situation, the active node should remain the Alternatives, rather than bestMatch, and should agglomerate the TokenTypes - so that e.g. an expression containing just a will still provide autocompletes for both named values and methods.

getSymbolCompletionSpec

Return a single object with all the details rather than a tuple
Typically  most 'branch' nodes will delegate down (via getActiveNode) until it gets to a 'leaf node`
Many 'leaf nodes' (e.g. keyword, puncutation, literal string) will specify 'no symbol completions' - so that should be the default
The two key leaf nodes, that provide important specs are:  SimpleType ,  Identifier - which may need to have some details (for TokenType(s) and Context)specified in their constructors.
However, other nodes that will provide non-empty specs include:
any compound ('branch') node that is empty. Note, however, that there is not necessarily any value in providing 'all' (as happens now e.g. in any empty expression - because the list is so long that you see only the 'a...`s anyway.
any node extending AbstractAlternatives where there is more than one match with the same parse status as the bestMatch (this knowledge is not currently in the model) - because it would be a mistake to offer symbol completions only for the single best match only. A good example is that a single letter could be an equal match for a method name or a variable name. Note, however, that the text-to-match, and the context, should be the same - but the TokenTypes should be aggregated from all sub-nodes with best-match status. (Change AbstractAlternatives so it holds a collection of nodes with best-status, and the 'best match', where needed, is the top one - i.e. the first encountered).

keywords as symbol completions - DONE

Example: an expression is parsed with just n. This could be an identifer/method or (higher precedence) a new instance node. This suggests that the syntax completion ( e.g. new   i.e. including space) should appear in the drop-down?
If we do this then the options in the drop-down should support Html mark-up for keywords. However, we need to be able to strip this out again for insertion into the field.
Could we go the whole hog and roll all completions into the drop-down? Against: the reminder that you need to close brackets is not the same as having an dropt-down option. For: it would get rid of the issue #854 _(syntax comp must be offered only at RH end).
Need to consider ordering in the menu. Probably keywords should come first.
In general, nodes need to be able to add keywords into the list of symbol options.
The fact that any symbol completion may add further text ( (,  , <of  etc) is to assist the syntax completion, not to take its place. It is only ever fixed-text, not prompts.

Relationship of symbol completion to syntax completion

Syntax completion applies only when the active node is the only one possible (given current text)
Symbol completion offers one or more options. Even when the options are down to one, it is still an option  because you might be deliberately using a new symbol that isn't yet defined. (Maybe rename this again: to symbolOptions).

TokenType DONE
Multi-selectable (i.e. specificed in an array and always merged using set operations):
  method_function,
  method_procedure,
  method_system,
  type_concrete,
  type_abstract,
  id_constant,
  id_let,
  id_variable,
  id_parameter_regular,
  id_parameter_out,
  id_property,
  id_enumValue

All other values to be dropped
Context
As well as filtering by type, and by lexical matching, there is a need for filtering by context. The main forms of this are:

Scope (is this an automatic feature i.e. already inherent in the implementation of the symbol table, including e.g. the direct visibility of all class members within the instance methods?)
Dot-chains. In any 'dotted' element, the type of the previous element determines the properties, methods, incl. extensions available.
Special case for with clauses, where the context (for the properties offered in the to' clauses) is determined by the Type (in a new ... withor the type of the instance in acopy ... with`.

Current issue OptionalNode
If you have a Sequence where, say, an Identifier is followed by an optional index, then because an OptionalNode is (after parsing) valid even if there is no text, then it prematurely becomes the activeNode in the sequence e.g. after entering one character, where the Identifier should remain the active node because the user want's symbol completion options for the idenftifier.
Should be easy to change this - but so far hasn't worked. I have have tried changing this code as commented:
  } else if (node.isValid()) {
      if (moreText) {
        if (lastNode) {
          this.status = ParseStatus.valid;
          this._done = true;
          continueLoop = false;
        } else {
          this.activeNodeForSymbolCompl = nextNode!.getActiveNode();
          continueLoop = true;
        }
      } else {
        //Change to only making node the active node if it has also matched at least one char OR if it is the firstNode
        this.activeNodeForSymbolCompl = node.getActiveNode();
        this.status = ParseStatus.valid;
        continueLoop = !lastNode;
      }
    }

But so far this hasn't worked - and cause some error.

Stef:
Please create a new branch and then get auto-complete to work using my new API on ParseNode:
`symbolCompletion_getSpec(): SymbolCompletionSpec
Don't worry about getting all the 'auto-complete' tests passing - some of that will be down to me to fix (either by tweaking my implemention or, possibly, because the tests need updating`. The important thing is to get some of them working.
Important differences:
1. The values of TokenType have been extended and are now more fine-grained returned as a Set<TokenType>, rather than aggregated single values such as 'assignable. When this is working, several of the previous values on the enum (as commented there) should be removed.

The 'context' is returned as a Func, which in turn provides the 'prefix' to be prepended to the toMatch string. This is not e.g. fully implemented, but is there for e.g. the with clause on copy or new expressions.

The SymbolCompletionSpec object now also includes a Set of keywords that the parse node may want adding to the list of 'symbol completions (not strictly symbols, but that's OK. These should be rendered before any actual symbol completions, the latter being rendered in the same order that they are now.

Passing over to Stef :
I (was) down to 3 failing tests - all to do with 'types in brackets' e.g. [Int] or {String:Int}
As a step to solving this I have (n the latest check-in on  the 'symbol-completion' branch) changed the handling of these types by:

Removing the brackets/braces from the specific parse nodes
Pushing this up to TypeNode so that the brackets/braces are handled there, before, in each case the parser deals with the alternatives of a single type, or a KVP type-pair.

This is parsing correctly, but failing at the AST Transform stage - cause many other test failures.
I have tried to understand this, but can't. The most common error is 'Unsupported node Sequence'. I haven't created any new parse nodes, just used the generic constructs of Sequence and Alternatives - which are being used in lots of places within the parse model, in -  so far as I can see - a similar fashion.
Please fix up the AST for me, and I will look at what you did.  Don't worry about fixing up tests where expected doesn't match actual - as long as there are no more errors being thrown in tests -  I'll take it on from there.


[Feature request] buffer with predicate which determines when buffer must be flushed

Hello!
I have simple example with character stream:
  auto source = rxcpp::observable<>::iterate(
    std::initializer_list<char>{ '1', '2', '3', '$', '5', '$', '7', '8', '$' }
  );

I want to get std::vector for each sub sequence terminated by '$'.  I know that there is  buffer operator ( http://reactivex.io/documentation/operators/buffer.html ) with count and time overloads. But what about buffer with predicate which determines when buffer must be flushed?
Now I have the following workaround:
  auto source = rxcpp::observable<>::iterate(
    std::initializer_list<char>{ '1', '2', '3', '$', '5', '$', '7', '8', '$' }
  );

  auto vector_stream = source
    | rxcpp::operators::flat_map([](char ch) {
    return rxcpp::observable<>::create<std::vector<char>>(
      [ch](rxcpp::subscriber<std::vector<char>> s) {
      static std::vector<char> a;
      if (ch == '$') {
        s.on_next(a);
        a.clear();
      }
      else {
        a.push_back(ch);
      }
    });
  });

  vector_stream
    .subscribe([](const std::vector<char> &v) {
    std::cout << "consume vector: ";
    std::copy(v.begin(), v.end(), std::ostream_iterator<char>(std::cout, " "));
    std::cout << std::endl;
  });

I am newcomer, so may be you point me more correct and elegant RX way to solve my task.
Thanks in advance,
Anatoly Shirokov

The window_toggle operator can be used to build this. In fact this is used in Readme.md to implement a variation of this exact problem.
    // filter to last string in each line
    auto closes = strings |
        filter(
            [](const string& s){
                return s.back() == '\r';
            }) |
        Rx::map([](const string&){return 0;});

    // group strings by line
    auto linewindows = strings |
        window_toggle(closes | start_with(0), [=](int){return closes;});

Partially applied to this case:
  auto source = rxcpp::observable<>::iterate(
    std::initializer_list<char>{ '1', '2', '3', '$', '5', '$', '7', '8', '$' }
  ) |
  // share
  publish() |
  ref_count();

    // filter to flushes
    auto flushes = source |
        filter(
            [](char c){
                return c == '$';
            }) |
        Rx::map([](const string&){return 0;});

    // group
    auto windows = source |
        window_toggle(flushes | start_with(0), [=](int){return flushes;});

  auto vectors = windows |
    map([](observable<char> w){
      return w |
        filter(. . .) | // filter out '$'
        reduce(. . .); // push_back each char into a vector.
    });

Thank you so much, Kirk! You are kind wizard. But there a lot of overhead. But cannot make it works with infinity character sequense:
  auto source = rxcpp::observable<>::interval(std::chrono::milliseconds(50), rxcpp::observe_on_new_thread())
    .map([](long i) {
    if (!(i % 10))
      return (char)'$';
    return (char)('A' + i);
  });
  std::mutex m;
  source.subscribe([&m](char ch) {
    std::lock_guard<std::mutex> g(m);
    std::cout << "char: " << ch << std::endl;
  });

  // filter to flushes
  auto flushes = source |
    rxcpp::operators::filter(
      [](char ch) {
    return ch == '$';
  })
    | rxcpp::operators::map([](char ch) {
    return 0;
  });

  auto windows = source |
    rxcpp::operators::window_toggle(flushes | rxcpp::operators::start_with(0), [=](int) {
    return flushes;
  });

  auto vectors = windows |
    rxcpp::operators::map([](rxcpp::observable<char> w) {
    return w |
      // filter out '$'
      rxcpp::operators::filter([](char ch) {
      return ch != '$';
    }) |
      // reduce to vector
      rxcpp::operators::reduce(
        std::vector<char>(),
        [](std::vector<char> v, char ch) {
      v.push_back(ch);
      return v;
    }) | rxcpp::operators::as_dynamic();
  });

  vectors
    .take(3)
    .as_blocking()
    .subscribe([&m](rxcpp::observable<std::vector<char>> o) {
    o.subscribe([&m](std::vector<char> &v) {
      std::lock_guard<std::mutex> g(m);
      std::cout << "vector: ";
      std::copy(v.begin(), v.end(), std::ostream_iterator<char>(std::cout, " "));
      std::cout << std::endl;
    });
  });

I got the following:
char: B
char: C
char: D
char: E
char: F
char: G
char: H
char: I
char: J
char: $
vector: B C D E F G H I J
vector:
char: L
char: M
char: N
char: O
char: P
char: Q
char: R
char: S
char: T
char: $

Any hints?

I think that the fix is to share the source
  auto source = rxcpp::observable<>::interval(std::chrono::milliseconds(50), rxcpp::observe_on_new_thread())
    .map([](long i) {
    if (!(i % 10))
      return (char)'$';
    return (char)('A' + i);
  }) |
  // share
  publish() |
  ref_count();

this should let you remove the mutex m as well. at the moment every subscribe to the source is starting a new thread and emitting all the chars on each thread. this leads to some coordination issues in the window_toggle operator, since it was not given a thread-safe scheduler to use to coordinate the values from different threads. It also means that the '$' from one thread is being used to close the sequence from a different thread.

Thank you, Kirk! As the result window_toggle is not suitable to solve this task. The following does not work:
  auto source = rxcpp::observable<>::interval(std::chrono::milliseconds(50))
    .map([](long i) {
    if (!(i % 10))
      return (char)'$';
    return (char)('A' + i);
  })
    .publish()
    .ref_count();

  // filter to flushes
  auto flushes = source |
    rxcpp::operators::filter(
      [](char ch) {
    return ch == '$';
  })
    | rxcpp::operators::map([](char ch) {
    return 0;
  });

  auto windows = source |
    rxcpp::operators::window_toggle(flushes | rxcpp::operators::start_with(0), [=](int) {
    return flushes;
  });

  auto vectors = windows |
    rxcpp::operators::map([](rxcpp::observable<char> w) {
    return w |
      // filter out '$'
      rxcpp::operators::filter([](char ch) {
      return ch != '$';
    }) |
      // reduce to vector
      rxcpp::operators::reduce(
        std::vector<char>(),
        [](std::vector<char> v, char ch) {
      v.push_back(ch);
      return v;
    }) | rxcpp::operators::as_dynamic();
  });

  vectors
    .take(3)
    .as_blocking()
    .subscribe([](rxcpp::observable<std::vector<char>> o) {
    o.subscribe([](std::vector<char> &v) {
      std::cout << "vector: ";
      std::copy(v.begin(), v.end(), std::ostream_iterator<char>(std::cout, " "));
      std::cout << std::endl;
    });
  });
  return;

I got only one vector and my program is hanged:
vector: B C D E F G H I J
As for me the best solution in that case will be buffer with predicate.

I finally have a fix for an async lifetime bug in window_toggle.
A few improvements to the code as well.

no need to use as_blocking() when no threads were added
use merge() instead of nesting a subscribe in on_next

  auto source = rxcpp::observable<>::interval(std::chrono::milliseconds(50))
    .map([](long i) {
    if (!(i % 10))
      return (char)'$';
    return (char)('A' + i);
  })
    .publish()
    .ref_count();

  // filter to flushes
  auto flushes = source |
    rxcpp::operators::filter(
      [](char ch) {
    return ch == '$';
  }) |
    rxcpp::operators::map([](char ) {
    return 0;
  });

  auto windows = source |
    rxcpp::operators::window_toggle(flushes | rxcpp::operators::start_with(0), [=](int) {
    return flushes;
  });

  auto vectors = windows |
    rxcpp::operators::map([](rxcpp::observable<char> w) {
    return w |
      // filter out '$'
      rxcpp::operators::filter([](char ch) {
      return ch != '$';
    }) |
      // reduce to vector
      rxcpp::operators::reduce(
        std::vector<char>(),
        [](std::vector<char> v, char ch) {
      v.push_back(ch);
      return v;
    }) |
      rxcpp::operators::as_dynamic();
  }) |
  merge();

  vectors
    .take(3)
    .subscribe([](const std::vector<char> &v) {
      std::cout << "vector: ";
      std::copy(v.begin(), v.end(), std::ostream_iterator<char>(std::cout, " "));
      std::cout << std::endl;
    });

with the bug fix this results in
$ ./delimited
vector: B C D E F G H I J
vector: L M N O P Q R S T
vector: V W X Y Z [ \ ] ^
$

As for me the best solution in that case will be buffer with predicate.

Adding buffer_toggle would allow this and remove the extra reduce. There is not a lot of code difference between the window and buffer forms of the operators. I just haven't gotten around to it yet.

Thank you so much, Kirk! This is very good news.

Thank you for pointing out the issues in window_toggle!

With all respect to the 'creative solution', readable and understandable code looks different, so something like a buffer_if with a predicate seems preferable and should still be considered a reasonable feature request. The proposed solution is more of a workaround imho.


tmp rtl update

cmd:
./util/dvsim/dvsim.py ./hw/ip/i2c/dv/i2c_sim_cfg.hjson -i i2c_target_stress_wr -r 1 -s 1 -w fsdb
Test sends 1 transaction with 80 bytes. I ran with PR16108 ( final -1 version)
And slow down read acq_fifo to create acq_fifo overflow.
After acq_fifo full, clock stretch doesn't happen.

ah i'm sorry to say, i havent pushed my clock stretch fix PR yet... once the i2c one merges
i will push it.

@jdonjdon have a look at #16249
I tested against this PR, and i do in fact see the stretching. The test just stops after some time though, with scl/sda all idle.
I haven't checked the sequence to see if this is the intent.

@jdonjdon have a look at #16249 I tested against this PR, and i do in fact see the stretching. The test just stops after some time though, with scl/sda all idle. I haven't checked the sequence to see if this is the intent.

that was because my driver didn't send stop when scl is stretch. After I fix that, it looks good with #16249

@tjaychen, I enable re-start now. With #16249
Test fails because dut hangs while it sends ack after receiving restart-address.


VS Code is not executing code anymore either with Shift+Enter or Right click run code but adds new line

Environment data

VS Code version: 1.31.1
Extension version (available under the Extensions sidebar): XXX
OS and version: Win 10
Python version (& distribution if applicable, e.g. Anaconda): Python 3.7.1 64-bit ('base': conda)
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): NA
Relevant/affected Python packages and their versions: I have codeRunner and PYthon installed to run python code

Expected behaviour
This morning a message from microsoft popt up in the lower right corner of VSCode. It said something about ultimate new experience and I clicked it without thinking. Afterwards I noticed that I could not run code eanmore. Usually I type > python< at the terminal promt to open python. Then I import the packages and run my code by putting the cursor at the end and hitting SHIFT+ENTER
Actual behaviour
When I mark a couple of lines and I hit SHIFT+ENTER behind a codeblock a new line is added but the code is not executed. When I mark the line and right click RUN CODE then I get the message below in Problems:
`[Running] python -u "c:\Users\userxyz\Google Drive\Python\tempCodeRunnerFile.py"
Traceback (most recent call last):
File "c:\Users\userxyz\Google Drive\Python\tempCodeRunnerFile.py", line 1, in
import seaborn as sns
ModuleNotFoundError: No module named 'seaborn'
[Done] exited with code=1 in 0.232 seconds`
[Done] exited with code=1 in 0.232 seconds
Even when I import the module manually by typing it in the Terminal the same thing happens. I know for sure that the packages are installed.
I also noticed that a strange file is created when I try to execute code called "tempCodeRunnerFile.py" I never observed this kind of behavior before. Google and the Documentation was no help.
Here are the settings for my keybindings, they seem to be fine:

Steps to reproduce:
I'm not sure how to provide them.
Logs
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
XXX

Output from Console under the Developer Tools panel (toggle Developer Tools on under Help; turn on source maps to make any tracebacks be useful by running Enable source map support for extension debugging)
XXX

Looks like you are using a separate extension to run the code.
Please report the issue on that repo.
Or please use the commands specific to the python extension, e.g. Python Run Python File in Termimnal, etc.


Add a video showing UI and Hardware side-by-side

Is your feature request related to a problem? Please describe.
SHowing people it works!
Describe the solution you'd like
Record a screen cast video of the UI while the output is clicked on and off, and showing input LED changing color
Record a video of hardware while pressing button, showing output LED is changing.
Combines the two videos side by side, synchronized in time.
Record a simple voice-over with the screen cast explaining what is happening.
Start with no config and show led off and button not doing anything
Load config and then start clicking mouse and button.
Describe alternatives you've considered
One video showing both together in the same view.
Additional context
Will need some video editing tools and skills!

I'm having trouble doing a video screen cast grab on my pi ....


Feature: Add 2 phase commit to s3 plugin

Issue
2pc mechanism for s3 plugin.
Current implementation: s3 plugin writes to storage and commits.
Desired implementation: optional s3, that allows use 2pc in s3 and and other sources.
Solution
Create optional 2pc mechanism that commit to kafka.
Afterwards commits to other sources will be provided.
Kafka output plugin can be used to s3 plugin.

Why S3 plugin needs to write something to another destination? AFAIK convention is that there is one output plugin for one destination
If this PR is not a 2-phase commit we should not be using this term

I removed 2pc term to avoid ambiguity.


Quick Sort in Java

I would like to provide a solution for sorting via a quick sort algorithm in Java

sure! go ahead!!


Add @qicz to maintainers

Description:
After @qicz becomes eg reviewer, he continues to actively contribute feature/refactor/fixes and code reviews to eg. Also he is engaging to put EG in production and we recieved many valuable feedbacks from real production environment.
So I want to sponsor his maintainer membership, and hopes him can continuely contribute to eg and makes more values in new role.
PRs from him: https://github.com/envoyproxy/gateway/commits?author=qicz
cc @envoyproxy/gateway-maintainers

+1, he has definitely earned a spot in my opinion

cc @zirain @skriss, hey forks, it would be great to hear from you.

+1 from me


APIs which require PWSTR or PCWSTR cause build failure on net35

Actual behavior
Compile errors:

❌ CS0246 The type or namespace name 'ReadOnlySpan<>' could not be found (are you missing a using directive or an assembly reference?) in Windows.Win32.PCWSTR.g.cs, line 71
❌ CS0246 The type or namespace name 'Span<>' could not be found (are you missing a using directive or an assembly reference?) in Windows.Win32.PWSTR.g.cs, line 53

https://github.com/microsoft/CsWin32/blob/b050877b3bd4462aeb7f6020eb1a895f40269949/src/Microsoft.Windows.CsWin32/templates/PCWSTR.cs#L42-L45
https://github.com/microsoft/CsWin32/blob/b050877b3bd4462aeb7f6020eb1a895f40269949/src/Microsoft.Windows.CsWin32/templates/PCSTR.cs#L42-L45
Expected behavior
No compile errors because members are omitted when the required types are missing. This would be consistent with several other places, such as:
https://github.com/microsoft/CsWin32/blob/b050877b3bd4462aeb7f6020eb1a895f40269949/src/Microsoft.Windows.CsWin32/Generator.cs#L321-L323
Repro steps

NativeMethods.txt content:

CreateFile

FindFirstStream is also blocked by this.
Context

CsWin32 version: 0.1.560-beta and the previous three versions on nuget.org which I also tried
Target Framework: net35

netstandard2.0 is the lowest supported TFM. We do some limited testing on net40 but that's not fully supported either. Anything below the supported level is a "your mileage may vary" kind of thing.
We'll take PRs to make certain scenarios work better, if they don't add a lot of complexity and they come with tests for what you need to keep working.


[Stretch] mongodb dependencies

On Debian Stretch, mongodb packages are mongodb mongodb-server.

Maybe the stretch branch should be merged into master ?


docs: Automated Changelog Update for v5.0.0-beta5.26

copilot:all
Automated changes by create-pull-request GitHub action

🤖 Generated by lychee action
Summary

Status
Count

🔍 Total
1273

✅ Successful
369

⏳ Timeouts
0

🔀 Redirected
0

👻 Excluded
903

❓ Unknown
0

🚫 Errors
0

Full action output
Full Github Actions output


Wrap up initial data access refactor

Purpose
Relates to https://github.com/Breakthrough-Energy/PowerSimData/issues/552
Based on the changes introduced in the data_access_refactor feature branch, this contains bugfixes and some code cleanup. Note that this is separate from the integration of blob storage as a filesystem. I think once we can install that (requires dropping python 3.7) there will be some nice cleanup opportunities.
What the code is doing

Fix bugs encountered while launching simulations in a container and in preparing one on the server.
Remove the move_to method which is only being used for the scenario/execute list, and combine with push which is what is used for those files
miscellaneous simplification and removal of unused code

Testing
Ran a simulation in a container, and created/prepared one on the server.
Time estimate
20 min

When preparing the scenario from my machine I get:
>>> scenario.create_scenario()
CREATING SCENARIO: test | dummy1

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/scenario/create.py", line 116, in create_scenario
    self._scenario_list_manager.add_entry(self._scenario_info)
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/csv_store.py", line 18, in wrapper
    checksum = self.data_access.checksum(self._FILE_NAME)
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/data_access.py", line 289, in checksum
    return self.fs.checksum(full_path)
AttributeError: 'MultiFS' object has no attribute 'checksum'

Now:
>>> scenario.create_scenario()
CREATING SCENARIO: test | dummy1

Transferring ScenarioList.csv from ssh_fs
100%|#####################################################################################| 669k/669k [00:00<00:00, 3.19Mb/s]
--> Adding entry in ScenarioList.csv
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/scenario/create.py", line 116, in create_scenario
    self._scenario_list_manager.add_entry(self._scenario_info)
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/csv_store.py", line 20, in wrapper
    self.commit(table, checksum)
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/csv_store.py", line 76, in commit
    self.data_access.push(tmp_name, checksum, rename=self._FILE_NAME)
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/data_access.py", line 294, in push
    self._check_file_exists(backup, should_exist=False, mode="w")
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/data_access.py", line 183, in _check_file_exists
    raise OSError(f"{path} already exists on {location}")
OSError: ScenarioList.csv.temp already exists on ssh_fs

Couple things:

the .temp file should be deleted when we update the scenario list. not sure why that didn't happen so I did it manually.
based on the stack trace, i think you are on a previous version of the branch before I force pushed (it wasn't up very long, thought I would get away with that). don't think it would cause this particular issue, but still recommend doing a pull

I had done a pull but maybe somehow the .temp got left behind.
Now I see the exec_command is  missing for MultiFS.
Full stack trace:
>>> scenario.create_scenario()
CREATING SCENARIO: test | dummy2

Transferring ScenarioList.csv from ssh_fs
100%|#####################################################################################| 669k/669k [00:00<00:00, 3.04Mb/s]
--> Adding entry in ScenarioList.csv
Transferring ScenarioList.csv to server
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/scenario/create.py", line 116, in create_scenario
    self._scenario_list_manager.add_entry(self._scenario_info)
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/csv_store.py", line 20, in wrapper
    self.commit(table, checksum)
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/csv_store.py", line 76, in commit
    self.data_access.push(tmp_name, checksum, rename=self._FILE_NAME)
  File "/Users/kmueller/EGM/PowerSimData/powersimdata/data_access/data_access.py", line 313, in push
    _, _, stderr = self.fs.exec_command(command)
AttributeError: 'MultiFS' object has no attribute 'exec_command'

Deleting a scenario is still extremely slow. I will look through pyfilesystem source to see how it's iterating glob matches.

Deleting is much faster now. Thank you!


🗄🔧 Nim

Current Status

@battila7 will be taking lead on this!

Todo:

[x] 🏁 Fork the starter repo & post the link in this issue
[ ] 🔨 Implement all of Conduit's functionality per the spec & API
[ ] 🎨 Create logo for repo & update issue status (@ericsimons)
[ ] 👀 Move repo to main org & Peer review final codebase by admins/community (RFC)
[ ] 🎉 Tag v1 release and officially list it on the README!

If I have the time on the weekend, I'll start the implementation in Nim and then update this issue accordingly.
Not decided yet, whether to use Jester  or Rosencrantz.

@battila7 awesome!! I'm looking forward to seeing this come together :) Fork the starter repo and post the link in here whenever you have a chance & I'll update the issue status 👍

Created a logo that you can use for the readme in your repo:

@EricSimons Just forked the repo: Nim RealWorld

Concluding the experiences of the past two days:
Real World Nim Adventures

@battila7 I loved the medium post! Sad to hear you won't have enough time to finish it off :( Should we invite devs to come in & help?
PS - would love to interview you on Thinkster sometime about your experience building the Nim implementation :)

@EricSimons I will definitely continue the development, but not be able to dedicate a whole weekend to this project. It'll slow down a little bit but will be finished :)
Sounds like a great opportunity and honor, thanks! We should talk about the details after finishing the implementation, what do you think?

@battila7 sounds good to me! 👍

If you need any assistance feel free to ping me :D

Hello we are currently moving all work in progress to Github Discussions.
I'll close this issue by now, you can find instruction to open a discussion there : https://github.com/gothinkster/realworld/discussions/633
Thanks for your contribution !


Fix for #9629  sticky & off-canvas

I just checked this out and ran the visual test, and am still seeing the sticky disappear... @colin-marshall are you still looking at this?

ping @colin-marshall

Closing this as old WIP


The CSS file address imported by the component on demand is incorrect

[ ] I'm sure this does not appear in the issue list of the repository

Basic Info

Package Name And Version<EMAIL_ADDRESS>Framework version: "vue": "^3.2.37"
Browser: chrome<IP_ADDRESS>

Extra info
Internal server error: Failed to resolve import "/Users/xiumengwei/Desktop/code/deepfinance/deepfos-login-chrome/node_modules/.pnpm/@arco-design web-vue@2.34.0_vue<EMAIL_ADDRESS>from "src/components/Login.vue". Does the file exist?
What is expected?
期望能正确的引入并且显示
Steps to reproduce
我正常引入a-input-password组件，然后就报错了。报错信息是css文件引入的位置不正确

真实路径应该是：
node_modules/.pnpm/@arco-design+web-vue@2.34.0_vue<EMAIL_ADDRESS>
可能是我使用方式不对，没注意看文档


Services Index

cip: 17
title: Services Index
author: Michael Sena (@michaelsena), Joel Thorstensson (@oed)
status: Draft
category: Standards
type: RFC
created: 2020-05-22
requires: Tile Doctype (CIP-8), StringMap (CIP-9)

Simple Summary
Services Index stores a list of documents which contain information about a DID's preferred services, such as notifications or backup.
Abstract
Add more detail here.
Services Index is a subdirectory of the Identity Index (IDX) (CIP-11) and is often linked from the Root Index (CIP-12).
Motivation

Identity-centric services are an important aspect to the user-centric web, where users employ/permission specific services to act on their behalf and any application can make use of these services
These services need to exist independent from any single application or platform
There will be many different types of services lists
There should be a standard interface for apps to discover services lists so they can locate and interact with these services

Specification
The Services Index specification consists of a doctype, schema, table, and tags.
Doctype
Services Index is a Tile Doctype (CIP-8).
Schema
Services Index utilizes the String Map (CIP-9) schema, which simply stores a list of strings which map to other strings. In this context, the key string should represent the category of service, and the value string should represent a document that stores a list of services within that category. A reference to this schema should be included in your Services Index document when it is created.
Table
The Services Index Table (to be created at a later time) contains the standard set of properties that may be contained in any given Services Index. New properties can be added to the table by following the steps below. Additional properties not found in this table may be stored in any Services Index, however they may be less interoperable since others may not know what they represent. Here are some common examples of properties stored in the Services Index:

notifications: the DocId of a Notifications Service List, which contains a list of notification services used by this DID
backup: the DocId of a Backup Service List, which contains a list of data backup services used by this DID
consent: the DocId of a Consent Services List, which contains a list of privacy management services used by this DID

How to add a new property to the Services Index Table

Choose a unique, descriptive property name.
Add a description for your property.
Submit a PR to the CIP repository updating the Services Index Table with your property.
Mention the authors of this CIP in the comments of your PR.

Tags
When creating a Services Index document, add ServicesIndex to the tags field.
Example
An example Services Index document.
"doctype": "tile"
"schema": "<insert canonical schema for String Map>"
"tags": ["ServicesIndex", "StringMap"]
"content": {
  "notifications": "ceramic://bafyljsdf1...",
  "backup": "ceramic://bafysdfoijwe2...",
  "consent": "ceramic://bafysdfoijwe3..."
}

Suggested Usage
Root Index: Services Index provides a directory of services lists, however services are just one type of resource that can be associated with a DID. The Root Index (CIP-12) provides a top-level root directory for resources, and can contain a property called services which stores a link to a Services Index document. The recommended path for mapping from a DID to the Services Index is: DID/Root Index/Services Index.
Rationale
Extensibility & Flexibility: It is impossible to predict all of the types of services that need to be associated with any particular DID. Therefore Services Index was designed to be an infinitely extensible directory that can support any number of services lists.
Decentralization & Trust: Services directory information is data that needs to be globally-available, censorship-resistant, and live permissionlessly in the public domain (not on any single server). Additionally this information should be owned by a DID and will need to be updated from time to time. These requirements make Ceramic the most appropriate platform for publishing this content.
Implementation
String Map Schema: Find the String Map Schema here.
Services Index Table: Find the table containing standard Services Index properties here (to be updated when available).
Libraries: Not yet available.
Copyright
Copyright and related rights waived via CC0.

Stale, closing.


refactor: retrieve necessary transactions from address priority queue

This change is

Codecov Report
Attention: Patch coverage is 92.85714% with 2 lines in your changes missing coverage. Please review.

Project coverage is 76.41%. Comparing base (af02251) to head (d5b833a).

Files
Patch %
Lines

crates/mempool/src/mempool.rs
92.30%
2 Missing :warning:

Additional details and impacted files
@@                      Coverage Diff                      @@
##           ayelet/mempool/nonce-list     #254      +/-   ##
=============================================================
+ Coverage                      76.04%   76.41%   +0.37%
=============================================================
  Files                             24       24
  Lines                            956      971      +15
  Branches                         956      971      +15
=============================================================
+ Hits                             727      742      +15
- Misses                           184      185       +1
+ Partials                          45       44       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Replace assert w/ expect, require w/ import, equality w/ strict equality

Chrome on Linux against a local TA instance:
123 passing (467.00s)
55 skipped
3 failing

Firefox on Linux against a local TA instance:
118 passing (797.40s)
55 skipped
11 failing

@mahmoodkhan If you have time to merge this today, that would be great. It queues up some additional test writing.

🤦♂   Unclosing.


Integration with Piranha CMS

Hi there @thiennn! I'm the lead developer for @PiranhaCMS, an open source CMS for .NET that's been around since 2011. In december last year I released the completely rewritten version for .NET core (4.0) and I'm currently working on version 4.3.
I would be really interested in providing a good integration with you E-commerce solution as this would be a perfect fit for both sides :) I haven't had time yet to look at the architecture of SimplCommerce, but if you think it sounds interesting I'd be more than happy to have a discussion regarding how we could integrate the systems in the best possible way!
Regards!

Sorry I haven't had time to look at PiranhaCMS and have no idea how it should be integrated.

I understand that, I have only had the time to glance at the code for SimpleCommerce, but for starters.
Permalinks
By looking at your demo site I can see that you intercept requests for (as an example):

/category-slug
/product-slug
/cart
/login
/register

and probably dozens of other pages I'm not including here. The main pages for browsing the shop itself is obviously /category-slug & /product-slug.
A key factor to make a nice integration with any CMS would probably be to be able to configure a root prefix for the routing of SimplCommerce, for example positioning all routes below /products/ or /shop/. This might be possible already, but if this exists then it would be easy to put the rest of the website content on other routes.
Also, is the web application part of SimplCommerce placed in an Area, or do we run the risk of having name collisions on shared views when running it in the same application as the CMS?
Just some starting questions that came to mind :)

And to clarify how Piranha works. The entire routing is basically just a couple of middleware components that checks the incoming requests, and if they exist in the CMS it just rewrites the request to the appropriate route. After that it's just plain MVC

Hello gents! Any movement with this? I come from NopCommerce background, where I have developed a custom CMS (private unfortunately) on top of it. I have another big project coming up, and been looking around and this 'marriage' would be awesome solution for it. Happy to contribute once the ball gets rolling.

I haven’t received any feedback so I guess I’ll just have to try it out. Problem is I’m knee deep in finishing up the 4.4 release, but after that I could absolutely put some effort into this!

In SimplCommere, routing can be categorized into 2 groups:

Static routes: archived by adding Route attribute on Actions or Controllers of fall to default route
Dynamic routes: such as categories, products,..... archived by https://github.com/simplcommerce/SimplCommerce/blob/master/src/Modules/SimplCommerce.Module.Core/Extensions/UrlSlugRoute.cs

The dynamic route is executed first, if there are no item matched then it will continue to go to static routes, if static routes not matched then fallback to default.

Thank. Like I said I'd be more than happy to try it out. However I'd like to know some more from @praveensewak & @psijkof how an ideal integration would look like. Is it sufficient to have Piranha & SimplCommerce running in the same application, with SimplCommerce on a certain route prefix, and have two different admin interfaces?
Or are you hoping to achieve a tighter integration, like presenting products from SimplCommerce in a Piranha page (or the other way around, loading up CMS-data from Piranha into the SimplCommerce pages).
Regards

Just started using Piranha and really like it, would be great to have an integrated Ecommerce platform, please let me know if this progresses

@tidyui @thiennn the integration will be cool, but:
1- How the integration will be
2- What could be integrated
but I think Piranha CMS may use SimplCommerce as e-Commerce module

@praveensewak @tidyui I am also going to integrate nopcommerce and piranha. Did any update on this discussion happen?

@tidyui , hi. we are about to use piranha cms in our company. is it possible to add something like shopify?


Added changelog, Docco and create-a-release. Updated deps, travis, gi…

…tignore and readme.

:+1:


feat: Support for multiline comments.

Ability to treat /* ... */ java like comments as comments in Tree-Sitter. This follows multiline comment and groovydoc. See http://groovy-lang.org/syntax.html#_multiline_comment.

The check use https://github.com/Decodetalkers/tree-sitter-groovy/blob/master/package.json#L7 pretty to lint, so just make format the ci will be fine

@Decodetalkers added tests and fixed lint.

LGTM! Then can you help me update the new hight sheme to nvim-treesitter?

Sure. Just opened: https://github.com/nvim-treesitter/nvim-treesitter/pull/5076


Install fluentd plugins

I would like to install the following fluentd plugin https://github.com/libresh/fluent-plugin-haproxy.
The doc mention that the plugins can be add to the following directory /etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.d/.
Is there any supported and documentd way to run a *gem install <PLUGIN> as described in the fluentd documentation.
https://docs.fluentd.org/deployment/plugin-management

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

ID: c33024cd-bda9-6ae5-3004-149a5665ae3c
Version Independent ID: 41bf6020-a6b8-f98c-7a59-7fa8bdfa4f70
Content: Collecting custom JSON data in Azure Monitor - Azure Monitor
Content Source: articles/azure-monitor/platform/data-sources-json.md
Service: azure-monitor
Sub-service: logs
GitHub Login: @bwren
Microsoft Alias: bwren

@git001 Thanks for your comment. We are actively investigating and will get back to you shortly.

@git001 Apologies for late response. The document only articulates on how to collect data from custom data sources like Fluent D plugins. As there are more than 300+ plugins, we don't provide any suggested way to install the plugins.
As there are no further document changes, we will close the issue for now. If there are further questions , please revert and we will be glad to assist you.


AOFSHRINK crashes when using replication on Windows.

Happening on tile38-1.17.0-windows-amd64 when replicating with 1 server following, different data directories.
Followed guide here: https://tile38.com/topics/replication/
Possibly related to #211
shrink backup fatal operation: rename data1/appendonly.aof data1/appendonly.aof-bak: The process cannot access the file because it is being used by another process.
Crash reproducible on either server, if no replicating servers are connected then it works.
I don't think that this is by design?
https://tile38.com/commands/aofshrink/

That's definitely not by design.
Yes, I'm also thinking that's it's related to #221
Do you happen to have the crash log?

Hi, thanks for the great product!
I am also having this problem running the latest version (1.24.2) on Windows 10.
If I have 2 instances of tile 38 running, one on port 9851 and the other 9852, I then do:
tile38-cli.exe -p 9852 FOLLOW localhost 9851
tile38-cli.exe -p 9851 AOFSHRINK
The second command will crash the 9851 instance with the following error:
shrink backup fatal operation: rename data/appendonly.aof data/appendonly.aof-bak: The process cannot access the file because it is being used by another process.
It appears that the 9851 process has 2 handles on the file, presumably one for writing the commands and the other for serving the follower. My guess is that when I perform the AOFSHRINK command at least one of these handles has  lock on the file and the thread trying to perform the shrink throws an exception.

I am working around it at the moment by swapping the leader and only performing the shrink operation on the followers. However, I have seen a rare instance when the server still seems to have the lock on the file when it stops being the leader and begins to follow another server instance and then it crashes too on a shrink request. I haven't found any reliable reproduction steps just yet for that issue.
Based on this comment it seems like once the error is raised, exiting the process is by design:
https://github.com/tidwall/tile38/blob/master/internal/server/aofshrink.go#L267
I was wondering if it would be possible to check if the file is locked and just fail the shrink operation rather than terminating the whole application?
I see you requested a crash log above, I'm happy to get that if you are unable to reproduce the problem if you can point me to the steps. Running the server with -vv just produces the same output as listed above.
Thanks, Michael

Hi, thanks for the detailed report.
The error is puzzling. I know that Windows does not like it when opened files are renamed or overwritten, but both the "data/appendonly.aof" and "data/appendonly.aof-bak" are closed immediately prior to the Rename call.
So that has me thinking that the "data/appendonly.aof" file is opened elsewhere. Either in a background routine or by a process external to Tile38.
I'll have to poke around the code to learn more.

You are right about the multiple file handles and I addressed the issue in #611


Bump Version

Bumps the version to 5.5.1
pom.xml and readme updated (including the install command)
Tests were local successful and it works in my test environment

@jlinn Just a bump on getting this merged! Our cluster upgrade is blocked on this :(

@jalaziz You can use the release inn my fork. There is a compiled version with the version bump

@mathewmeconry I'd love to, but we're using a hosted provider and they're requesting that the plugin be updated on the original repo 😞

Thanks for the update!

v<IP_ADDRESS> has been released. Apologies for the delay.


Terminal output messes up after VScode window resizing

Issue Type: Bug

Print something on terminal. I have configured my VSCode to use Anaconda's python terminal.
Resize VSCode window (I did by dragging the title bar from maximized position).
Resize the VSCode window to maximized.
Voila the text in the terminal is messed up! See attached screenshots for reference.

VS Code version: Code - Insiders 1.38.0-insider (ada79d72be36ecbfed6f88bb16edcc5cc3f5c2a8, 2019-08-21T13:26:22.457Z)
OS version: Windows_NT x64 10.0.17134
Extensions (8)

Extension
Author (truncated)
Version

jupyter
don
1.1.5

gitlab-workflow
fat
2.1.1

code-runner
for
0.9.14

latex-workshop
Jam
8.0.7

nbpreviewer
jit
1.2.2

r
Mik
0.0.6

python
ms-
2019.8.30787

remote-wsl
ms-
0.39.3

This looks like an issue with our old terminal backend "winpty", going forward we are focusing our efforts on the new backend "conpty" which is build by the Console team at Microsoft and should fix many issues with the terminal under Windows. You can read more about getting ConPTY here.
/duplicate https://github.com/Microsoft/vscode/issues/45693


Timeout error

Sometimes sup3 throws timeout errors, even though aws s3 cp command (from AWS CLI) is successful.

Hey!
Thanks for the report.
Can you give any more information on when it happens?
Is it intermittent? Constant? Some endpoints and not others? Does retrying generally work?


arch: arm: mpu: enforce power-of-two alignment only for user mode

This commit modifies how the requirement for power-of-two
alignment for ARMv7-M MPU regions is enforced, making the
requirement be enforced only if building an application
with support for user Userspace feature.
Signed-off-by: Ioannis Glaropoulos<EMAIL_ADDRESS>

Codecov Report

Merging #13483 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #13483      +/-   ##
==========================================
+ Coverage    52.5%    52.5%   +<.01%
==========================================
  Files         318      318
  Lines       46526    46526
  Branches    10754    10754
==========================================
+ Hits        24428    24429       +1
  Misses      17198    17198
+ Partials     4900     4899       -1

Impacted Files
Coverage Δ

arch/posix/core/posix_core.c
91.91% <0%> (+1.01%)
:arrow_up:

Continue to review full report at Codecov.

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

What problem does this patch solve? In fact this really doesn't seem correct.
It's not like disabling userspace changes the fact that MPU regions have to be power of two size/aligned.

What problem does this patch solve? In fact this really doesn't seem correct.
It's not like disabling userspace changes the fact that MPU regions have to be power of two size/aligned.

@andrewboie this patch attempts to solve the problem of wasting stack area for threads. E.g. a Thread that needs 768, does not need to move up to 1024 bytes.
But I believe, I do see your concern:
The alignment of start and size with the minimum region size (32) is still enforced. So, we won't have an issue with MPU stack guards.
The only remaining problem would be the sizing of fixed regions, e.g. NO_CACHE, right? But that we could fix directly in the linker...

@andrewboie this patch attempts to solve the problem of wasting stack area for threads. E.g. a Thread that needs 768, does not need to move up to 1024 bytes.

But I believe, I do see your concern:

The alignment of start and size with the minimum region size (32) is still enforced. So, we won't have an issue with MPU stack guards.

I just feel like this isn't quite the right solution.
Can't we make the stack rounding up logic conditional on CONFIG_USERSPACE instead? And not MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT?
My concern is that MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT describes how the hardware functions, it's not a policy setting.

@andrewboie this patch attempts to solve the problem of wasting stack area for threads. E.g. a Thread that needs 768, does not need to move up to 1024 bytes.

But I believe, I do see your concern:

The alignment of start and size with the minimum region size (32) is still enforced. So, we won't have an issue with MPU stack guards.

I just feel like this isn't quite the right solution.
Can't we make the stack rounding up logic conditional on CONFIG_USERSPACE instead? And not MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT?
My concern is that MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT describes how the hardware functions, it's not a policy setting.

Yes, we could do that.

@andrewboie, I just had a more careful look into this:
So:

My concern is that MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT describes how the hardware functions, it's not a policy setting.

This is absolutely correct.

Can't we make the stack rounding up logic conditional on CONFIG_USERSPACE instead? And not MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT?

This is already the case :)
Now, I suppose, @carlescufi, the remaining problem for you is that even if one wants to create a Supervisor thread (when building with CONFIG_USERSPACE), they would still have to round-up the size to the next power of two. That's the case, even if that thread has no intention of switching to user mode, ever (that should be the case for the BT stack threads).
@andrewboie how could we fix this issue? I.e. have an option at compile time to define thread stacks for supervisor-only threads that do not need to respect the power-of-two rounding up, but these thread shall never drop to user mode?

This PR is invalid as is - we should not merge at current state.

@andrewboie how could we fix this issue? I.e. have an option at compile time to define thread stacks for supervisor-only threads that do not need to respect the power-of-two rounding up, but these thread shall never drop to user mode?

I think we need an alternate set of stack declaration macros for threads that will never drop to user mode. This is useful on x86 too as we'll save memory that would normally be allocated for the supervisor mode stack.
This is out of scope for 1.14 though.

@andrewboie So if we add separate APIs and they are misapplied by the user, at worst we waste more memory, correct?

@andrewboie So if we add separate APIs and they are misapplied by the user, at worst we waste more memory, correct?

They would either waste memory, or get a fatal error upon dropping to user mode when using a stack object that isn't designed for it, depending on the type of mis-match.
I opened #13637 for that.
Closing this, since it's not valid.


cardano-wallet-jormungandr.exe not shutting down correctly after 1h on Windows when not connected

Context
When testing with a development build of Daedalus on Windows I was unable to complete the bootstrap phase within 1h which lead to the following error in node.log:
Waited too long for Jörmungandr to become available. Giving up!
Following this the Daedalus client remains open as does the cardano-wallet-jormungandr.exe process; jormungandr.exe appears to be terminated however
node.log

Information
-

Version
2020.1.14

Platform
Windows 10

Installation
https://buildkite.com/input-output-hk/daedalus/builds/10375

Steps to Reproduce

Install the Windows ITN build of Daedalus from the link above
Leave client to sync (note with unstable\unreachable peers this did not complete within 1 hour

Expected behavior
When the 1 hour mark is reached the client is not correctly synchronized the wallet backend process should give up and terminate relevant processes.
Actual behavior
The jormungandr node appears to be terminated however the cardano-wallet process and daedalus process is still active.

Resolution

QA

node.log

Let's wait for Daedalus to integrate cardano-launcher into itn_rewards_v1 then see if this behaviour still occurs.

Plan has changed and there shouldn't be any more release of Daedalus on the ITN. The new launcher will only serve the Haskell cardano-node. So this issue doesn't apply anymore. Closing.


Installation instructions are incorrect

The suggested installation commands probably aren't correct:
$ tar -xf /your/download/location/dolt-darwin-amd64.tar.gz -C /usr/local/bin
$ ln -s /usr/local/lib/dolt /usr/local/lib/dolt/bin/dolt

The fist command creates the directory /usr/local/bin/dolt-darwin-amd64. Given that, the second command doesn't make sense.

@jkodumal thanks, good catch. We fixed it.

Fixed by #108


This again... Uncaught TypeError Undefined is not a function and another one...

I am fully aware this is like the third time this has been brought up (#14 #13)
However, I am still getting this error.
Oh, and it seems that the only command I can use it pwd. Everything gives me a /bin/sh enoent error...
(full traceback)
TypeError: undefined is not a function
  at QuantumShellModel.module.exports.~cd (C:\Users\Albert\.atom\packages\quantum-shell\lib\builtins\sh.coffee:53:47)
  at QuantumShellModel.process (C:\Users\Albert\.atom\packages\quantum-shell\lib\quantum-shell-model.coffee:245:41)
  at HTMLButtonElement.<anonymous> (C:\Users\Albert\.atom\packages\quantum-shell\lib\quantum-shell-controller.coffee:94:26)
  at HTMLInputElement.subscriptions.add.atom.commands.add.quantum-shell:submit (C:\Users\Albert\.atom\packages\quantum-shell\lib\quantum-shell-controller.coffee:128:60)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (c:\Users\Albert\AppData\Local\atom\app-0.211.0\resources\app.asar\src\command-registry.js:241:29)
  at c:\Users\Albert\AppData\Local\atom\app-0.211.0\resources\app.asar\src\command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (c:\Users\Albert\AppData\Local\atom\app-0.211.0\resources\app.asar\node_modules\atom-keymap\lib\keymap-manager.js:520:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (c:\Users\Albert\AppData\Local\atom\app-0.211.0\resources\app.asar\node_modules\atom-keymap\lib\keymap-manager.js:355:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (c:\Users\Albert\AppData\Local\atom\app-0.211.0\resources\app.asar\src\window-event-handler.js:180:20)

O wait! I think I found something. Looking at the developer console I see this...
ENOENT: no such file or directory, scandir 'C:\Panda3D-1.9.0-x64\bin:\usr\local\bin'
WAIT WHAT! When did \usr\local\bin get into my PATH? (/usr/local/bin is not normally in my path)
(If you couldn't tell by the traceback, I'm on Windows 8.1)

Ok, deleted some deprecated packages, but I still can't run cd

This is related to a refactoring of the cd builtin in the last version, which now relies on UNIX like file permissions to check if a user has the proper clearance to enter a directory (It's much more robust this way). Unfortunately, this approach doesn't work on windows like the old one did and I didn't realize I had so many windows users. I will try to fix this soon, however it may be over a week before I have time.
Also, this is more related to #16 than #13 and #14. uncaught TypeError is pretty broad, and I've found that Atom isn't very good at detecting if an error has really already been reported. Sometimes while I'm developing, I create a new error that could not possibly have already been reported, and it still asks me if I want to view the issue on github. So whenever you run into a problem don't hesitate to open a new issue and I'll get to it as soon as I can.

Ah, that's fine. I'm not usually on Win, but it is annoying when I am :/

This issue should be resolved as of v-0.7.0, please let me know if any problems persist or there are any other issues!


Add support for document links in description in item sheets

In GitLab by @arbron on Oct 4, 2022, 18:52
Summary
Currently Foundry @-links (aka @UUID[…]) don't display properly in descriptions on item sheets because TextEditor.enrichHTML isn't called on any of the descriptions before they are displayed.
Labels (do-not-change)
/cc @Asacolips

In GitLab by @Asacolips on Oct 9, 2022, 19:22
Closing as a duplicate of #78. This is resolved in 4604c6f and will be included in release 0.6.1.


Added hindi android development course

What does this PR do?
Added hindi android development course
Description
Added hindi android development course for users to learn
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

please resolve conflicts.


CSV allowmissing as optional

Adressing Issue #14

I assume this does not address the load_timeseries_data allow missing warnings?


[CT-1059] Support the location option to create schema

Describe the feature
BigQuery provides the location option to specify the location of a BigQuery dataset when creating a schema.
https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#schema_option_list
{{
  config(location="US")
}}

Describe alternatives you've considered
We can already specify the default location with a dbt profile. But,
Additional context
NA
Who will this benefit?
dbt users with BigQuery can deal with multiple locations of BigQuery datasets with a single dbt profile.
Are you interested in contributing this feature?
I will work on it.

(@dbeatty10 Picking this one up since I realize it's quite similar to https://github.com/dbt-labs/dbt-bigquery/issues/289, which I just triaged yesterday)
@yu-iskw If I understand right, the location property needs to be configured on the dataset (schema) when it is initially created. Specific tables within the same dataset cannot be configured with their own custom locations, right? (It looks like that's what https://github.com/dbt-labs/dbt-bigquery/pull/275 would do, by configuring at the table/model level.)
Two thoughts here:

As I outlined in https://github.com/dbt-labs/dbt-bigquery/issues/289#issuecomment-1237948296, it is now possible to reimplement dbt-bigquery's create schema behavior by implementing your own custom create_schema macro. However, there's no good way to supply schema-level configuration in dbt today. I just opened a dbt-core discussion to think more about this: https://github.com/dbt-labs/dbt-core/discussions/5781
My sense is that BigQuery does not support cross-region querying, with the sole exception of copying datasets from one region to another. There are location options which are naturally multi-region, but in those cases you don't need to have different location. This is why we support location in the connection profile, to set the single location for use during the entire dbt invocation—whether a single- or multi-region location, it doesn't matter. Could you say more about the use case for configuring datasets with different locations, within the same project / invocation, given that limitation? Of course, it's possible that my understanding is incorrect or out of date!

Hi @yu-iskw,
I am closing this issue and the associated PR.
As @jtcohen6 sensed, it looks like moving data across locations in BigQuery is currently an EL thing, not a T thing. And dbt is all about that T. Please chime in if you feel this is not a fair assessment - or if the situation changes.


axisLabel.renderMode: 'html'

What problem does this feature solve?
Right now it's impossible to format the axisLabel in html.
Example:
axisLabel: {
  formatter: value => {
    return `

      ${value}

`
  }
}

This doesn't work currently.
What does the proposed API look like?
Like for tooltip:
axisLabel: {
  renderMode: 'html',
  formatter: value => {
    return `

      ${value}

`
  }
}

If you need a workaround now, you could use the rich option

documentation : https://ecomfe.github.io/echarts-doc/public/en/tutorial.html#Rich Text
example: https://ecomfe.github.io/echarts-examples/public/editor.html?c=pie-rich-text

var weatherIcons = {
    'Sunny': './data/asset/img/weather/sunny_128.png',
    'Cloudy': './data/asset/img/weather/cloudy_128.png',
    'Showers': './data/asset/img/weather/showers_128.png'
};

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value',
        axisLabel: {
            formatter: '{a|}{value}',
            rich: {
                a:{
                    backgroundColor: {
                        image: weatherIcons.Sunny,
                    },
                    height: 40,
                    color: 'red',
                }
            }
        }

    },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'line'
    }]
};

@sxmpasch Thanks for the quick reply.
In my case, the urls are not static. I get them dynamically with the value of the label.
So I would need something like
axisLabel: {
  formatter: '{a|}{value}',
  rich: value => ({
    a:{
      backgroundColor: {
        image: `https://myapp.com/assets/images/${value}.png`,
      },
      height: 40,
      color: 'red',
    }
  })
}

Which is not possible if I read the doc correctly.
Please let me know if you have any other workaround. :)

@sxmpasch I made it work by

using the formatter callback function to access the current value
generating a style for each value

axisLabel: {
  formatter: value => `{${value}|} ${value}`,
  rich: {
    ...(values.reduce((obj, value) => {
      obj[value] = {
        backgroundColor: { image: `https://myapp.com/assets/images/${value}.png` },
        height: 20,
      }
      return obj
    }, {})),
  },
}

Keeping the issue open in case someone wants to implement the renderMode html. ;)

axisLabel does not support HTML rendering. Using rich is correct.

formatter的问题解决了
//变量
let companyScore = 40
let companyLevel = '优'
//富文本rich使用
formatter: [
  `{a|`+companyScore+`}`,
  `{b|`+companyLevel+`}`,
].join('\n'),
rich: {
  a: {
    color: 'red',
    lineHeight: 10
  },
  b: {
    color: 'green',
    fontSize: 32
  },
},

styling xAxis chart images
I used this solution to render images and xaxis label for my chart, but i want to make images rounded , and i can't style them with the regular borderRadius here , nothing happens.
anyone have any solution for this  ?


Bug in 1.6.8 version

I am currently using this tool to convert FGD DEM to Tiff file. However, I encounter the issue in  1.6.8 version.
For the same dataset, when I use 1.6.7 version, I can convert without any problems. However, when using 1.6.8 version, I got the message "FG-GML-5339-57-49-DEM5A-20161001.xml projection is different, Exit this program", therefore, the process is canceled.
Here is the list of my dataset: (Downloaded from https://fgd.gsi.go.jp/)
FG-GML-5339-57-DEM5A.zip
FG-GML-5339-67-DEM5A.zip
FG-GML-5340-50-DEM5A.zip
FG-GML-5340-51-DEM5A.zip
FG-GML-5340-60-DEM5A.zip
FG-GML-5340-61-DEM5A.zip

I fix it ver 1.6.9.
This was caused of  data files difference of this line.
<gml:Envelope  srsName="fguuid:jgd2011.bl">
Some files space is one or two between "Envelope" and "srsName".
So I fix it to read only  "jguuid:jgd"
Thank you for your report.


The challenge answer does not get written to .well-known/acme-challenge

I'm following the tutorial at https://commaster.net/content/how-setup-lets-encrypt-apache-windows, and I am using letsencrypt-win-simple version 1.8.0 (and Apache 2.4.4)
When running the command
letsencrypt.exe --manualhost <domain-name> --webroot <document-root> --test

In the terminal I get this message,
Authorizing Identifier romanel.bible.ch Using Challenge Type http-01
Writing challenge answer to C:\wwwintranet\.well-known/acme-challenge/...

but there is no file written in the folder .well-known/acme-challenge, and as a consequence,
The ACME server was probably unable to reach http://romanel.bible.ch/.well-known/...

I tried running the script with administrative privileges, but it did not make a difference. So it seems not to be a permission issue.
What could be the problem ?

Looks fine from here as far as I can tell. I'd need a real file name to check the content type.
Note that letsencrypt-win-simple tries the URL that LE will be checking so it must be available to the web server at the correct public name too.
You can test from outside yourself with http://www.infobyip.com/httpservertest.php
HTTP/1.1 404 Not Found
Date: Sat, 25 Mar 2017 09:10:29 GMT
Server: Apache
Content-Length: 268
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<title>404 Not Found</title>

Not Found

The requested URL /.well-known/acme-challenge/data_tests_data_tests_data_tests_data_tests was not found on this server.

HTTP/1.1 301 Moved Permanently
Date: Sat, 25 Mar 2017 09:13:33 GMT
Server: Apache
Location: http://romanel.bible.ch/.well-known/acme-challenge/
Content-Length: 259
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 403 Forbidden
Date: Sat, 25 Mar 2017 09:13:33 GMT
Server: Apache
Content-Length: 229
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<title>403 Forbidden</title>

Forbidden

You don't have permission to access /.well-known/acme-challenge/
on this server.

Thanks. In fact, I changed to ACMESharp, because I could not get running it with win-simple.

This is happening to me too. I tried manually putting a dummy file in that folder and I can access it on a browser. So possibly, it's not writing anything to that folder. Any idea why and how to fix this?

fyi the recommended method of authorization now with IIS is to use "SelfHosting" mode, which doesn't change anything on your local IIS configuration (including creating/writing into the .well-known directory). It uses .NET to hook into the port 80 binding and serve a webserver just for the duration of the authorization.
I recommend you try it out and open a new issue if you run into problems.

I am using node js on Windows, not IIS. Manual host name and self-host.

then i suggest you open a new issue with details on your setup. I believe there is a flag to output debug messages which should be helpful


[WIP] ci/github: Improve CI env

merge docker cache into env
fix env source
allow ci to be skipped
only fetch required git depth
print some env vars

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

pre/postsubmit condition is wrong for fetching images

pushing through to (hopefully) fix CI


Add validator/validator

Helps you catch unintended mistakes in your HTML, CSS, and SVG content

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md

I am:

[x] Suggesting edits to an existing topic or collection
[ ] Curating a new topic or collection
[ ] Unaffiliated with the project (not self-promoting as e.g. a maintainer, creator, contractor or employee)

Note: I am actually the maintainer for the validator/validator project
EDITING AN EXISTING TOPIC OR COLLECTION
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288)
[x] Content (and my changes are in index.md)

Please explain why these changes are necessary:
The Nu Html Checker is a static-analysis tool intended to help Web developers catch unintended mistakes in their HTML, CSS, and SVG content that might cause problems in the behavior of their Web applications, or performance problems, or usability problems.

Dupe of #257. Closing, thank you!


Small gaps near edge of tiles

This is most likely because there are some really short lines near the edges that get reduced when polygon borders are simplified.
Fix: Fix the lines along the edge in place so they can't be simplified away. Do this by intersecting the geometries with the tile border so they are considered a boundary.

Moved to https://github.com/rainflame/geopolygonize/issues/2