Multi-file Breakpoint

Need to enable breakpoints in imported files/schemas.
A good schema for testing this will be PCAP as it imports a schema from the same directory as well as the schemas for ethernetIP.
For this item to be completed you should be able to set a breakpoint in every .xsd file being imported by a schema and the breakpoints are hit during debug.

Example if you put breakpoint in every .xsd file in the PCAP and ethernetIP schema repos. When you debug the breakpoints in every file should be hit

Is this the follow-on issue from #54 where breakpoints from schemas loaded via classpath aren't working?

Yes. #54 was dealing with making sure that when a schema tried importing other schemas. This was done with the new launch config variable daffodilDebugClasspath that will add the necessary jar files/schema files to the classpath so they can be imported.
However, even though we can now get other schemas imported whenever a break point is set in an imported schema it does not get hit by the debugger. Based on output from the debugger it does seem to be setting the break point but just doesn't seem to stop at it.

However, even though we can now get other schemas imported whenever a break point is set in an imported schema it does not get hit by the debugger. Based on output from the debugger it does seem to be setting the break point but just doesn't seem to stop at it.

Cool, thanks, that's what I thought. I suspect the path-matching of the breakpoint handling isn't attuned to whatever representation is used for classpath files, which sounds obvious but I'm writing it anyway.

You actually don't need to have the jar in the class path if you have something like this it should also work
"daffodilDebugClasspath": "/FULL/PATH/TO/dfdl-ethernet/src/main/resources:/FULL/PATH/TO/dfdl-pcap/src/main/resources"

You actually don't need to have the jar in the class path if you have something like this it should also work
"daffodilDebugClasspath": "/FULL/PATH/TO/dfdl-ethernet/src/main/resources:/FULL/PATH/TO/dfdl-pcap/src/main/resources"

Ah, that's cool, one can have both a directory with files and a jar file in that classpath 👍 . However, this only makes it possible for the Daffodil running in the debugger process to load the imported schema, not for VS Code to "follow links" from the main schema to the imported schema, like via Cmd-click. We'd have to teach VS Code how to navigate those references explicitly, since a reference like /com/blah/foo.schema might actually be on some directory path /somewhere/else/com/blah/foo.schema.
It may be possible to use the DAP protocol's LoadedSource functionality to have the Daffodil debugger be the source of truth (content) for imported schema that aren't necessarily directly available as files (and may be in jar files, etc.), but this still doesn't solve the VS Code navigation issue.

I'm ok with a slighly inconvenient "feature" that requires an extra setup step so that schemas become available to the debugger.
For example in IntelliJ and Eclipse, if you want to be able to step into source code of a java/scala library, there has to be source-jar info associated with the jar.
For eclipse, this requires the extra 'sbt eclipse' step, which explicitly creates a classpath XML file which tells eclipse where these source-jars are and what the classpath is. Not sure how intelliJ discovers these jars, but it doesn't require an explicit step. It must be just searching for them wherever it finds the regular library, and using if found.
I can even put breakpoints in the libraries based on java/scala source code. But I can't edit them.
So my suggestion is maybe investigate how VSCode for Java works with Java source code for external libraries. How we do it has to work alike (or so it seems to me).
Daffodil class path usage is really really similar in intention to how Java classpaths work. In fact some DFDL schema jars will include class files for User-defined functions and layering extensions and validators used by the schema, so Daffodil's jars really ARE java jars that are depending on java standard classpath behavior.

I found the source of the problem: the debugger code incorrectly assumes locations are within the initial schema file, not the actual file the debugger is processing. See https://github.com/apache/daffodil-vscode/blob/main/server/core/src/main/scala/org.apache.daffodil.debugger.dap/Parse.scala#L788. Instead we need to reference the current file via the SchemaFileLocation.uriString to compare it against the paths/URIs in the breakpoint list.

You actually don't need to have the jar in the class path if you have something like this it should also work
"daffodilDebugClasspath": "/FULL/PATH/TO/dfdl-ethernet/src/main/resources:/FULL/PATH/TO/dfdl-pcap/src/main/resources"

PSA: This works for schemas that only have files under src/main/resources, but as I discovered, the ethernet project specifically has some Scala files that are required for the schemas to work, so the ethernet project must be referenced as a packaged jar file.

Can you test adding /FULL/PATH/TO/dfdl-ethernet/src/main/scala to daffodilDebugClasspath to see if includes it? Just to be sure

Can you test adding /FULL/PATH/TO/dfdl-ethernet/src/main/scala to daffodilDebugClasspath to see if includes it? Just to be sure

I'm fairly sure that won't work, as that path contains .scala source files, not compiled .class files. One could point to the correct target path under the project directory, but it's probably simpler to build the jar that contains everything and point to that.

As mentioned above, the path to the location was incorrectly set to be the starting schema file, not the actual location the debugger is currently processing. I have a fix for that and will push a PR.
A related issue is that one way a user could navigate to an imported schema would be via the StepIn command, where the definition of the current entity was declared elsewhere. However StepIn is currently not implemented; see #5.
However, these fixes won't apply for schemas that are not directly available in the filesystem, i.e., schemas in included jar files. To handle that scenario I have an additional patch that changes the internal representation of a schema location from a (file) path to a URI, as schemas within an included jar file have URIs that begin jar:file:. However, to actually display the schema within the editor, since the content is within some jar file, we need to send LoadedSourceDAP events from our backend to VS Code when we notice any referenced schema outside of the initial schema. We can do this eagerly (scan the XML, etc.) or lazily (as the schema is processed we notify when a new schema is encountered. The editor then will request the source content, and the backend can send it (since we can access the data of the jar file on the classpath), and the editor will display the (read-only) content. Implementation-wise, we need to re-enable thesupportsLoadedSourcesRequest` initialization parameter that was disabled in #25, decide the schema source discovery strategy, and handle the appropriate events and requests.
For 1.0.0 we need to decide whether navigation into classpath-hosted jar files is necessary, or not. (Files on the normal file system should have working breakpoints once the small fix is pushed.)

What happens if I try to step into a schema in a jar? Does it just not happen, or will I get some notification that it is in a jar so cannot be stepped into, so you must step over?

Currently step-in isn't supported (#5), so that isn't an issue, although there isn't any message to the user that the operation isn't supported, which is kind of what you want. I'll add a note to the issue that there at least should be a warning that step-in isn't available.

Jars are the natural way schemas are packaged and obtained in Daffodil however, so this feature to be able to step into schemas where the source is in a jar is something we will want fairly soon. E.g., schemas being devloped now include 3 or 4 other schemas by way of jars on the classpath, so debugging there needs to support jars as first class.

I filed #76 to support this.

I can't get a breakpoint in any schema file beside the main one to work.
To reproduce, use EDIFACT DFDL schema (from github)
The main DFDL schema project file fo that is src/main/resources/EDIFACT-SupplyChain-D03B/EDIFACT-SupplyChain-Messages-D.03B.xsd
The data file I chose was src/test/resources/EDIFACT-SupplyChain-D03B/TestData/INVOIC_D.03B_Interchange_with_UNA.txt
Set breakpoint in src/main/resources/EDIFACT-SupplyChain-D03B/EDIFACT-SupplyChain-Segments-D.03B.xsd line 292.
That should be hit during the parse, but never is.

@mbeckerle I believe if you look at the discussion of the PR, https://github.com/apache/daffodil-vscode/pull/77, @arosien states he could not find any schemas with breakpoint-able lines as most of the items were type definitions. So, @arosien can correct if me if I am wrong, but I think that is what you are seeing.

EDIFACT at https://github.com/DFDLSchemas/EDIFACT

@mbeckerle How would I go about debugging this schema? I am getting an error about the schema, EDIFACT-SupplyChain-D03B/EDIFACT-SupplyChain-Segments-D.03B.xsd, not having any global components.

Ah. Checkout branch "daffodil-dev"

So I am not getting breakpoints on those imported schemas either, but I am wondering if it because it is for the same reason as @arosien mentioned in his PR? Are those two schema imported from EDIFACT-Common just type definitions if so I that is why no breakpoints don't happen because I know you can put a breakpoint on importing a schema but those aren't hit.
@mbeckerle If you expect breakpoints in this schema specifically can you say a couple lines you would think would be valid breakpoints?

The data file I chose was src/test/resources/EDIFACT-SupplyChain-D03B/TestData/INVOIC_D.03B_Interchange_with_UNA.txt
Set breakpoint in src/main/resources/EDIFACT-SupplyChain-D03B/EDIFACT-SupplyChain-Segments-D.03B.xsd line 292.
It should stop there for this data.
I tried to give all the details allowing you to reproduce earlier in this thread.

Yeah the breakport doesn't get hit for me either I am not sure if does with the include statements. @arosien Would you be able to try debugging EDIFACT schema using the notes from @mbeckerle and report what you find?

@arosien Important: you want the "daffodil-dev" branch of the EDIFACT repo.

I'll check it out.

I wasn't able to trigger a breakpoint at EDIFACT-SupplyChain-Segments-D.03B.xsd line 292 (under complexTypeGIR-RelatedIdentificationNumbers), but looking at the expected infoset for INVOIC_D.03B_Interchange_with_UNA.txt I don't see any GIR output.
If instead I put a breakpoint at complex type NAD-NameAndAddress (EDIFACT-SupplyChain-Segments-D.03B.xsd:378; note this is the complexType tag, not an element tag), then a breakpoint is triggered:

Note that the encountered breakpoint is at the point where the "outer" schema (-Messages*) references the "inner" schema (-Segments) where the breakpoint is defined. Yes, this is somewhat weird, but the debugger is just relying on the location information from the Daffodil layers.
So it seems we can break on external type definitions (only) when they match, and the referenced breakpoint location is at the use site, not the declaration site.
Any thoughts?

I wasn't sure, but I think I observed this "breaks on the main schema" even though the breakpoint is inside it, as well, but I wasn't certain.
So that behavior is interesting, but not useful.
The breakpoint on the inner element, inside of the GIR thing, is because I was stepping along watching it create objects for all the various branches of the choice, then backtrack them, and it seemed that element defined at line 292 would be the next thing it should attempt to parse, so I was hoping it would breakpoint there.
It is very desirable to have a breakpoint stop the debug at the "attempt" to parse an element, even if it subsequently fails and backtracks the element. Often you have to watch it fail, put more breakpoints inside to see what is going on, etc.

I wasn't sure, but I think I observed this "breaks on the main schema" even though the breakpoint is inside it, as well, but I wasn't certain.
So that behavior is interesting, but not useful.

Agreed. My only explanation for what I see is that the Daffodil end is actually breaking at the external file location, but the stack relayed to VS Code either isn't correct or VS Code can't locate the external file in the stack and therefore gives a best effort by only showing the stack at the deepest point of the main schema.
I'll investigate further.

Ok, I found the problem, and like #77 the code was incorrectly using the main schema file instead of using the schema file of the current location relayed by Daffodil:
https://github.com/apache/daffodil-vscode/blob/ee71cf1cc9e2a7fce1abac2b46700c352cb5e404/server/core/src/main/scala/org.apache.daffodil.debugger.dap/Parse.scala#L367
I'll push a patch for using the correct path, but this won't work for jar-based schema files. That work is captured by #76.

Since this issue is blocking the 1.0.0 milestone, I recommend the immediate fix for non-jar-based schemas and fast-follow with a 1.0.1 release that fixes #76.

1.0.0 was never released. I suggest we just cancel the 1.0.0-rc1 vote, fix this bug, and then start a 1.0.0-rc2 vote.

Oops, i misread, Agreed that #76 can probably wait for a following release.

I also agree with @arosien that this fix, without Jar support, is sufficient for a 1.0.0-rc2.

Oh look, I left myself a TODO with notes about a data race!
https://github.com/apache/daffodil-vscode/blob/main/server/core/src/main/scala/org.apache.daffodil.debugger.dap/Parse.scala#L757

Aha! The reason the reported stack doesn't match the hit breakpoint is that after the stack is updated from the startElement call, Daffodil invokes the endElement callback which then pops the stack. This happens before VS Code requests the current stack, so the reported stack has already been popped.
Our endElement callback should block if we've stopped at a breakpoint.

Our endElement callback should block if we've stopped at a breakpoint.

I filed #90 for this problem.


yfinance failed to decrypt Yahoo data response

Description
I always get this decryption error when trying to access ticker data. Decryption method is AES, so mainly a mature decryption method. It is not only failing with calendar, but also with others like earnings. Has someone seen this before?
Error Logs
File "C:\Users\PRIVATE\Documents\GitHub\TBot\data_watcher.py", line 221, in
print(ticker.calendar)
File "C:\Users\PRIVATE\Documents\Venvs\tbot\lib\site-packages\yfinance\ticker.py", line 142, in calendar
return self.get_calendar()
File "C:\Users\PRIVATE\Documents\Venvs\tbot\lib\site-packages\yfinance\base.py", line 990, in get_calendar
data = self._quote.calendar
File "C:\Users\PRIVATE\Documents\Venvs\tbot\lib\site-packages\yfinance\scrapers\quote.py", line 576, in calendar
self._scrape(self.proxy)
File "C:\Users\PRIVATE\Documents\Venvs\tbot\lib\site-packages\yfinance\scrapers\quote.py", line 585, in _scrape
json_data = self._data.get_json_data_stores(proxy=proxy)
File "C:\Users\PRIVATE\Documents\Venvs\tbot\lib\site-packages\yfinance\data.py", line 43, in wrapped
return func(*args, **kwargs)
File "C:\Users\PRIVATE\Documents\Venvs\tbot\lib\site-packages\yfinance\data.py", line 318, in get_json_data_stores
stores = decrypt_cryptojs_aes_stores(data, keys)
File "C:\Users\PRIVATE\Documents\Venvs\tbot\lib\site-packages\yfinance\data.py", line 164, in decrypt_cryptojs_aes_stores
raise Exception("yfinance failed to decrypt Yahoo data response")
Exception: yfinance failed to decrypt Yahoo data response

Seems to be related to issue 1437.

Solution Proposal of 1449 (pip install --upgrade finance) didn't resolved the issue for me.


Undo (Ctrl+Z) leaves request in unsaved state despite Save

I have checked the following:

[X] I use the newest version of bruno.
[X] I've searched existing issues and found nothing related to my issue.

Describe the bug
Steps to reproduce:

Open a request.
Add text in any part of the request.
Press Ctrl+Z
Save the request

Actual behavior: The message "Request saved successfully" appears, but the request remains in the unsaved state.
Expected behavior: The request is saved, or ideally, after pressing Ctrl+Z, the request state should revert to the saved state.
.bru file to reproduce the bug
No response
Screenshots/Live demo link
https://github.com/user-attachments/assets/956ea21a-67d8-474b-ac2c-36c8985f88c0

Hi @gioisco , we're investigating this. Thanks for reporting!

I think this might be related to #3316 and #1396


Added comments in inventory.md

About the NICs status and DNS server IPs. These are important to keep in mind mostly when setting up a baremetal environment where all the interfaces are connected to some switch.

I added two comments to the inventory about the NICs status and DNS server IPs. These are important to keep in mind mostly when setting up a baremetal environment where all the interfaces are connected to some switch.


contour transparency/opacity broken in 2.4.0

version 2.4.0 isn't a selection yet, so selecting 'trunk' This happens on a trivial dataset for my builds of 2.4.0 on both TACC lonestar and longhorn systems. I create a contour plot with three value surfaces and set the outer two to 25% opacity (the third is at 100%) and in the plot, all three contours are at 100% opacity. Pictures attached of 2.4.0 behavior and 2.3.0 (correct) behavior
-----------------------REDMINE MIGRATION-----------------------
This ticket was migrated from Redmine. As such, not all
information was able to be captured in the transition. Below is
a complete record of the original redmine ticket.
Ticket number: 903
Status: Resolved
Project: VisIt
Tracker: Bug
Priority: Urgent
Subject: contour transparency/opacity broken in 2.4.0
Assigned to: -
Category: -
Target version: -
Author: Paul Navratil
Start: 11/23/2011
Due date:
% Done: 0%
Estimated time:
Created: 11/23/2011 03:55 pm
Updated: 04/03/2014 11:48 am
Likelihood: 3 - Occasional
Severity: 4 - Crash / Wrong Results
Found in version: trunk
Impact:
Expected Use:
OS: Linux
Support Group: Any
Description:
version 2.4.0 isn't a selection yet, so selecting 'trunk' This happens on a trivial dataset for my builds of 2.4.0 on both TACC lonestar and longhorn systems. I create a contour plot with three value surfaces and set the outer two to 25% opacity (the third is at 100%) and in the plot, all three contours are at 100% opacity. Pictures attached of 2.4.0 behavior and 2.3.0 (correct) behavior
Comments:
If you use scalable rendering the transparency works, so you can use that as a work around if you need to get some images out quickly. I verified that with 2.7.2 on Linux and Windows, semi-transparent contours work correctly.May have been fixed by VTK upgrade, or other changes since this ticket was written.


Name table entries contain null bytes

If my text is "Wakamai Fondue rules!", font.opentype.tables.name.get(19) will return:
\x00W\x00a\x00k\x00a\x00m\x00a\x00i\x00 \x00F\x00o\x00n\x00d\x00u\x00e\x00 \x00r\x00u\x00l\x00e\x00s\x00!

I could filter them out here but I guess there is a neater solution, probably involving getting the data at the right amount of bits?

You are getting UTF-16 strings.

this feels like it's because of the mac/microsoft string difference... we'd need to check which format the name record uses, and compensate for the two-byte string format that either the mac or windows platforms use. I forget which of the two was short and which was long off hand, but that should be something we can solve on the line you highlighted, by consoluting the record's platform/encoding

Do you have a test font we can use to debug this one?

Windows platform name strings are UTF-16, aren’t they?

I couldn't remember which of the two was an 8 bit ansi-like and which was utf16, but yes.

landed in https://github.com/Pomax/Font.js/blob/master/src/opentype/tables/simple/name.js#L51-L92 as unicode parsing for platforms 0 and 3, and "ascii" byte parsing for everything else. That's certainly not perfect, but I'll be filing a followup issue around line 91:

// TODO: if someone wants to finesse this/implement all the other string encodings, have at it!

https://github.com/Pomax/Font.js/issues/85


enable pod priority for kubelet

https://v1-10.docs.kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#how-to-use-priority-and-preemption
"
Pod priority and preemption is disabled by default in Kubernetes 1.8. To enable the feature, set this command-line flag for the API server, scheduler and kubelet:
--feature-gates=PodPriority=true
"

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

/lgtm

/hold let's test back compat before merging


[Bug]: accepted file types

What happened?
when i add for example  :accepted-file-types="['image/*', '.pdf', '.xls', '.xlsx', '.csv', '.doc', '.docx']"
it allows me to select any file from these mime types but it shows an error that mime type x (x is anything but image) is not supported
How to reproduce the bug
provide the  :accepted-file-types="['image/*', '.pdf', '.xls', '.xlsx', '.csv', '.doc', '.docx']" to the any file pond instance and try to upload any file but image
Package Version
1.3
PHP Version
8.1
Laravel Version
10.10
Which operating systems does with happen with?
macOS
Notes
No response

looks like filepond dosent support file extension and we must use mime types


execSync crash on Windows with invalid paths

Any invalid path with an exe extension will cause PS to show an error Uncaught class std::runtime_error while executing UXP TaskQueue item: Failed to create process and then PS itself will immediately crash.
Code to repro:
const cmdCrash =`anyInvalidPath.exe`;
(await require('bolt-uxp-hybrid.uxpaddon')).execSync(cmdCrash)

If the string doesn't end in ".exe", it will reject the command with a normal error message and PS will not crash.
Also, if I correctly point to a valid command line exe like ExifTool, I am getting crashes with strings that work in Terminal.
But I can run simple non-executable commands like:
const cmd1=`set n1=100 && set n2=200 && set /A sum=n1+n2`;
(await require('bolt-uxp-hybrid.uxpaddon')).execSync(cmd1) // returns 300

As a bonus, it would be great to have Bolt return the console output for the last command / all commands and the exit code.
On MacOS, you can wrap your command in a final echo to return JSON with the exit code and the terminal output of the last command.
On Windows, it's trickier as the return string includes all commands in the same string, not just the last one.

Isn't there any ready to use code for command line in C++ that already handles common pitfalls? E.g. how NodeJS is doing that? https://github.com/nodejs/node/blob/main/src/process_wrap.cc

@jardicc For sure, I was looking at going that route, but then I'd need to include a bunch of Node.js dependencies to get stuff working. Feel free to open a PR anytime though.
As a general update, got some progress on validating paths, but launching Windows processes this way still isn't working yet:


[Notification] Notification badges in the 'Заяви' tab and header don't disappear.

Environment: Windows 10, 64-bit, Google Chrome 107.0.5304.107.
Reproducible: always.
Preconditions
1.Go to OoS (link)
2.There is at least one workshop registered by Service provider (@workshop)
3.Parent has applied to @workshop for himself (@application)
4.Parent has no unread notifications
5.Service Provider changed the @application status  (e.g. from  'Очікує підтвердження' to 'Зараховано')
6.Parent is logged in
Steps to reproduce

Check that notification is displayed in the top right part of a header.
Click on the bell icon.
Click the 'Переглянути' link in the tooltip.
Go to the 'Заяви' tab of the personal cabinet.
Pay attention on the notification badge in the top right part of a header.

Actual result
Notification badges in the 'Заяви' tab and header don't disappear.

Expected result
Notification badges in the 'Заяви' tab and header disappear after viewing.
Labels to be added
"Bug", Priority ("medium"), Severity ("low"), Type ("UI, "Functional").

Fixed


hey_jarvis.tflite model keeps outputting 0

hey_jarvis.tflite model always outputs 0, I would like to ask this model why I input random numbers but the output is always 0, is this model able to work properly?
v2

Let's continue any discussion in kahrendt/microWakeWord/issues/43


Localization through resources (.resx)

It's already rc1, and after a year I'm still unable to get .resx files working :disappointed:
Something simple like this
Titles.resx
Titles.fr.resx

public ActionResult Index()
{
	Thread.CurrentThread.CurrentCulture = new CultureInfo("en");
	Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");

	string name = Titles.Name; // Get default en resource

	Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr");
	Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr");

	string name = Titles.Name;  // Get fr resource, but this always return en one...
}

I'm not using any localization packages, because I don't think they are necessary especially in console applications. I even tried
ResourceManager.GetString(string name, CultureInfo culture)

which still doesn't work, I don't get it :confused:

Do you have the example in a repo?

Here's a repo.
I'm using rc1-final dnx.

Let me have a quick look ..

It works fine, it shows Présent

Interesting, does that mean that my installation is bad? I did updates from beta5 to rc1.

Hehe, you are cheating I run from VS.
It works from command line for me too :o

This seems to be tracked in a tooling repo already, back to the cave until rc2 hype ;x

I'm not cheating :smile: , if you mentioned before you are ran it in VS, I will tell you, that you should follow the repo tooling


JSFiddle Spelling error

link to GitHub page from this Fiddle https://jsfiddle.net/ankurk91/w8y8k5wo/ is broken

Thanks man, it has been fixed,


🐛 [BUG] - Weblink command not working

Description
The weblink command on the client does not work. This command is used to open a browser with a url.
Reproduction steps
1. Go to '.weblink www.google.com command'
2. The command works but the browser tab does not open.

Browsers
Chrome
OS
Windows

fixed!


LiveView Bindings for SwiftUI -> Focus Events: phx-window-blur into ScenePhase

LiveView doc: https://hexdocs.pm/phoenix_live_view/bindings.html#focus-and-blur-events
SwiftUI doc: https://developer.apple.com/documentation/swiftui/scenephase

Done with PR #166


Refactor repeative DLP location tests in Defender code

This is a lot of repetitive code, recommend moving the key value (i.e.  TeamsLocation, OneDriveLocation, etc) & the comparison string (line 572,560,etc) as variables to be passed in.
Originally posted by @Sloane4 in https://github.com/cisagov/ScubaGear/pull/574#discussion_r1360893411

addressed in #663


merge: dev to master

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


Stopped working suddenly

Hello,
The plugin just stopped working (I think after downloading python syntax plugins), are you familiar with the problem?
Thanks in advance

Does it not work for all filetypes? Did your colorscheme change? What happens when you run hi illuminatedWord cterm=underline gui=underline.

Fixed it, your suggestion helped me.
Thank you for your time!

Interesting, I'm able to reproduce now. It seems somewhere between init.vim gets loaded (and illuminatedWord is defined), it gets cleared (hi illuminatedWord will say illuminatedWord xxx cleared). Seems to be related to this closed nvim issue. Any highlight group defined in your init.vim gets cleared.
A quick hack for this would be to create a file ~/.config/nvim/after/plugin/illuminate_hack.vim that has one line:
hi illuminatedWord cterm=underline gui=underline

This will be loaded after so it won't be cleared. Maybe tn I'll implement a variable that takes highlight values and define the highlight group myself in the plugin to circumvent this issue.


[Bug]: redis cache storage issues with connecting to remote cluster

Current Behavior
The GPTCache server works fine while using the local Redis instance but, I am getting a connection error while trying to connect to Remote Redis Instance
Expected Behavior
GPTCache server should start without errors
Steps To Reproduce

Step 1: Update the cache_config_file and set
storage_config:
    data_dir:
        gptcache_data
    manager:
        redis,faiss
    scalar_params:
        # Set scalar storage related params here
        url: "URL_TO_REMOTE_INSTACE:PORT"

Step 2: Start GPT Cache Server

Environment
Mac, Windows, Linux

Anything else?
No response

@a9raag can you get me the error message?

@SimFG added the error trace.

@SimFG I know where it is coming from.
Migrator.run()  creates Indexes necessary for Redis Search.
But during the creation, it picks up localhost connection from the pool instead of the cluster collection.
I have a solution:
We can modify the connection to be used in the instance of RedisModel by updating the Meta class.
While calling the get_models method provide the Redis connection as a parameter and this will be used to update the Meta class for all RedisModels

@a9raag Thank your pull request!!!


FPET-12 changes to display Applicant Name & child Name for C100 and Applicant & Respondent name for FL401

Before creating a pull request make sure that:

[ ] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
Change description
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

review changes are committed


Lowercase internal variables in shell scripts

This makes it possible to tell at a glance which variables are internal to the script and which ones are parameters to it (or are exported from it), which is very helpful, and would've saved me a bunch of effort.
This convention is pretty common. See e.g. Google's shell style guide, and this random one. It's older than those though. Some other scripts in Zephyr already do it.
Also remove some semicolons at ends of lines.
(Some people do uppercase for "constants" as well, and leave lowercase to variables. Having some kind of distinction helps at least. I like the super simple lowercase-for-all-internal.)

Some people do uppercase for "constants" as well, and leave lowercase to variables. Having some kind of distinction helps at least. I like the super simple lowercase-for-all-internal.

Rebased now.


posix_spawn is setting errno even succeeded

Recently compiling GNU Guile but it's internal posix_spawn wrapper seems encountering the failure logic, by inspecting the code I see the root cause is an errno has been set on iOS, but this doesn't happen on macOS
Simple test program
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <spawn.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>

extern char **environ;

int main() {
    pid_t child_pid;
    posix_spawn_file_actions_t file_actions;

    // Initialize file actions
    if (posix_spawn_file_actions_init(&file_actions) != 0) {
        perror("posix_spawn_file_actions_init");
        return EXIT_FAILURE;
    }

    // Define command to execute
    const char *command = "/bin/ls";
    char *const argv[] = {"/bin/ls", "-l", "/", NULL};

    // Spawn a child process using posix_spawn
    if (posix_spawnp(&child_pid, command, &file_actions, NULL, argv, environ) != 0) {
        perror("posix_spawnp");
        return EXIT_FAILURE;
    }

    // Wait for the child process to complete
    int status;
    if (waitpid(child_pid, &status, 0) == -1) {
        perror("waitpid");
        return EXIT_FAILURE;
    }

    if (WIFEXITED(status)) {
        printf("Child process exited with status: %d\n", WEXITSTATUS(status));
    } else if (WIFSIGNALED(status)) {
        printf("Child process terminated by signal: %d\n", WTERMSIG(status));
    } else {
        printf("Child process did not exit normally.\n");
    }

    // Clean up file actions
    if (posix_spawn_file_actions_destroy(&file_actions) != 0) {
        perror("posix_spawn_file_actions_destroy");
        return EXIT_FAILURE;
    }

    printf("errno: %d (%s)\n", errno, strerror(errno));

    return EXIT_SUCCESS;
}

On macOS:
TorrekiedeMacBook-Pro:proj torrekie$ ./a.out
total 10
drwxrwxr-x  38 root  admin  1216  8  3 18:10 Applications
drwxr-xr-x  67 root  wheel  2144  3 13 01:00 Library
drwxr-xr-x@  9 root  wheel   288  1  1  2020 System
drwxr-xr-x   5 root  admin   160  1 17  2023 Users
drwxr-xr-x   3 root  wheel    96  8  9 22:48 Volumes
drwxr-xr-x@ 38 root  wheel  1216  1  1  2020 bin
drwxr-xr-x   2 root  wheel    64  1  1  2020 cores
dr-xr-xr-x   4 root  wheel  4852  8  1 01:02 dev
lrwxr-xr-x@  1 root  wheel    11  1  1  2020 etc -> private/etc
lrwxr-xr-x   1 root  wheel    25  8  1 01:03 home -> /System/Volumes/Data/home
drwxr-xr-x   3 root  wheel    96  1 17  2023 opt
drwxr-xr-x   6 root  wheel   192  1  1  2020 private
drwxr-xr-x@ 65 root  wheel  2080  1  1  2020 sbin
lrwxr-xr-x@  1 root  wheel    11  1  1  2020 tmp -> private/tmp
drwxr-xr-x@ 11 root  wheel   352  1  1  2020 usr
lrwxr-xr-x@  1 root  wheel    11  1  1  2020 var -> private/var
Child process exited with status: 0
errno: 0 (Undefined error: 0)

On iOS:
iPad:~ root# ./a.out
total 69
drwxr-xr-x    11 root  staff    352  4 16 20:54 .Fugu14Untether
-rw-r--r--     1 root  wheel      0  4 16 20:53 .Fugu14_Installed
drwx------     2 root  wheel     64  1  1  2020 .ba
-rw-r--r--     1 root  wheel      0  4 16 20:58 .cydia_no_stash
----------     1 root  admin      0  1  1  2020 .file
drwx------  2194 root  wheel  70208  8 10 08:42 .fseventsd
-rw-r--r--     1 root  wheel      0  4 16 20:58 .installed_unc0ver
drwx------     2 root  wheel     64  1  1  2020 .mb
-rw-r--r--     1 root  wheel      0  4 16 20:58 .mount_rw
drwxrwxr-x   119 root  admin   3808  5 24 13:33 Applications
drwxrwxr-x     2 root  admin     64  1  1  2020 Developer
-rw-r--r--     1 root  wheel    148  4 17 16:01 Entitlements.plist
drwxr-xr-x    32 root  wheel   1024  6 19 17:18 Library
-rw-r--r--     1 root  wheel   1821  4 17 16:04 SDKSettings.json
-rw-r--r--     1 root  wheel   1772  4 17 16:01 SDKSettings.plist
drwxr-xr-x     4 root  wheel    128  3 16  2021 System
lrwxr-xr-x     1 root  wheel     13  8  1 19:18 User -> ///var/mobile
drwxr-xr-x    73 root  wheel   2336  6 17 15:32 bin
drwxr-xr-x     2 root  wheel     64 10 28  2006 boot
drwxr-xr-x   420 root  wheel  13440  8 10 14:38 buildroot
-rw-r--r--     1 root  wheel     35  6 28 19:05 conffiles
-rw-r--r--     1 root  wheel    948  6 28 19:05 control
drwxrwxr-t     2 root  admin     64  1  1  2020 cores
dr-xr-xr-x     5 root  wheel   1196  8  1 19:17 dev
lrwxr-xr-x     1 root  wheel     11  1  1  2020 etc -> private/etc
drwxr-xr-x     2 root  wheel     64 10 28  2006 lib
drwxr-xr-x     2 root  wheel     64 10 28  2006 mnt
drwxr-xr-x    66 root  wheel   2112  6 17 15:32 sbin
drwxr-xr-x     3 root  wheel     96  5 24 17:17 stunnel
lrwxr-xr-x     1 root  wheel     15  1  1  2020 tmp -> private/var/tmp
drwxr-xr-x    15 root  wheel    480  6  6 19:09 usr
lrwxr-xr-x     1 root  admin     11  1  1  2020 var -> private/var
Child process exited with status: 0
errno: 60 (Operation timed out)

Child process has been successfully executed and exit with status 0, but this errno still happens due to unknown reason. Might be set by fork or exec, I'm not sure was that an intended behavior so create an issue here

Nevermind, this errno seems been set by elsewhere like substitute-inserter.dylib or something else, my bad


Allow multiple hub image experiments

Related to https://github.com/2i2c-org/infrastructure/issues/2883 and https://github.com/2i2c-org/infrastructure/issues/2884
@yuvipanda, I didn't document this before I didn't get your approval about the implementation. Does using a build argument to account for the multiple requiremets file make sense or did you have something elese in mind?
Also, I added a second image in chartpress for the second experimental hub, but we could just use the initial one and jus manually change the requirements file that it's being used.
What do you think?

OMG @GeorgianaElena this is pretty cool! So we can have just one hub image, and use bulid-args for different packages to be installed. This also avoids duplication and we can keep just one Dockerfile right?
So I would say we can:

Remove the hub-experimental directory completely
Have a unlisted-choice-experiment image, that is built off an unlisted-choice-requirements.txt file
Have a dynamic-image-building image, that is built off a dynamic-image-building.txt file.
Document this process.

How does that sound? Thanks for coming up with this, @GeorgianaElena

Thanks for suggesting to move this setup under the main hub image, @yuvipanda. I think this is a great idea and I'm really happy how it turned out! 🚀

@GeorgianaElena \o/ Thanks for the nice implementation.


Polaris office and canal plus

Hello, we would like ti thank very very much for adding the amazing "dns over https" feature ! that's amazing, thank you very much Mr @ragibkl :)
I have tried to open the web site of this korean office suite  but I had display problems, by changing to another dns like adguard, I was able to access the polaris site in the normal way :
https://www.polarisoffice.com/en/
also I used this free vpn "psiphon":
https://psiphon.ca/
to be able to watch the replay of this french tv show on the french canal plus tv website site but it shows me an error message and maybe Bancuh dns is blocking the ads on this site so we can't see the videos  of this website and it will be great if Bancuh Dns can exclude this site from ad blocking and put it on a white list !
https://www.canalplus.com/divertissement/tpmp-partie-1/h/8946028_50013
https://www.canalplus.com/c8/tpmp/touche-pas-a-mon-poste
Thanks very much !

Hi @trimechee ,
I've fixed for polaris office. Do test it and let me know if it works for you.
I'm not sure about canalplus yet. I'll look into it.

Yes it works fine with polaris office website, thank you very much !
for canal plus, I think canal plus has strengthened its protection and detects vpn may be, to be sure, it would be good idea to check with @Tomatoide who is in France apparently and it will be great and helpful if @Tomatoide confirms to us if he can access the canal plus site from france

Sorry @trimechee I'm not from france so can't check

@Tomatoide , there is no problem, thank you very much :)


request to add single smu current sweep function

Hi,
I like the package and I need a function that does current sweep similar to voltage_sweep_single_smu. Would you be able to add this?
thanks
Soha

@soha-namnabat, since I am longer working in a lab these days, this package is very much in maintenance mode. However, I am happy to review pull requests.


Introduce Promitor as an Azure Monitor partner

Signed-off-by: Tom Kerkhove<EMAIL_ADDRESS>Introduce Promitor as an Azure Monitor partner.

@tomkerkhove : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

@bwren: I'm sorry - only the author of this article, @rboucher, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

Thanks for the sign-off @bwren, let's see if @rboucher likes it as well.

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.

We can merge with sign-off from @bwren 👍

Thanks!
What's the typical release cycle for this to be published?

Typically in less than 24 hours @tomkerkhove . Though typically we require approval through our PM team.  We'll may have someone contact you with further questions. Thanks for making the icon the right size.

Great to hear and feel free to ask questions if need be!
Least I could do.


Feature/Coverflow

There it is ;)

It's not free of bug but Ok for now.
There is some comments inside.

Great!
I will check it later

@Phenek I've checked it quickly
Looks nice. Good job.
Just a question: is it possible to set cards in center (default position)?
Because now, i see full size of 1st and 2nd cards and small part of 3rd
Can we show the same parts of 1s and 3rd and full size of 2nd?
Hope it's clear

There is two property:
ViewPosition : this one is positioning the view on Left, center, or right side
(default is Center right now)
FirstItemPosition: is setting the first Item on the leftmost,
the most centered, or the most right view (default Left for now)
The right position is to support in next enhancement RTL disposition.
So what do you expect is to set both property at the center by default?
And you case is about a circular list? the expectation could depend of this too.
Let me know

@Phenek really, don't know)
I think, I should merge it
Refactor a little, then we can test it
I will do it today-tomorrow

Great because I will need a second point of view,
to perform a good recycler view logic during the end animation.
This will allow us to add a Velocity Scroll Property, (the things I need :)))

Maybe the property ViewPosition could be called ViewAlignment

@Phenek agreed


Creating Security Operations capabilities: Central logging and SIEM (t-shirt)

Creating Security Operations capabilities: Central logging and SIEM (XL)

AWS logs including platform and tech (Cloudwatch, et cetera)
Prometheus and Graphana for metrics (in place)
Fluentd and kabana (in place)
Collect all the darn things

T-Shirt estimate was made on 05/31/19.

S: < 1 pair / .5 sprint
M: 1 pair / 1 sprint
L: 2 pairs / 1 sprint
XL: way >

07-02-2019 Migrated from SMRT-1323

ELK/EFK is current in place for the EKS servers and app containers. Can potentially expand on that instead of building new.

Closing, as this was a placeholder card for grant forecasting purposes.


如何跳过Jdk的安装?

个人认为的话 对于普通的小学校 java并不是学习的主流吧 所以... 似乎也并没有必要列到默认的安装上？

First please download JDK7u76 and JDK8u31, and put them to docker/jdk-7u76-linux-x64.tar.gz and docker/jdk-8u31-linux-x64.tar.gz. These two compressed files are used by judge_client for judging Java program. If you are too lazy to download these two huge files, you can simply place two empty .tar.gz files there.
已经在 README 里写了


Missing Texture Suffix for Metallic

The current set of texture suffixes do not include a definition for the Metallic channel.
Since M is taken by Mask and the suffix needs to be a single identifier to support stacking, and there are no great synonyms for metal  I propose the suffix C, since metal conducts and is also not taken by the other texture issue #25.
Really I don't care what the suffix is, just want to standardize something. I don't have access to many existing projects, so if a suffix already exists lets use that instead.

This sounds crazy but I think it'd be better to use M for both metallic and mask. The difference between them is usually pretty visually obvious as well as masks/metallics are often combined with other channel data, and using M for metallic makes making things like _RMA (roughness, metallic, alpha or etc) whereas Masks are pretty general purpose and maybe it makes sense to name a mask descriptive to what that mask is actually doing.

I would have to agree with alar on this it should be self explanatory on visual inspection and masks are pretty distinct. Conductive is also a really abstract that will likely lead to confusion as it has no real bearing on the descriptive nature of the material.
If anything masks could be denoted with A since they are effectively just alphas.

I agree. _C is not intuitive. I picked it to not conflict with anything else. I'll change the pull request to make it _M.


Add a CODEOWNERS file

Follow up: https://github.com/rubocop/rubocop-rspec/pull/1762

Before submitting the PR make sure the following are checked:

[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[ ] Updated documentation.
[ ] Added an entry to the CHANGELOG.md if the new code introduces user-observable changes.
[x] The build (bundle exec rake) passes (be sure to run this locally, since it may produce updated documentation that you will need to commit).

Thank you!


Create a separate warning if the server is unreachable

Is your feature request related to a problem? Please describe.
Currently the client displays the "You appear to be offline, your progress may not be saved" message if the browser reports that it's offline or if challenge submission fails. However challenge submission can fail for several reasons and not necessarily because a user is unable to get online.
Describe the solution you'd like
As second message to be shown if the servers cannot be reached. "The server could not be reached, please contact support if this you see this message again"  Something along those lines.

This seems like a needed feature, after what happened a couple of days ago.

Yeah, it should help us work out where the problem lies. Right now it doesn't tell us much

Hello @ojeytonwilliams  ,
I am new to open source trying to make my first contribution,
I am interested in contributing in this issue, if the problem is not solved,
can you assign me this issue

Hi @Anay21110 thanks for the offer of help.  Please take a look at our contribution docs if you would like to know about how to take part.

This would definitely make sense to add. A pretty small feature that may avoid lots of frustration for the users.
I will look into it.

If you have any questions you can always at the at freecodecamp/dev-team.

Hello I am eyeing this issue, trying my hand at contributing.
I just wonder whether server unavailability is reproducible on local environment and/or Gitpod.

Hey @budbreaker.  It certainly is and the following steps should replicate it:

in one terminal: npm run develop:client
in a separate terminal: npm run develop:server
sign in, if you are not already
shut down the server
navigate to a challenge
wait a few seconds to see the warning

hi @ojeytonwilliams
I am looking at the problem and it seems that the isOnline property is not being set correctly... which baffles me, because it's being set as such
https://github.com/budbreaker/freeCodeCamp/blob/cf3dc4d3b5656a9aa95bd7b76f6098d0f560a3a5/client/src/components/layouts/Default.js#L121-L122
but inside the offline-warning function with disabled server the values are following:
isOnline=false
window.navigator.onLine=true
navigator.onLine=true
isSignedIn=true
The message could be based on current status of navigator.onLine instead of isOnline property. Thoughts ?

Hey @budbreaker.  So, what's going on is that that function is only called when the online and offline events fire.  So, if you turn off your internet, that will trigger and correctly show the offline warning.  In addition there's a redux epic that dispatches an onlineStatusChange action when it's unable to reach the server: https://github.com/freeCodeCamp/freeCodeCamp/blob/e44610f1d02e53404b99b2a23a3feb0fcaeb1eba/client/src/redux/failed-updates-epic.js#L40
It's that epic that's responsible for the value of isOnline that you saw in offline-warning. To resolve this issue, those two things (lack of internet and inability to reach the server) should be handled separately and provide different warnings.
Does that clear things up?

Yes, this will help greatly, because I was unsure whether there will be a need to implement some sort of heartbeat to check for server availability.

Hi @ojeytonwilliams
I am almost done with this, but I have stumbled upon one problem. I have added a new string into english translations.json file, but when I try to invoke it as the previous one was (t('misc.server-offline')), it will only say "misc.server-offline". Do I need to update something in order for the string to be usable as the others in translation files ?

You can run  npm run clean:client and run develop again.

Yes thank you, I got my response in the chat meanwhile, so I deleted my comment here.

After looking over the #43576 implementation, it looks as though we would be best removing the Camper offline logic, and, instead, simplify everything to:

If Camper cannot reach server, Camper is disconnected

That is, the only thing we care about is whether or not the client can access the server. So, there is only one online state to keep track of.
@ojeytonwilliams and @Sembauke Thoughts?


Py310

fixes https://github.com/lutraconsulting/geodiff/issues/158

<EMAIL_ADDRESS>does not support python 3.6, for 3.6 we would need to stick with the 1.x releases

I am going to "release" since we need 3.10 on the pypi


FR: add support for IBM COBOL on Linux x86

Compile command: cob2
optional: special source format (matches the "common" terminal format, similar but not identical to free-form reference-format)
Compiler Output for pattern matcher (all in stdout):
0LineID  Message code  Message text
      1  IGYDS0001-W   A blank was missing before character "h" in column 19.  A blank was as
                       sumed.
      2  IGYDS1005-E   The "DATA DIVISION" header was not found.  A "DATA DIVISION" header wa
                       s assumed before "WORKING-STORAGE".
      5  IGYDS1159-E   A "PICTURE" clause was not found for elementary item "FILLER".  "PICTU
                       RE X(1)" was assumed.
                       Same message on line:      7
     10  IGYPA3013-W   Data items "TEST-1 (NUMERIC INTEGER)" and "TEST-VAR (GROUP)" had overl
                       apping storage.  An overlapping move will occur at execution time.
-Messages    Total    Informational    Warning    Error    Severe    Terminating
0Printed:       5                          2         3
End of compilation 1,  program HELLO,  highest severity: Error.
Return code 8

Sorry, this will need to be done in a different extension as it is out of scope for inclusion in this extension.
As I don't want to support something I have no exposure to or even have access to.
Your options are:

raise this as an enhancement with the IBM Z® Open Editor
create your own extension to support it

I don't want to support something I have no exposure to or even have access to.

That's very reasonable. But I can help with that:

complete documentation online
60 day trial version (includes a license file which you could replace, also by another trial version license file...): work on Ubuntu >= 16.04 and RHEL >= 7.8 (and very likely with other apt/yum friends, too). The install script also gets all the dependencies installed (if you run Windows 10, then you could also use WSL and the Ubuntu installation from the MS store is enough to use the install script)

raise this as an enhancement with the IBM Z® Open Editor

Done and got the response "no, this extension is only about zOS".
Note: supporting this would only mean:

use the existing IBM syntax files for that
add pattern matcher
possibly in the place where ccbl, cob, and friends are called, call cob2 and/or document, something I can help with


replace LSIF parser from GITLAB

too much IO cost
keep too much data we do not need

pending

done


fix rocblas headers for newer rocblas version

fixes #548
Similar in spirit to: https://github.com/ROCm-Developer-Tools/ROCmValidationSuite/commit/54fc8e6afdd0c2b4357106a566e58c03366739fd

Good find @acxz seems these files got left out.


clientModules are still evaluated server-side instead of client-side

Hello,
i'd like to include some third party global javascript code in my docusaurus website.
the third-party code is not ssr-safe - it includes references to window and document objects and i can't change it (eg. to wrap it in an if document then... conditional).
To Reproduce
I've written a tiny js file that imports the js code and initialises it. it looks a bit like this:
import { initAll } from "../lbh/all";

initAll();

and then, in my docusaurus.config.js file, i include that file as a clientModule:
clientModules: [require.resolve("./src/docs.js")],

This runs great in development, but when I do docusaurus build it breaks with ReferenceError: document is not defined.
I assume docusaurus is still trying to include that third-party code in the server bundle somehow.
Possibly this isn't a bug and I've misunderstood what clientModules is supposed to be used for. If so, perhaps we could improve the docs to make this clear?
Expected behavior
Build succeeds.
Actual Behavior
ReferenceError: document is not defined
Your Environment

Public source code: https://github.com/LBHackney-IT/lbh-frontend/tree/feature/overhaul-docs
Docusaurus version used: 2.0.0-alpha.70
Operating system: Windows and Github Actions

Reproducible Demo
https://codesandbox.io/s/twilight-snowflake-zocv2
also raised in the discord

Yes that seems like a bug to me.
You can probably work around this temporarily by using:
if (typeof window !== "undefined") {
  require("../lbh/all").initAll();
}

The client modules seems to be imported on the SSR pipeline with import clientModules from '@generated/client-modules';. We'll figure out how to avoid importing them in the server.

good to know i'm not going mad! your workaround does the trick for now

After updating from 2.0.0-alpha.68 to 2.0.0-alpha.72, getting this error on build.

Docusaurus Node/SSR could not render static page with path=/ because of error: document is not defined

We should note that the original call stack isn't being preserved. If this bug ends up being a wontfix / intentional, it'd be nice to have that fixed.
https://app.netlify.com/sites/typescript-eslint/deploys/6190117990e17f0007564e0d:
2:28:46 PM: [success] [webpackbar] Server: Compiled with some errors in 49.46s
2:28:46 PM: ReferenceError: document is not defined
2:28:46 PM: Unable to build website for locale "en".
2:28:47 PM: Error: Failed to compile with errors.
2:28:47 PM:     at /opt/build/repo/node_modules/@docusaurus/core/lib/webpack/utils.js:202:24
2:28:47 PM:     at /opt/build/repo/node_modules/webpack/lib/MultiCompiler.js:554:14
2:28:47 PM:     at processQueueWorker (/opt/build/repo/node_modules/webpack/lib/MultiCompiler.js:491:6)
2:28:47 PM:     at processTicksAndRejections (node:internal/process/task_queues:78:11)
2:28:47 PM: error Command failed with exit code 1.

Fixing this issue is trivial (just do a conditional import of the client modules), the only problem being whether we want to do it or not. I feel like we don't even have a clear definition of what client modules are, what they are supposed to do, and how they should interact with the Docusaurus app itself.
@JoshuaKGoldberg Given that the client modules are directly required as side-effect when mounting the React app, what would you think we could do to provide the stack?

This is my first time peeking into the Docusaurus source code so just thinking out loud... Going off of slorber's helpful hint, the App.tsx imports client modules via:
https://github.com/facebook/docusaurus/blob/59f81e6490c18ce6d0e9877871539eb79c44958f/packages/docusaurus/src/client/App.tsx#L18
https://github.com/facebook/docusaurus/blob/b4ec7ec011fbf98fcd7e17a580814465d50a3950/packages/docusaurus/src/client/client-lifecycles-dispatcher.ts#L8
If you're ok with using top-level async/await, you could:
try {
  await import('./client-lifecycles-dispatcher');
} catch (error) {
  console.error("Oh no! Failed to load client modules!", error);
}

...perhaps wrapped with an if (process.env ... / if (typeof window ... or something like that.
An alternative would be to drop the try/catch and await and use import(...).catch(...). But that would make the timing asynchronous and nondeterministic on the client, which feels to me like a no-go.
But, again, I'm super unfamiliar with the Docusaurus execution model so those are just suggestions 😄

Yes, I think you've got the idea about where it's coming from. We just had some troubles with client modules' side effects (#6052) so I did look a bit into this. And when I said "conditional import" I mean:
if (typeof window !== 'undefined') {
  require('./client-lifecycles-dispatcher');
}

Because we use CJS throughout, we don't necessarily need to await import (and we don't even have ESM support yet—#5816 is decided to be postponed to v3).
However that still wouldn't make the error stack visible, because there's no caller here, just a bunch of require calls...

What is webpack version? undefined should work, maybe another package inject browser code for Node.js? Also do you have mini-css-extract-plugin and use web workers?

<EMAIL_ADDRESS>
undefined should work, maybe another package inject browser code for Node.js? Also do you have mini-css-extract-plugin and use web workers?

I don't understand what you mean. My goal is just to get a stacktrace alongside the error message, not to debug a CSS loading issue.
What I want is Webpack to provide us with an easy to debug error like this:
{
  errors: [
    {
       message: "ReferenceError: document is not defined",
+       error: "ReferenceError: document is not defined
+           at   /Users/sebastienlorber/Desktop/projects/docusaurus/website/_dogfooding/clientModuleExample.js:12
+           at   /Users/sebastienlorber/Desktop/projects/docusaurus/website/docusaurus/client-modules.js:6"
    }
  ]
}

Sorry, I think you need help to identify the problem, we have bundled code, so we don't have good original stack trace, if we need good stack trace we need source maps (like we do in browser), you can try https://nodejs.org/dist/latest-v14.x/docs/api/cli.html#cli_enable_source_maps, I don't try it, but I think it should work

I see thanks 👍 will try that

I'll probably be closing this as a wontfix, because over time, I start to understand "client module" here with "client" being "webpack" rather than "client-side rendering", and side-effects a client module induces could be equally useful in SSR, even if it means making people writing typeof window !== 'undefined' in most instances...
I'll leave it open to remind us that there's the source map problem, but this is totally different. All SSR errors have very poor stack traces.

Yes, it's a bit confusing because we have 3 things:

Node code

Client code that runs during SSR through Webpack server entry

Client code than runs in the browser through Webpack client entry

The question is clientModules should be run in only 3  or 2+3 🤷♂
For now, it's 2 + 3, which is more generic/flexible, but both can make sense eventually, it's hard to tell without a list of use-cases (and I think the initial one was the Google Analytics plugin)
We might has well provide a new option for modules initialized only in 3, and yet keep the current clientModules as is, I don't know if having 2 configs wouldn't be more confusing anyway 😅

Opened https://github.com/facebook/docusaurus/issues/7456. I'll close this as a working-as-intended, now that this behavior is documented. Our client modules API is designed with maximum flexibility in mind because we don't really want many APIs that do similar stuff.


Update index.html

Tidying up text.  Interim commit.

Fixes #3

changes have been deployed to website


Add a settings button or menu (in top right corner?)

We could add the cog icon in the top right corner:

It could either open the existing settings section (which currently is 3-4 clicks away):

Or show a small menu allowing to toggle some quick settings (like whether to show starred section).
Thoughts?

I like this idea. The name may change to something more specific, but I had to actually read through the list of settings to find the settings for "New Launcher" because the name is fairly generic. This would really help jump right to it.

@krassowski, have you started on this, or is this something I can take a stab at?

@krassowski, I've been trying to figure out how to open the specific settings page via a button, and I am struggling to find a way. It looks like I can use settingeditor:open, but I don't think I can pass it any arguments to specify specific plugins. Am I missing something?
If that's the case, then I think I will need to go with the second option here of adding a dropdown for key settings. Above you mentioned the setting for showing starred section. What other sections do you think should be included here?

It looks like I can use settingeditor:open, but I don't think I can pass it any arguments to specify specific plugins.

Something like this should work:
app.commands.execute('settingeditor:open', {
  query: 'New Launcher'
})

If that's the case, then I think I will need to go with the second option here of adding a dropdown for key settings

I think that would be best in either case - I think having quick settings may make them more discoverable.

What other sections do you think should be included here?

Including a toggle for searchAllSections might be valuable too.
Maybe something like:
✓ Search in All Sections
✓ Show Starred Section
  Open Settings

We can add more items later. I think you use Menu class and add commands to it (which will need to be created).

Any updates @andrewfulton9?

@krassowski, it's coming along. I've added commands for the new options, and added the commands to a Menu object. I am currently working on displaying the menu in a popup opened from a settings icon.


CT script broken after passing to overhauled version

[NuclearCraft-2o.0.2-1.12.2]
My code:
mods.nuclearcraft.chemical_reactor.removeRecipeWithOutput([<liquid:methanol>*1000, null]);
Error in CT log:
[INITIALIZATION][CLIENT][ERROR] Processes\petrochem.zs:155 > a method available but none matches the parameters (any[])
This is usually an error in your script, not in the mod
removeRecipeWithOutput(ZenTypeNative: crafttweaker.item.IIngredient, ZenTypeNative: crafttweaker.item.IIngredient)

So is there any method where I can remove recipes with a single output now?

Also add recipe method no longer allows a "null" within

The syntax for overhaul recipes has changed - you don't need the double brackets any more ;)

Cool, thanks for the reply!

No prob :)


Tests run twice when autoWatch is true

Thanks for a great plugin. I'm encountering an issue where tests are running twice while the karma server is auto-watching. This is with karma 0.12.28 and  karma-browserify 1.0.1. I have the following setup:
karma.coffee
module.exports = (config) ->
  config.set
    autoWatch     : true
    basePath      : ''
    browsers      : [ 'Chrome' ]
    colors        : true
    exclude       : [ ]
    files         : [ 'ui/modules/kindler/kindler.ui.spec.coffee' ]
    logLevel      : config.LOG_INFO # or LOG_DISABLE, LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG.
    port          : 9876
    reporters     : [ 'mocha' ]
    singleRun     : false

    frameworks    : [ 'browserify', 'mocha', 'chai' ]
    preprocessors : { 'ui/modules/kindler/kindler.ui.spec.coffee': [ 'browserify' ] }
    browserify    :
      debug       : true
      transform   : [ 'coffeeify' ]
      extensions  : [ '.coffee' ]

ui/modules/kindler/kindler.ui.spec.coffee
describe 'Kindler UI', ->
  it 'is true', ->
    expect(true).to.equal true

When I first run karma start karma.coffee, the tests run properly (one time) with the following output:
DEBUG [plugin]: Loading karma-* from /Users/Bellows/Development/tendfire/node_modules
DEBUG [plugin]: Loading plugin /Users/Bellows/Development/tendfire/node_modules/karma-browserify.
DEBUG [plugin]: Loading plugin /Users/Bellows/Development/tendfire/node_modules/karma-chai.
DEBUG [plugin]: Loading plugin /Users/Bellows/Development/tendfire/node_modules/karma-chrome-launcher.
DEBUG [plugin]: Loading plugin /Users/Bellows/Development/tendfire/node_modules/karma-mocha.
DEBUG [plugin]: Loading plugin /Users/Bellows/Development/tendfire/node_modules/karma-mocha-reporter.
DEBUG [framework.browserify]: created browserify bundle: /var/folders/vk/nsvhvwyj3yvb7qczgs4k65h00000gn/T/7eef085452ba2254bf49c9e849e70709bfbe389b.browserify
INFO [framework.browserify]: registering rebuild (autoWatch=true)
DEBUG [framework.browserify]: add bundle to config.files at position 0
INFO [karma]: Karma v0.12.28 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
DEBUG [temp-dir]: Creating temp dir at /var/folders/vk/nsvhvwyj3yvb7qczgs4k65h00000gn/T/karma-39564957
DEBUG [launcher]: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --user-data-dir=/var/folders/vk/nsvhvwyj3yvb7qczgs4k65h00000gn/T/karma-39564957 --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate http://localhost:9876/?id=39564957
DEBUG [framework.browserify]: building bundle
DEBUG [framework.browserify]: adding ui/modules/kindler/kindler.ui.spec.coffee to bundle
DEBUG [framework.browserify]: bundling
INFO [framework.browserify]: 2189 bytes written (0.06 seconds)
INFO [framework.browserify]: bundle built
DEBUG [watcher]: Resolved files:
    /Users/Bellows/Development/tendfire/node_modules/chai/chai.js
    /Users/Bellows/Development/tendfire/node_modules/karma-chai/adapter.js
    /Users/Bellows/Development/tendfire/node_modules/mocha/mocha.js
    /Users/Bellows/Development/tendfire/node_modules/karma-mocha/lib/adapter.js
    /var/folders/vk/nsvhvwyj3yvb7qczgs4k65h00000gn/T/7eef085452ba2254bf49c9e849e70709bfbe389b.browserify
    /Users/Bellows/Development/tendfire/ui/modules/kindler/kindler.ui.spec.coffee
DEBUG [watcher]: Watching "/var/folders/vk/nsvhvwyj3yvb7qczgs4k65h00000gn/T/7eef085452ba2254bf49c9e849e70709bfbe389b.browserify"
DEBUG [watcher]: Watching "/Users/Bellows/Development/tendfire/ui/modules/kindler/kindler.ui.spec.coffee"
DEBUG [watcher]: Add file "/Users/Bellows/Development/tendfire/ui/modules/kindler/kindler.ui.spec.coffee" ignored. Already in the list.
DEBUG [web-server]: serving: /Users/Bellows/Development/tendfire/node_modules/karma/static/client.html
DEBUG [web-server]: serving: /Users/Bellows/Development/tendfire/node_modules/karma/static/karma.js
DEBUG [web-server]: upgrade /socket.io/1/websocket/RjZns6XtyRv3B9uKuVon
DEBUG [karma]: A browser has connected on socket RjZns6XtyRv3B9uKuVon
INFO [Chrome 39.0.2171 (Mac OS X 10.10.1)]: Connected on socket RjZns6XtyRv3B9uKuVon with id 39564957
DEBUG [launcher]: Chrome (id 39564957) captured in 1.786 secs
DEBUG [karma]: All browsers are ready, executing
DEBUG [web-server]: serving: /Users/Bellows/Development/tendfire/node_modules/karma/static/context.html
DEBUG [web-server]: serving (cached): /Users/Bellows/Development/tendfire/node_modules/chai/chai.js
DEBUG [web-server]: serving (cached): /Users/Bellows/Development/tendfire/node_modules/karma-chai/adapter.js
DEBUG [web-server]: serving (cached): /Users/Bellows/Development/tendfire/node_modules/mocha/mocha.js
DEBUG [web-server]: serving (cached): /Users/Bellows/Development/tendfire/node_modules/karma-mocha/lib/adapter.js
DEBUG [web-server]: serving (cached): /var/folders/vk/nsvhvwyj3yvb7qczgs4k65h00000gn/T/7eef085452ba2254bf49c9e849e70709bfbe389b.browserify
DEBUG [web-server]: serving (cached): /Users/Bellows/Development/tendfire/ui/modules/kindler/kindler.ui.spec.coffee

Start:
  Kindler UI
    ✔ is true

Finished in 0.006 secs / 0.001 secs

SUMMARY:
✔ 1 tests completed

However, each successive time the tests run twice with the following output:
INFO [watcher]: Changed file "/Users/Bellows/Development/tendfire/ui/modules/kindler/kindler.ui.spec.coffee".
DEBUG [framework.browserify]: bundling
INFO [framework.browserify]: 2189 bytes written (0.01 seconds)
INFO [framework.browserify]: bundle updated
DEBUG [karma]: List of files has changed, trying to execute
DEBUG [karma]: All browsers are ready, executing
INFO [watcher]: Changed file "/var/folders/vk/nsvhvwyj3yvb7qczgs4k65h00000gn/T/7eef085452ba2254bf49c9e849e70709bfbe389b.browserify".
DEBUG [web-server]: serving (cached): /Users/Bellows/Development/tendfire/node_modules/karma/static/context.html
  Kindler UI
    ✔ is true

Finished in 0.005 secs / 0 secs

SUMMARY:
✔ 1 tests completed
DEBUG [framework.browserify]: files changed
DEBUG [framework.browserify]: bundling
INFO [framework.browserify]: 2189 bytes written (0.01 seconds)
INFO [framework.browserify]: bundle updated
INFO [watcher]: Changed file "/var/folders/vk/nsvhvwyj3yvb7qczgs4k65h00000gn/T/7eef085452ba2254bf49c9e849e70709bfbe389b.browserify".
DEBUG [karma]: List of files has changed, trying to execute
DEBUG [karma]: All browsers are ready, executing
DEBUG [web-server]: serving (cached): /Users/Bellows/Development/tendfire/node_modules/karma/static/context.html
  Kindler UI
    ✔ is true

Finished in 0.004 secs / 0 secs

SUMMARY:
✔ 1 tests completed

This happens reliably as soon as I add the browserify preprocessor. I have also tried it with vanilla JS and without any options passed to browserify, and the tests still run twice. I've also tried it with jasmine instead of mocha and chai with the same results. It also occurs with the standard progress runner.
Setting autoWatch = false and then using karma run karma.coffee works properly.
Is this something with my setup or a bug?
Thanks for your time!!

I'm glad I found this issue thread and workaround, this was driving me nuts.

bundleDelay: 750 did it for me too! I think would be really helpful if this option perhaps was given and explained in the project readme file under Usage.

IMO this bug should be re-opened since using a bundleDelay timeout will never result in a system that is both reliable and performant.
I assume that what's happening here is that Karma is watching the source directories for change, then running the pre-processors and waiting for bundleDelay milliseconds before assuming they're finished? Assuming this is the case, couldn't the pre-processor be responsible for telling Karma when it's finished, so we wouldn't need the bundleDelay config in the first place?

This is only an issue on OS X because of delays in fsevents reporting changes. No easy fix.

@dchambers Feel free to look into the issue and provide us with a pull request.

The problem appears to be because some files are watched by both karma and watchify. With the following settings:
frameworks: ['browserify'],
files: ['**/*.spec.js'],
preprocessors: {'**/*.spec.js': ['browserify']}

The resulting files array has watch:true for all of the .spec.js files, as well as the bundle file added by the framework. If I change a spec file, tests execute twice. If I change a source file (only observed by watchify), tests execute only once.
I'm thinking the fix would be for the framework to grab the preprocessed files and turn off watch, will submit a pull request tomorrow :)

nvm, I was able to get around this by using the object format in files array:
files: [{pattern: '**/*.spec.js', watched: false, included: true, served: true}]

+1 for the @mattfysh solution! This was such a pain point in our workflow. Thanks for the help!

thanks @nikku solved it.

This article helped me fix this issue:
https://medium.com/@SchizoDuckie/so-your-karma-tests-run-twice-this-is-what-you-need-to-do-be74ce9f257e

Both solutions solved this issue for me.

Using files: [{pattern: '**/*.spec.js', watched: false}] @mattfysh

or...

Adding bundleDelay: 800 to Browserify's config block @nikku

Thanks!

This thread is a bit old but has anyone figured out how to also include eslint into karma without the double run issue? The issue being that browserify isn't re-running eslint since it's using it's own watcher. I'd rather have karma do the watching so it can decide what processors to run the files through.


OPAM for windows

I have been playing with compiling OPAM both using Cygwin and MSYS / MINGW32.
Cygwin:
make install fails because the resulting executables have a .exe suffix.
MSYS:
I run into an old but not too well documented problem with flexdll during linking:
let get_output1 ?use_bash cmd =
    List.hd (get_output ?use_bash cmd)

This function isn't happy when invoked on something that produces an empty list as in the following code snippet from the flexdll GitHub:
get_output1 (!gcc ^ " -print-sysroot") ^ "/mingw/lib";
Unfortunately gcc -print-sysroot in MSYS seems to do exactly that.
The error message is ** Fatal error: hd.

See https://github.com/ocaml/opam/issues/246

I made some more progress in Cygwin, but opam init was acting up at least in Cygwin64.

The best starting point seems to be https://github.com/dra27/opam/tree/windows.

I think I did read somewhere (don’t remember where…) that this is gonna be merged in the OPAM master branch relatively soon right ?

Last time I chatted with David Allsop (dra27) this wasn't quite ready to be merged. But this was a couple months ago, maybe the situation has improved.

Closing this since I now distribute opam for windows along with the installer + an fstar opam package.


Missing items: Drape of Icy Intent

Links to WOTLK Wowhead for each item:
https://www.wowhead.com/wotlk/item=45461/drape-of-icy-intent

wowhead shows its in phase 5 -- im sure this is incorrect but we won't fix it until wowhead does.


Build fails due to missing libxlt

Take master @ e7649ba
git clone --recursive https://github.com/daphne-eu/daphne.git
./build.sh

Build fails with the following error:
[1/6] Linking CXX shared library release/libarrow.so.1300.0.0
FAILED: release/libarrow.so.1300.0.0
...
/usr/bin/ld: cannot find -lxtl: No such file or directory
collect2: error: ld returned 1 exit status

Hi!  I ran into this one some time ago. Iirc you need to get rid of xtensor packages installed in your system.

@corepointer Thanks for a hint. I don't think it's installed. Let me try to install it instead and see what happens.

No, it did not help. The related Ubuntu packages don't have a library, they contain headers (no wonder as xtl is a header-only library).

No, I don't:
apt search xtensor
Sorting... Done
Full Text Search... Done
libxtensor-blas-dev/mantic 0.20.0-2 amd64
  an extension to xtensor offering bindings to BLAS and LAPACK

libxtensor-dev/mantic 0.24.3-2ubuntu1 amd64
  multi-dimensional arrays with broadcasting and lazy computing

xtensor-blas-doc/mantic 0.20.0-2 all
  documentation for xtensor-blas

xtensor-dev/mantic 0.24.3-2ubuntu1 all
  multi-dimensional arrays with broadcasting (transition package)

xtensor-doc/mantic 0.24.3-2ubuntu1 all
  documentation for xtensor

xtl-dev/mantic 0.7.2-2.1 all
  basic tools (containers, algorithms) used for xtensor and xeus

Still fails with the same error after cleaning the Arrow's build directory. But this was expected as the initial error happened with a  completely fresh build after a clone.

The error can be avoided by providing -DARROW_BUILD_SHARED=OFF, but then later on daphne itself fails to link of course (Arrow::arrow_shared is missing)

If you just wanna make it work, another workaround is to remove the -lxtl occurrences from the ninja build file in the build directory and starting the build and install steps from there manually.

Ok, based on this comment https://github.com/apache/arrow/issues/37146#issuecomment-1678308414 I found a workaround: remove the libxsimd-dev package. probably that was the one you meant @corepointer.
Not sure if it can be considered as a solution, this kind of a trick might be fine within a container, but removing a package at the host system level does not  look good.


e3_Classes_Shaman Malo Idol Support

Add code to e3_Classes_Shaman.inc to summon and maintain malo idol when requested

Requested changes have been made


[BUG] Cannot save the prompt on a Mac on the settings page.

Away-Sleep on the Reddit thread mentioned this.

fixed in the last release: https://github.com/juliooa/secondbrain/releases/tag/v0.2.1


Meta issue tracking implementation of generic function type syntax in Dart 1.5

This is a tracking bug for implementing support for generic function type syntax (generic typedef) in Dart 1.5.
Proposal: https://gist.github.com/eernstg/ffc7bd281974e9018f10f0cb6cfee4aa
Dart 2 supports generic methods and generic tear-offs (or anonymous functions). This means that a function can request a function that is generic:
// Takes a function `f` that is generic on T.
void foo(A<T> constructorForA<T>()) {
  A<int> x = constructorForA<int>();
  A<String> x = constructorForA<String>();
}

It is straightforward to add the syntax to the existing syntax for function types for parameters (as was done in the example). However, we don't have an easy way to do the same for fields or local variables:
// Does *not* do what we want it to do:
typedef A<T> ConstructorForAFun<T>();

A f;  // A function that returns an `A<dynamic>`.

We already used the most consistent place for the generic method argument as a template argument to the typedef itself. If we could go back in time, we could change it as follows:
typedef<T> List<T> TemplateTypedef();
TemplateTypedef<int> f;  // A function that returns a List<int>.
TemplateTypedef f;  // A function that returns a List<dynamic>.

typedef List<T> GenericTypedef<T>();
GenericTypedef f;  // A function that is generic.
List<int> f<int>();
List<String> f<String>();

Given that this would be a breaking change we have considered alternatives and are now exploring new typedef syntax altogether. The idea is to provide syntax that can also be used for locals and fields at the same time.
For example:
typedef F = (int) -> void;  // Function from (int) to void.
typedef F<T> = () -> List<T>;  // Template Typedef.
typedef F = <T>(T) -> List<T>;  // Generic function from T to List<T>.

This way we would solve 3 issues at the same time:

users often forget the parameter name and expect typedef void F(int) to be a function that takes an int.
users can write the function type of fields and locals without needing to write a typedef.
of course: we can write the type of a generic function.

While investigating different syntax we found that the following points need consideration:

nullability: the syntax must be nullable without too much hassle:  (int)->int?;  // A function that is nullable, or that returns a nullable integer?
 Problem disappears with <-
 int <- (int)? ; vs int? <- (int)

readability
interactions with union types (if we ever want them).

The corresponding individual issues will be listed here:

[x] Language team decision on syntax (private issue): dart-lang/dart-lang-evolution#88
[ ] Final specification issue: #27970
[ ] Analyzer implementation issue: #27969
[ ] VM implementation issue: #27966
[x] Dart2js implementation issue: #27967
[ ] DDC implementation issue: #27971
[ ] dartfmt issue: https://github.com/dart-lang/dart_style/issues/563
[ ] dartdoc issue: https://github.com/dart-lang/dartdoc/issues/1321
[ ] Make sure changelog has an entry for this

@crelier

Status update:
I have updated the issue description for more context.
We are still mainly exploring the "how does it look and feel" parts of the syntax (while still paying attention to how the parser should work).
The following CLs show explorations:
https://codereview.chromium.org/2439573003/
https://codereview.chromium.org/2466393002/

lgtm with a slight preference for the <- variant.

status: Prototyping several options, @floitschG is driving.

Latest proposal:
typedef F = void Function(int);

// also works for field or local types:
final int Function(String, bool) myFun = ...;

works nicely with the current Function type.
very similar to the existing parameter types. Hopefully this also means that the parser can reuse parts of the parameter code.
longer than <- or ->.

Here is a CL that experiments with it: https://codereview.chromium.org/2482923002/
Note: we would still allow Function(int x). However, Function(int) should be a function that takes int (and not a function that takes a dynamic argument of name int).
Eventually we would like to change the old syntax to do the same, but that requires some migration effort.

I do not like this latest proposal. The name Function is promoted to some kind of keyword used for parsing. Also, Function is not declared to be generic, therefore, using it to declare a non-generic typedef for a generic function will look like an error.

It's not a perfect choice, but it has its advantages.
Dart already uses Function as general type for functions. It is true that Function was a real type, and the proposed function-type syntax shifts it into a keyword-like position, but there is a strong connection between the two. It's easy to see and understand that Function (without return and parameter types) is just like a reduced function-type syntax. It's not the same (as you correctly state), but it's very close to it.
It's true that the Function type/class isn't generic, but it also has no way to declare its return and parameter types. Clearly, the function-type syntax does more than just the Function type. It really is an anonymous subtype of Function. As such, it doesn't feel wrong to add generic functionality to it.
Personally, I'm not that much concerned about the fact, that Function now becomes a keyword for function types. On the contrary, I would expect this to improve the readability, since the new syntax is so close to the existing parameter types, and the meaning of the stand-alone Function fits the new interpretation.
Function f;  // a function.
Function(int x) f;  // a function that takes an int.
double Function(int) f;  // a function that takes an int and returns a double.

I'm more concerned about the fact that it is longer, and that we intend to interpret one-identifier parameters differently in the new syntax than in parameter types in the old syntax: Function(int) is a function that takes an int and not a function that takes one dynamic argument of name int. However, I believe that the benefits outweigh the cost here. In fact, we would advocate to change the meaning of one-identifier types for old-syntax parameter types, too. This would be a breaking change, though, and would require a careful migration effort.
Just for completeness sake, here are some examples of how the syntax would deal with the different generic arguments (to the typedef or for the function).
typedef F = void Function(int);  // Function from (int) to void.
typedef F<T> = List<T> Function();  // Template Typedef.
typedef F = List<T> Function<T>(T);  // Generic function from T to List<T>.

I agree that having a special marker for function types has advantages and is easier to read. I only find the already defined "Function" a questionable choice for this marker, especially since the formal argument syntax is modified and not what you would expect after an identifier (i.e. regular function signature syntax). That's the reason I'd prefer a symbol rather than an identifier (or keyword), as in the previous proposals.
I agree that "<-" of the previous proposal is a bit hard to read when generic.
T <- <T>(T)
Maybe reusing the just retired # symbol would work better.
T #<T>(T)
As a side note, you will also need to specify the syntax for optional arguments (no default values allowed), both positional and named, something like:
void Function(int, [int, bool]);  // optional positional
void Function(int, {int i, bool b});  // optional named

# is still used for symbols (which was one of the reasons we didn't like it for tear-offs. For example, it wasn't possible to tear off globals).
Yes. We will have to specify the syntax for the optional arguments. (This is the reason that Function<R, P1, P2> isn't even a real option). Your proposal looks right (and I don't think there are any corner-cases that are hiding).
I/We will think about using something else than Function, but I doubt that we will find something better. The obvious candidates, -> and <-, have already been considered, and most other choices are probably inferieur.
Personally, I also tend to avoid using symbols for uncommon functionality. Function types are not extremely rare, but they are not common enough to warrant their own symbol.

I/We will think about using something else than Function, but I doubt that we will find something better

Would it be possible to add a new contextual keyword like function or fun or something? I'm guessing that would be a breaking change, but maybe it's not actually ambiguous in the grammar?

Personally, I also tend to avoid using symbols for uncommon functionality.

+1. Punctuation is almost always the wrong choice for new syntax unless it represents something almost all users already know, like using + for addition.

The backwards-compatible advantage in using Function  is nice, but not essential. If you can't omit the parameters, so that int Function x is any function returning an int, then the syntaxes will be completely disjoint. If you can omit the parameters, then I think we should definitely use Function as the keyword - then you can write Function Function Function x; and have something thrice callable :)
We can make Function no longer be a class. Nobody should implement Function anyway, so it's not a loss. The only complication is Function.apply which needs a namespace, but if we remove call and make function objects completely distinct from class instances, then they can have apply as an instance method.

About omitted parameter lists in the <return-type> Function<formal-parameter-list> syntax: That would allow developers to specify a return type and leave the parameter list unspecified (that is: anything goes), which is exactly what was requested in, say, https://github.com/dart-lang/sdk/issues/26420.
We might decide to introduce syntax for variadic functions at some point, in which case this will become a shorthand for "the most general argument list", but even at that point it seems likely that such a shorthand would be convenient.

In the informal spec (which will be made public when it has matured a bit) I've proposed a rename of this feature to 'Generalized type aliases' (because a limitation of this mechanism to handle generic function types only is artificial, and presumably counter productive).

Could we add some tests cases for this so that the implementations can be verified.

Marking spec complete for implementation purposes based on https://github.com/dart-lang/sdk/issues/27970#issuecomment-266673190

Moving to 1.22 for implementation.

Made the informal specification available as a public gist.

Groovy, added a link to it up top in the issue description so it's easy to find.

Based on several requests I've updated the grammar in the informal spec to make int Function(int) style types a syntax error in various places (e.g., extends, implements, with). This was already a static semantic error, but the fact that it is now also a syntax error may simplify some tasks when dealing with programs as syntax only (that is, where no static analysis is performed).

The current informal spec changes the rule for type:
type:
    typeName typeArguments? |
    functionType // NEW

but type is used in other rules in the spec, not related to the typedefs, for example:
mixinApplication: type mixins interfaces?
superclass: extends type
typeTest: isOperator type

etc. I guess you are not going to change the syntax of these constructs, are you?
//cc @eernstg

Sorry, ignore my comment, I see that you updated spec while I was writing it :)

@eernstg  Well, I think there's still something to fix. type is used also in:
finalConstVarOrType
varOrType
typeParameter
declaration
returnType
typeList
onPart
typeTest
typeCast

I also could miss a couple of cases.
Also, 'It is a compile-time error if a functionType is used as a superclass...' can now be removed I guess.

It might be easier to leave type as is and change normalParameterType and typedIdentifier instead:
normalParameterType: type | functionType | typedIdentifier
typedIdentifier: type identifier | functionType identifier

Hello Alexander, thanks for your input!
Yes, we did intend to change those other locations: A function type wasn't inline expressible until now, but we want to make them expressible, such that developers aren't forced to use a typedef to express function types in all cases, they can just go ahead and write them where they need them.
Note that typedefs introduce aliases, not new types, so there is no semantic difference between being able to give a new name to a function type and then using that name where that type should be, versus being able to write that function type directly where it is needed.
With finalConstVarOrType, varOrType, returnType you'd get new possibilities like
int Function(int) myFunction = ..., and int Function(int) foo() => ..., with typeParameter and typeList you'd get List<int Function(int)> (but not .. extends int Function(int) nor .. with MyMixin, int Function(int), because that's been defined away with the new grammar rules). If you think that's too unwieldy you can always go back to the old style and typedef. Similarly, you can use f is int Function(int) and .. as ... So that's a feature rather than a bug. ;-)
You can't remove the sentence about compile-time errors because class C extends D could still have a function type as a superclass if D is introduced by a typedef.

The number of changes in the grammar doesn't differ much if you reorganize: There are several places where we need the general type (which includes functionType) and several places where we need typeWithoutFunction.

Ok, thanks for the explanation!

Bug fix applied to the informal spec: Added missing grammar update for redirectingFactoryConstructorSignature

Won't parsers have problems with the recursion type -> functionType -> returnType -> type ->...?
type: typeWithoutFunction | functionType
functionType: returnType? 'Function' typeParameters? parameterTypeList
returnType: void | type

I don't think the return-type/type distinction is a problem to parse.
After parsing any type, you have to check if it's followed by Function< or Function(, and if so, it's a return type of a function type, otherwise it's just a type by itself. There shouldn't be any ambiguity, and you only need a very short look-ahead.

A breaking change has been detected in google3 code, the following example captures the jist of it
import 'dart:core' hide Function;
class X {
X() { print(1); }
X.f() { print(2); }
}
class Function extends X {
Function() : super();
Function.f() : super.f();
}
main() {
new Function();
new Function.f();
}
Please clarify

This is an unfortunate consequence of this change. At some point I looked through the Google3 code but didn't see any class Function that wasn't in our own code. Maybe that changed...
In any case, please let us know where this happened and we will work on fixing it. Thanks for notifying us.

Punting to 1.23 per email discussion

We reverted the syntax for 1.22 and add a deprecation warning for class Function instead.
1.23 will then feature the actual syntax.

Is this still on track for 1.23?

I can't speak for anyone else, but I am actively working on the analyzer support.

I am not sure who you are asking, but the corresponding VM issue has been closed on January 27.

@leafpetersen see detailed status in the two unchecked items in the top checklist

For dartdoc, it turns out there's no need to do anything directly for the SDK release and the work that does need to be done isn't blocking any longer.   I've dropped the 1.23 label from dart-lang/dartdoc#1321 accordingly, and there are more details there as to why.

I had misunderstood a key piece of the feature, I recommend blocking this feature on dartdoc now.  Dartdoc in the SDK won't crash without the upcoming fix, but it will display the typedef with the generic parameter missing.

dartfmt support is in flight.

dartfmt is fixed and in the repo.

@leafpetersen looks like this one is still missing in changelog.md?

I left it out, since I wasn't 100% sure that it was landing, but it looks like maybe the dartdoc issue is resolved?  If so, I can go ahead and write something up.

There seems to still be quite a bit of missing functionality still in the analyzer implementation, see discussion at the end here:  https://github.com/dart-lang/sdk/issues/27969 .

Can we go ahead and update changelog.md now?

Any updates on this?

@leafpetersen @floitschG can we please finish this for 1.24?


Can't copy page in admin if CMS_PERMISSION = False

I can't if copy a page if CMS_PERMISSION is set to false. I tested with all defaults from djangocms-installer.
djangocms -p . mysite
django==1.8.11
django-cms==3.2.3
In settings I changed CMS_PERMISSION to:
CMS_PERMISSION = False

On page reload the copy disappears

pip freeze:
dj-database-url==0.4.0
Django==1.8.11
django-classy-tags==0.7.2
django-cms==3.2.3
django-formtools==1.0
django-reversion==1.8.7
django-sekizai==0.9.0
Django-Select2==4.3.2
django-treebeard==4.0
djangocms-admin-style==1.1.0
djangocms-column==1.6.0
djangocms-file==1.0
djangocms-googlemap==0.4.0
djangocms-inherit==0.1.1
djangocms-installer==0.8.7
djangocms-link==1.7.2
djangocms-picture==0.2.0
djangocms-style==1.7.0
djangocms-teaser==0.2.0
djangocms-text-ckeditor==2.9.1
djangocms-video==1.0.0
html5lib==0.9999999
Pillow==3.1.1
pytz==2016.3
six==1.10.0
tzlocal==1.2.2

Verified regression introduced in 3.2
@FinalAngel @vxsx
In 3.1 we do a check for that.options.settings.permission and only render the copy dialog if this is True, otherwise we proceed with the copy operation.
In 3.2 the conditional is not there and so we try to load the dialog every time even when permissions are off.

Hi @wullerot, can you try to reproduce with latest release/3.2.x branch?

Hi @vxsx, release/3.2.x works like a charme, thanks a lot.