Failed file upload returns an FtpResult with neither IsFailed nor IsSuccess flags set to true

FTP Server OS: Windows
FTP Server Type: The FTP server is running on FANUC R-30iB/R-30iB+ Robot Controllers. I'm not sure about what exactly our FTP server is, but my best guess is that it's a custom FTP implementation.
Client Computer OS: Windows
FluentFTP Version: 51.1.0
Framework: .NET 8
We're attempting to upload a set of files to our Robot Controller using the UploadFiles method on the AsyncFtpClient. We are using the returned list of FtpResult instances to determine whether each file was successful or not with the IsSuccess and IsFailed flags. In the Fluent FTP logging we're seeing that the file failed to upload due with error code 550 "Device Function Code invalid". Despite the failure, we're not seeing the IsFailed flag as true in the FtpResult object.
Looking into the source code, it looks like the IsFailed flag only gets set to true if an exception occurs and the FtpStatus.Failed result we were returned from the UploadFileFromFile method is not reflected in the FtpResult if it fails.
Would something like this make sense to do?
UploadFiles.cs -> AsyncFtpClient.UploadFiles -> Line 99
// try to upload it
try {
	var ok = await UploadFileFromFile(result.LocalPath, result.RemotePath, false, existsMode, FileListings.FileExistsInNameListing(existingFiles, result.RemotePath), true, verifyOptions, token, progress, metaProgress);

	// mark that the file succeeded
	result.IsSuccess = ok.IsSuccess();
	result.IsSkipped = ok == FtpStatus.Skipped;

	// trinnan42: Add this line?
	result.IsFailed = ok.IsFailure();

	if (ok.IsSuccess()) {
		successfulUploads.Add(result.RemotePath);
	}
	else if ((int)errorHandling > 1) {
		errorEncountered = true;
		break;
	}
}

I'd also like to have the information of why the file failed top copy, in this case the 550 error
Logs :
[Edited to remove some private information]
# AutoConnect()

# AutoDetect(CloneConnection = False, FirstOnly = True, IncludeImplicit = True, AbortOnTimeout = True, RequireEncryption = False, ProtocolPriority = [Tls11, Tls12])
Status:   Auto-Detect trying encryption mode "Auto" with "Tls11, Tls12"

# Connect(False)
Status:   FluentFTP <IP_ADDRESS>(.NET 6.0) AsyncFtpClient
Status:   Connecting(async) AsyncFtpClient.FtpSocketStream(control) IP #1 = ***:21
Status:   Waiting for a response
Response: 220 R-30iB FTP server ready. [SpotTool+ V8.30P/70] [739182.711d]
Command:  AUTH TLS
Status:   Waiting for response to: AUTH TLS
Response: 500 Command not understood. [6ms]
Command:  USER ***
Status:   Waiting for response to: USER ***
Response: 230 User logged in [NORM]. [13ms]
Command:  FEAT
Status:   Waiting for response to: FEAT
Response: 500 Command not understood. [12ms]
Status:   Text encoding: System.Text.UTF8Encoding+UTF8EncodingSealed
Command:  OPTS UTF8 ON
Status:   Waiting for response to: OPTS UTF8 ON
Response: 500 Command not understood. [3ms]
Command:  SYST
Status:   Waiting for response to: SYST
Response: 215 UNKNOWN [SpotTool+ V8.30P/70]. [20ms]
Status:   Active ServerHandler is: None
Warning:  Cannot auto-detect listing parser for system 'Unknown', using Unix parser
Status:   Listing parser set to: Unix
Command:  PWD
Status:   Waiting for response to: PWD
Response: 257 "md:\" is current directory. [3ms]

# SetWorkingDirectory("MD:")
Command:  CWD MD:
Status:   Waiting for response to: CWD MD:
Response: 250 CWD command successful. [4ms]
Command:  PWD
Status:   Waiting for response to: PWD
Response: 257 "md:\" is current directory. [7ms]

# UploadFiles(System.Linq.Enumerable+WhereSelectListIterator`2[System.String], "/", Skip, False, Retry, None)

# GetNameListing("/")
Command:  TYPE I
Status:   Waiting for response to: TYPE I
Response: 200 Type set to  I [5ms]

# OpenDataStreamAsync("NLST /", 0)

# OpenPassiveDataStreamAsync(PASV, "NLST /", 0)
Command:  PASV
Status:   Waiting for response to: PASV
Response: 227 Entering Passive Mode (XXX,XXX,XXX,XXX,107,110) [6ms]
Status:   Connecting(async) AsyncFtpClient.FtpSocketStream(data) IP #1 = ***:27502
Command:  NLST /
Status:   Waiting for response to: NLST /
Response: 150 ASCII data connection. [17ms]
+---------------------------------------+
Listing:  fr:
Listing:  mc:
Listing:  md:
Listing:  mdb:
Listing:  rd:
Listing:  ud1:
Listing:  ut1:
Status:   Disposing(async) AsyncFtpClient.FtpSocketStream(data)

# CloseDataStream()
Status:   Waiting for response to: NLST /
Response: 226 ASCII Transfer complete. [54ms]
-----------------------------------------
Status:   Disposing(async) AsyncFtpClient.FtpSocketStream(data) (redundant)

# UploadFile("/test.xml", "/test.xml", Skip, False, Retry)

# OpenWrite("/test.xml", Binary, -1, False)

# OpenDataStreamAsync("STOR /test.xml", 0)

# OpenPassiveDataStreamAsync(PASV, "STOR /test.xml", 0)
Command:  PASV
Status:   Waiting for response to: PASV
Response: 227 Entering Passive Mode (XXX,XXX,XXX,XXX,109,111) [5ms]
Status:   Connecting(async) AsyncFtpClient.FtpSocketStream(data) IP #1 = ***:28015
Command:  STOR /test.xml
Status:   Waiting for response to: STOR /test.xml
Response: 150 Binary data connection. [15ms]
Status:   Uploaded 83 bytes, 3ms, 26.4 KB/s
Status:   Disposing(async) AsyncFtpClient.FtpSocketStream(data)
Status:   Waiting for response to: STOR /test.xml
Response: 550 Device Function Code invalid [64ms]
Source server does not support any common hashing algorithm
Falling back to file size comparison

# GetFileSize("/test.xml", -1)
Status:   File Verification: FAIL

# Disconnect()
Command:  QUIT
Status:   Waiting for response to: QUIT
Response: 221 Goodbye. [9ms]
Status:   Disposing(async) AsyncFtpClient.FtpSocketStream(control)

# Dispose()
Status:   Warning: sync dispose called for AsyncFtpClient object

# DisposeAsync()
Status:   Disposing(async) AsyncFtpClient

# Disconnect()
Status:   Connection already closed, nothing to do.
Status:   Disposing(async) AsyncFtpClient.FtpSocketStream(control) (redundant)

To give a little more information, we don't have a problem with the FTP process itself. I believe our Robot Controller is denying this file to be copied for a legitimate reason. We are able to successfully download and upload other legitimate files. Our concern is only with the reporting so that we can display why things failed: display the 550 error, etc.
If you need any additional information, please let me know. Thanks!

Thanks for this input.
I have made some initial changes to take the IsFailed() fact, just as you suggested, and merged those changes. Perhaps you could try out the current master instead of Nuget and we can take this from there to see if we can percolate the failure reason into the FtpResult as a next step.
Note that I can find "550 Device Function Code invalid" in Google - especially in FANUC and Robotics contexts, just as an aside.

Despite the failure, we're not seeing the IsFailed flag as true in the FtpResult object.

I feel that IsFailed is sort of redundant, in that IsFailed is in effect <---- not IsSuccess and not IsSkipped, but I suppose it is included more or less for completeness.

I feel that IsFailed is sort of redundant, in that IsFailed is in effect <---- not IsSuccess and not IsSkipped, but I suppose it is included more or less for completeness.

Yeah that makes sense. My concern was that we were also seeing some situations where we were successfully copying but not getting the IsSuccess flag (nor any other flag). I'll need to look into that some more though, because later I was getting the IsSuccess flag. Not sure yet, if we can recreate it or not...
We're working on testing with the current master.

We tested with those changes and we are now getting IsSuccess and IsFailed as expected.

see if we can percolate the failure reason into the FtpResult as a next step.

That would be great!

@trinnan42
I just realised that there might already be a nice way for you to check "what happened". About a year or even longer ago, I put a property into the client called
		/// <summary> Gets the last replies received from the server</summary>
		public List<FtpReply> LastReplies { get; set; }

This will supply you with the last 5 FtpReplys. You should be able to see a 5xx and text et al.

Could we assign the LastReply to an FtpReply property of each FtpResult?
If we only have the LastReply and LastReplies properties, I think we would need to write some logic to determine how to associate the replies with each file we're uploading/downloading. Especially since we're also now using the UploadDirectory and DownloadDirectory methods so at the moment we don't have a list on our end of the files we're intending to copy. (Speaking of: will the changes for populating the IsFailed property on FtpResult be reflected in those.)
I appreciate your time helping us out here and I would be willing to do a PR to make these changes if you want. Thanks!

Could we assign the LastReply to an FtpReply property of each FtpResult?

Oops, my bad. I totally forgot that we are populating this list. And yes, one would need to add the LastReplies list to the FtpReply list.
I think I also want to investigate passing other errors (beyond FTP server error replies) up to the top. Think of I/O errors, timeouts and so on.
So my previous suggestions was simply premature and born out of over-enthusiasm.

would be willing to do a PR to make these changes

Always appreciated. But let's find the most beautiful way do fix this first.

I've been playing around with the current code (with our recent addition).
Look - failures should be found in the Exception field of the FtpResult.

550 Device Function Code invalid as response would also cause such a result. The problem seems to be that a verification is subsquently performed, whose failure masks the previous failure.
Need to look at that in more detail.

Can you also check what I mentioned in my last post?


PureVPN WireGuard

Hello I like your project.
So firstly thank you !
I don't know if its better to create "issue" or trying to find answer elsewhere, I hope I am not going something I shouldn't ?
I am github, dockerhub and docker enthusiast but beginner ... :(
The project seems very complete but I am missing some information PureVPN WireGuard is "straight forward" on my host !
All I have to do is :
sudo wg-quick up wg0
And one sec later I am connected.
Of course I had to insert their conf file on my host :
sudo nano /etc/wireguard/wg0.conf
Which is a this moment
[Interface]
PrivateKey=**_myprivatekey_**
Address=**_theserveripaddr_**
DNS=<IP_ADDRESS>,<IP_ADDRESS>
[Peer]
PublicKey=**_mypublickey_**
AllowedIPs=<IP_ADDRESS>/0
Endpoint=sx**_SERVERNAME_**-wg.pointtoserver.com:51820
PersistentKeepalive=21

So when I have run
sudo docker run -it \
--rm \
--cap-add=NET_ADMIN \
-e VPN_SERVICE_PROVIDER=purevpn \
-v /Docker/gluetun/wg0.conf:/gluetun/wireguard/wg0.conf \
-v gluetunvpn_data:/data \
-e SERVER_COUNTRIES=**_Mine_** \
qmcgaw/gluetun:latest

It asks me the parameters but in the documentation I have read that I only needed a conf file mounted to /gluetun/wireguard/wg0.conf.
ERROR reading from files: provider: server selection: wireguard: parsing peer section: endpoint host is not an IP: ParseAddr("sx**_SERVERNAME_**-wg.pointtoserver.com"): unexpected character (at "sx**_SERVERNAME_**-wg.pointtoserver.com")
Where is my mistake ?
By the way its not a problem for me to give the variables ...
Thanks again :)
Edit1 : if i give the variables :
-e WIREGUARD_PRIVATE_KEY=prikey \
-e WIREGUARD_ADDRESSES=ipaddr \
-e WIREGUARD_PUBLIC_KEY=pubkey \

ERROR reading from environment variables: wireguard: environment variable WIREGUARD_ADDRESSES: netip.ParsePrefix("**_X.X.X.X_**"): no '/'
So welcome to edit2 I guess ...
Edit2 : didnt see the container is waiting the CIDR for the variable "WIREGUARD_ADDRESSES" the so I added the /32
Edit3 : the container doesn't resolve the endpoint address which is sxXXXXXXX-wg.pointtoserver.com as an IP address so I pinged it and it returned an IP which I used to replace the "VPN_ENDPOINT_IP".
Edit 4 : Now the container starts but can't establish connection to PureVPN
Error (I only have modified X.X.X.X:51820  and Y.Y.Y.Y:44550) :
2023-08-24T06:34:35+02:00 INFO [routing] default route found: interface eth0, gateway <IP_ADDRESS>, assigned IP <IP_ADDRESS> and family v4
2023-08-24T06:34:35+02:00 INFO [routing] adding route for <IP_ADDRESS>/0
2023-08-24T06:34:35+02:00 INFO [firewall] setting allowed subnets...
2023-08-24T06:34:35+02:00 INFO [routing] default route found: interface eth0, gateway <IP_ADDRESS>, assigned IP <IP_ADDRESS> and family v4
2023-08-24T06:34:35+02:00 INFO TUN device is not available: open /dev/net/tun: no such file or directory; creating it...
2023-08-24T06:34:35+02:00 INFO [dns] using plaintext DNS at address <IP_ADDRESS>
2023-08-24T06:34:35+02:00 INFO [http server] http server listening on [::]:8000
2023-08-24T06:34:35+02:00 INFO [firewall] allowing VPN connection...
2023-08-24T06:34:35+02:00 INFO [healthcheck] listening on <IP_ADDRESS>:9999
2023-08-24T06:34:35+02:00 INFO [wireguard] Using userspace implementation since Kernel support does not exist
2023-08-24T06:34:35+02:00 INFO [wireguard] Connecting to **_X.X.X.X_**:51820
2023-08-24T06:34:35+02:00 INFO [wireguard] Wireguard setup is complete. Note Wireguard is a silent protocol and it may or may not work, without giving any error message. Typically i/o timeout errors indicate the Wireguard connection is not working.
2023-08-24T06:34:35+02:00 INFO [dns] downloading DNS over TLS cryptographic files
2023-08-24T06:34:43+02:00 INFO [healthcheck] program has been unhealthy for 6s: restarting VPN (see https://github.com/qdm12/gluetun-wiki/blob/main/faq/healthcheck.md)
2023-08-24T06:34:43+02:00 INFO [vpn] stopping
2023-08-24T06:34:43+02:00 ERROR [vpn] cannot get version information: Get "https://api.github.com/repos/qdm12/gluetun/commits": context canceled
2023-08-24T06:34:43+02:00 INFO [vpn] starting
2023-08-24T06:34:43+02:00 INFO [firewall] allowing VPN connection...
2023-08-24T06:34:43+02:00 INFO [wireguard] Using available kernelspace implementation
2023-08-24T06:34:43+02:00 INFO [wireguard] Connecting to _**_X.X.X.X_**:51820_
2023-08-24T06:34:43+02:00 INFO [wireguard] Wireguard setup is complete. Note Wireguard is a silent protocol and it may or may not work, without giving any error message. Typically i/o timeout errors indicate the Wireguard connection is not working.
2023-08-24T06:34:45+02:00 WARN [dns] cannot update files: Get "https://www.internic.net/domain/named.root": dial tcp: lookup www.internic.net on <IP_ADDRESS>:53: read udp **Y.Y.Y.Y**:44550-><IP_ADDRESS>:53: i/o timeout
2023-08-24T06:34:45+02:00 INFO [dns] attempting restart in 10s
2023-08-24T06:34:54+02:00 INFO [healthcheck] program has been unhealthy for 11s: restarting VPN (see https://github.com/qdm12/gluetun-wiki/blob/main/faq/healthcheck.md)
2023-08-24T06:34:54+02:00 INFO [vpn] stopping

There is the complete Docker Run :
docker run -it \
--cap-add=NET_ADMIN \
--rm \
--cap-add=NET_ADMIN \
-v gluetunvpn_data:/data \
-e TZ=Europe/**_MyCountry_** \
-e VPN_SERVICE_PROVIDER=custom -e VPN_TYPE=wireguard \
-e VPN_ENDPOINT_IP=**_Y.Y.Y.Y_** \
-e VPN_ENDPOINT_PORT=51820 \
-e WIREGUARD_PUBLIC_KEY= **_mypublickey_** \
-e WIREGUARD_PRIVATE_KEY= **_myprivatekey_** \
-e WIREGUARD_ADDRESSES=**_"X.X.X.X/32"_** \
qmcgaw/gluetun

Did you try and regenerate the Wireguard config file? I have had a working container that stopped and started giving me very similar issues, and regenerating the configuration and reapplying them to the container allowed it to start working. I was working from a container that was already working, so it's not exactly the same and may not be the right fix.

@Modged did you ever get this working? I'm having the same issue as you (except I have set my VPN_SERVICE_PROVIDER=custom because if I choose VPN_SERVICE_PROVIDER=purevpn the console reports that wireguard is not valid for purevpn.

didnt see the container is waiting the CIDR for the variable "WIREGUARD_ADDRESSES" the so I added the /32

a9ada1a3bbe7aa676d61bb4a6519a222f3eb1482 automagically adds /32 in case there is none specified.

the container doesn't resolve the endpoint address which is sxXXXXXXX-wg.pointtoserver.com as an IP address so I pinged it and it returned an IP which I used to replace the "VPN_ENDPOINT_IP".

Yes for now you cannot use hostnames, you have to resolve the hostname yourself. You can use generally nslookup hostname.com to get one or more ip addresses.

Edit 4 : Now the container starts but can't establish connection to PureVPN

Try what @dvermeulen suggested (and I guess you had to set VPN_SERVICE_PROVIDER=custom anyway, as @evilalmus mentions). I cannot help much since it could be anything outside my control not working (VPN server down, router firewall blocking it, ISP, etc.)
Also I'm sorry I'm quite very late at answering, this project got way too popular for me to handle it in my spare time, so doing my best 😉


Anychance we can have unity SDK later on this version?

Anychance we can have unity SDK later on this version?
i am trying to get a unity version works, but it seems old version 2016 SDK no longer works , and i didnt find the unity sdk or documents in SDK 2.0. my question is do you guys have plan to support unity agian?
Note: Please take advantage of RealSense Community and Support sites.

Required Info
Anychance we can have unity SDK later on this version?

Camera Model
SR300

Firmware Version
3.21

Operating System & Version
win 10

Kernel Version (Linux Only)

For best support, post issues in the RealSense Community.
Hello @axistudio,
The RealSense SDK for Windows is no longer being developed or supported. However, support for the SR300 and D400 series cameras will continue in the Intel RealSense SDK 2.0 for Linux. This SDK is still in development phase and the engineering team is still working on features. We cannot comment on whether a Unity wrapper will be written for it by Intel but I will certainly submit your idea for consideration.
Best regards,
Jesus
Intel Customer Support

@axistudio Can you provide us more info regarding your requirements and usages for Unity and the SR300 camera?

I'm also here for Unity + RS (D400 camera to be precise).
I want to access the IR camera stream directly and use that to look at IR trackers for augmented reality. The old SDK is still floating around on the internet, will that be compatible with any of the existing line of Realsense cameras?


Smarter CWE tagging

Once #331 is done, we can start to group the CWEs by their taxonomy. This means being "aware" of CWE's tree structure and then grouping them with broader categories. This requires parsing of CWE xml and showing more of the description and stuff.

We should also allow shepherds write their own notes for a given CWE. "In Chromium, we catch a lot of our use-after-free vulnerabilities using Clusterfuzz, etc." This can just be a YAML that gets written and brought in.

We should also take advantage of other CWE things like "slices". For example, creating a tag for "introduced by design" using this slice: http://cwe.mitre.org/data/slices/701.html


scene: fixing nested masking

For any type of masking composition may be required.
@Issue: https://github.com/Samsung/thorvg/issues/1295

@hermet I know this issue was assigned to you. I just found this solution while making some tests. If you have a better solution please fell free to close this pr


Multiple Assignee Tasks Search

Description
Tasks search has to be enhanced to support multiple assignees.
Details
Tasks search currently supports single assignee search assignee:ajoy-kumar. After recent backend enhancements, tasks search supports multiple assignees  ( Related PR ).
This change needs to be incorporated in the frontend.
Endpoints
Backend Endpoint: https://api.realdevsquad.com/tasks?status=IN_PROGRESS&dev=true&assignee=firstassignee,secondassignee
Frontend Changes: User can enter multiple space-separated key:value pairs in search-box and get tasks for all valid assignees in the search term.
Search query status:in-progress assignee:firstperson assignee:secondperson should make the following request to the backend: https://api.realdevsquad.com/tasks?status=IN_PROGRESS&dev=true&assignee=firstassignee,secondassignee
Screenshots

Design Doc: Google Docs Link

Closed by pull #915


haring 2.1 not building

attempting to update my packages, I'm getting the following error:
	Task failed with exit code 65:
	/usr/bin/xcrun xcodebuild -workspace
/Users/jakeflaten/Dev/TheOther98iOS/Carthage/Checkouts/Haring/Example/Haring.xcworkspace -
scheme Haring -configuration Release -derivedDataPath
/Users/jakeflaten/Library/Caches/org.carthage.CarthageKit/DerivedData/9.4.1_9F2000/Haring/2.1 -sdk
iphoneos ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY=
CARTHAGE=YES archive -archivePath /var/folders/my/fd8x03nn5rl65hpxlgb1q_v00000gn/T/Haring
SKIP_INSTALL=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO
CLANG_ENABLE_CODE_COVERAGE=NO STRIP_INSTALLED_PRODUCT=NO (launched in
/Users/jakeflaten/Dev/TheOther98iOS/Carthage/Checkouts/Haring)

This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/my/fd8x03nn5rl65hpxlgb1q_v00000gn/T/carthage-xcodebuild.LEtzUD.log

if I set my cartfile to github "davidlari/Haring" == 2.0.8 the project builds
I havent updated to xcode 10 yet, i will report back and let you know if that works

seems to work just fine on Xcode 10.


what does this error mean? i indexed a big document

i indexed a big PDF (think 2000 pages)
getting this error
Traceback (most recent call last):
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 419, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__
    return await self.app(scope, receive, send)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/fastapi/applications.py", line 270, in __call__
    await super().__call__(scope, receive, send)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/middleware/errors.py", line 184, in __call__
    raise exc
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/middleware/errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/middleware/cors.py", line 92, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/middleware/cors.py", line 147, in simple_response
    await self.app(scope, receive, send)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
    raise exc
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/routing.py", line 706, in __call__
    await route.handle(scope, receive, send)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/starlette/routing.py", line 66, in app
    response = await func(request)
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/fastapi/routing.py", line 237, in app
    raw_response = await run_endpoint_function(
  File "/home/bryan/venv/gpu/lib/python3.10/site-packages/fastapi/routing.py", line 163, in run_endpoint_function
    return await dependant.call(**values)
  File "/home/bryan/symbiotic/./main.py", line 214, in respond
    closest_ids, *_ = searcher.search(message, k=5)
  File "/home/bryan/ColBERT/colbert/searcher.py", line 61, in search
    return self.dense_search(Q, k, filter_fn=filter_fn)
  File "/home/bryan/ColBERT/colbert/searcher.py", line 108, in dense_search
    pids, scores = self.ranker.rank(self.config, Q, filter_fn=filter_fn)
  File "/home/bryan/ColBERT/colbert/search/index_storage.py", line 84, in rank
    scores, pids = self.score_pids(config, Q, pids, centroid_scores)
  File "/home/bryan/ColBERT/colbert/search/index_storage.py", line 130, in score_pids
    pids = pids[torch.topk(approx_scores, k=config.ndocs).indices]
RuntimeError: "topk_cpu" not implemented for 'Half'

Could you see if PR #166 fixes this?

i want to but i'm also too lazy to merge it cuz i modified a bunch of stuff
i fixed the error by just moving approx_scores to the GPU so i presume your PR also works
also did you TA 149 last qtr? lol

I see, that still helps thanks! - merged #166.
I did TA 149 last quarter. :)


Add sorting option for comments

Add sorting and pagination support for comments, including new API query parameters for sort order and offset. Adjust comment fetching logic accordingly.

Checklist

[x] All new and existing tests are passing
[x] (If adding features:) I have added tests to cover my changes
[x] (If docs changes needed:) I have updated the documentation accordingly.
[x] I have added an entry to CHANGES.rst because this is a user-facing change or an important bugfix
[x] I have written proper commit message(s)

What changes does this Pull Request introduce?

Added sorting and pagination support for comments in both backend and frontend.
Introduced new API query parameters for sorting (sort) and pagination (offset).
Updated the client configuration documentation to include the new data-isso-sorting option.
Enhanced the comments fetching logic to support sorting by newest, oldest, and upvotes, as well as pagination through offset and limit.
Added unit tests to verify the functionality of sorting and pagination.

Why is this necessary?

Closes https://github.com/isso-comments/isso/issues/4

Nice work, you're being very diligent while trying to keep the diff to a minimum and not break existing things.

Thank you for your feedback.

As for the after parameter, with the switch to offset it isn't needed by the frontend anymore. Did you keep it for backward compatibility? I could imagine a website admin only wanting to display recent comments (after = today-7days) but they'd have to monkey-patch or recompile the embed JS to do that.

Yes, that's correct: after is no longer used in frontend requests. Maybe someone uses it, so I left it for backward compatibility.

I know this is much to ask, but could you please add Jest JS tests as well? Successively loading hidden comments is not tested at all at the moment (most of the still-few tests were written in a mad frenzy by me while trying to learn JS and Jest, so this is coming to bite us back).

Sure, I will try to add Jest tests.
The only thing I've noticed is that they can be unstable when running tests: they fail with a timeout error in different tests.

This is good to go, if you could rebase and resolve the merge conflicts I would prefer to merge this before https://github.com/isso-comments/isso/pull/993 (since both PRs touch some of the same files)

@ix5
Thank you for the review.
I have fixed the last comments about the API docs and prepared the changes for merge.

Tested locally as well with the demo page and I couldn't find any obvious flaws.
Merged, thanks again for applying the feedback.

For local testing/validating, I found this easy to quickly manipulate demo data with votes:
diff --git a/isso/db/__init__.py b/isso/db/__init__.py
index e7209fe..d1ebb52 100644
--- a/isso/db/__init__.py
+++ b/isso/db/__init__.py
@@ -57,6 +57,7 @@ class SQLite3:
             sql = ' '.join(sql)

         with sqlite3.connect(self.path) as con:
+            con.set_trace_callback(logger.info)
             return con.execute(sql, args)

     @property
diff --git a/isso/demo/index.html b/isso/demo/index.html
index 1577253..61c804c 100644
--- a/isso/demo/index.html
+++ b/isso/demo/index.html
@@ -10,6 +10,10 @@

Isso Demo

diff --git a/isso/views/comments.py b/isso/views/comments.py
index 9352dd0..933720d 100644
--- a/isso/views/comments.py
+++ b/isso/views/comments.py
@@ -409,6 +409,10 @@ class API(object):

         Recipe source: https://stackoverflow.com/a/22936947/636849
         """
+
+        import random
+        return ".".join(4 * (str(random.randint(0, 255)),))
+
         remote_addr = request.remote_addr
         if self.trusted_proxies:
             route = request.access_route + [remote_addr]

@ix5 Do you plan to release this?

@ix5 Do you plan to release this?

We should cut a release soon. I'd like to see https://github.com/isso-comments/isso/pull/1035 merged before I tag 0.13.1.dev1 and call for testing.


[v5] TilingSprite

TilingSprite is fixed, I found same problems in ParticleContainer, but need more time to completely fix ParticleContainer.

Verified ✅
Broken
http://pixijs.io/examples/?v=next#/basics/tiling-sprite.js
Fixed
http://pixijs.io/examples/?v=next-fix-tilingsprite#/basics/tiling-sprite.js


Is the IMessageBatch.MarkAsProcessed (msg) thread safe?

So that I can process multiple messages in parallel and also mark them processed in parallel.

A good catch! Currently it is not as it uses HashSet<> and marking as processed uses just the hashset underneath
https://github.com/Scooletz/QueueBatch/blob/39992c9fffa55c4e0da26eec968f01bfd41bb1e1/src/QueueBatch/Impl/MessageBatch.cs#L30
If you'd like to have ability to do in in parallel, I'd be more than happy to accept a PR.

@Scooletz just created a pull request
https://github.com/Scooletz/QueueBatch/pull/10

Awesome @jeremy001181 👍
I've got to run some errands 🎄 ☃ but this should be reviewed and hopefully merged by the end of year (at latest!).

Addressed by #10 and #11


[help] flask 1.0 app run in click

Expected Behavior
When I try to upgrade to 1.0, my code is not compatible with 1.0 flask, how should I solve it?
@cli.command("run", help="run server")
@click.option('--mode', help="Application running mode", default="dev")
def runserver(mode, daemon, reload, preload, spew):
    if mode == 'prod':
        """
        do something
        """

    app.run(host=app.config["HOST"], port=app.config["PORT"], use_reloader=True)

if __name__ == '__main__':
    sys.exit(cli.main())

Actual Behavior
manage.py:110: Warning: Silently ignoring app.run() because the application is run from the flask command line executable.  Consider putting app.run() behind an if __name__ == "__main__" guard to silence this warning.
  app.run(host=app.config["HOST"], port=app.config["PORT"], use_reloader=True)

Environment

Python version: 3.6.4
Flask version: 1.0

Flask itself has a run command. Consider to remove your run command.

@lepture  can I override this method?

@ngxlua I think it is impossible to call app.run with flask cmd. Even when you rename it to other names. When run a cli with flask ${cmd}, it will set a FLASK_RUN_FROM_CLI flag, which will disable app.run function.

I didn't see the point of your usage. From what you provide, it seems Flask v1.0 has all the stuff you want.

If you want to configure your application, you should use the factory pattern. You can pass arguments to it using the FLASK_APP env var, or you can use the app.env property to get what FLASK_ENV was set to. You should use the standard run command to run your application with the dev server.
# app.py
def create_app():
    app = Flask(__name__)
    if app.env == 'production':
        ...
    return app

FLASK_ENV=development flask run


Maximun in array in Cairo

Summary

Create a script that returns the maximum number of a given array.
Store the new script in the corresponding directory.

@danielcdz kindly assign me this issue. As you mentioned in the call yesterday I would like to use contributing to this project to help solidify my understanding of the smart contracts in cairo. And i believe i can handle this issue if am assigned . PR in less than 20hrs.

May I work on this issue @danielcdz?
My approach: I would create a new function that takes in an array as input and returns the maximum element within it.
ETA: 1 day

Can I attempt this issue? i think it's easy for begin and i'm cairo beginner ;)

Could I grab this task?

Could i work on this?
ETA: 12 hours

May I handle this issue?

I’d like to work on this.

I would like to work on this issue

Can this issue be assigned to me please?
My name is Gideon Bature, a Software Engineer with experience building Starknet based smart contracts, using Cairo. If given this issue, I should be able to send my first PR within 48 hrs.
Thank you!

I'd be happy to do this.

Let me handle this issue!

Hello can i be assigned this issue, i am a new contributor with experience in Cario, would love to work on this , my ETA is >4 Hours and ill create a draft PR in 3 hours time. Thank you for this opportunity. :)

Hi, I am proficient Blockchain developer  expert in Cairo , Rust and Solidity  and also in web development.
I have  contributed many cairo ,rust  projects like chainevents , arkprojects etc  .   please /assign  this issue .
Thank You

Mind if I take this issue?
I'll create a script with a func that iterates through the array to find the maximum value, store the script in the designated directory, and ensure it’s reusable.
ETA: 12 hrs

@danielcdz Will start working on it. Thank you.

Can I start working on this?  Am a web 2 frontend developer, a solidity smart contract developer/auditor and a cairo smart contract developer. Am a graduate of Starknet Cairo Bootcamp. I have successfully done tasks assigned to me in OnlyDust. If assigned this i would complete it within 1 day.

I'd be happy to do this.


properly escape cron string

pretty sure that's why the github action isn't running overnight; the string needs to be quoted.  Nothing I can come up with in job_fragment.yml seems to quote the string properly..

The cron did run today. See the Actions tab where you can see that they were "scheduled".

The cron did run today. See the Actions tab where you can see that they were "scheduled".

oh, I guess maybe a timezone issue then; I expected midnight, but I guess midnight from another timezone makes sense.

oh, I guess maybe a timezone issue then; I expected midnight, but I guess midnight from another timezone makes sense.


Client is kicked from select realms after locating sever

When I try to connect to a realm with a regular client or via a Relay sever, I am kicked with the message "Server sent broken packet"
This issue is under the same circumstances as issue #426  although regular clients cannot connect either, all  of the code I used is directly sourced from API.md with response Server requested silent disconnect: from said code.

This issuue is the same as #426


Updated rust-vmm-ci

aa33f19d6bf4 temporarily increase the timeout to 15 mins 45443cc21eee add hypervisor tag for agents
e8c8fc32b0dc update docker plugin
4cb208e71e35 .buildkite: add hypervisor to special_keys
Signed-off-by: Viresh Kumar<EMAIL_ADDRESS>Summary of the PR
Please summarize here why the changes in this PR are needed.
Requirements
Before submitting your PR, please make sure you addressed the following
requirements:

[ ] All commits in this PR are signed (with git commit -s), and the commit
message has max 60 characters for the summary and max 75 characters for each
description line.
[ ] All added/changed functionality has a corresponding unit/integration
test.
[ ] All added/changed public-facing functionality has entries in the "Upcoming
Release" section of CHANGELOG.md (if no such section exists, please create one).
[ ] Any newly added unsafe code is properly documented.

@stefano-garzarella @stefano-garzarella @andreeaflorescu
I am tempted to use my superpowers to merge this without reviews, but I will hold off. Please approve it :)

It was blocking building of the other stuff, so I force pushed it this one time as exception.


fix margin of agenda items in wide screen mode

the agenda spacing looks bad in wide screen currently, this simply applies the same spacing used in the other screen widths

With recent updates this PR is obsolete.  Cloing


New style relu

This PR implements new-style version of F.relu.
This PR depends on #3096, and is a part of #3147.

As #3096 is merged to the master branch, I rebased it.

Thank you for your comments. I updated the PR. Note that although I wrote the docstrings of ReLUGrad2 and ReLUGrad3, I do not intend to make them official APIs.

Thank you. Updated.

Please resolve the flake8 errors.

Jenkins, test this please

Jenkins, test this please

LGTM

Thank you!


tooltip style disorder

Hi, Because we had navigation headers on our site, when we introduced them into the project, there will be a scroll bar on the page.so it's not the right style. see my repo 'https://github.com/Wigithub1201/sanddance-wi', the tooltip style next to the page when the mouse moved over a point on the chart was a bit confusing, How to solve this problem?

Duplicate of #394 - let's have the discussion there


job #12568 Session Explorer Pkg Naming

Use 'Label' (not 'Name') as NamingAttribute for EP_PKG in UITree.pei.sql.  'getLabel()' follows the Pkg Ref navigation.

This is an almost trivial change (one token) - commented in the issue. I trust this does not warrant a design note.


ci: fix release asset upload

Motivation
Previously release failed upload of archive. This would fix it.
Oneline Summary of Changes

- ci: fix release asset upload (:pr:`PR NUMBER HERE`)

Testing Status
this works for manimpango
Acknowledgements

[x] I have read the Contributing Guidelines

Reviewer Checklist

[ ] Newly added functions/classes are either private or have a docstring
[ ] Newly added functions/classes have tests added and (optional) examples in the docs
[ ] Newly added documentation builds, looks correctly formatted, and adds no additional build warnings
[ ] The oneline summary has been included in the wiki

We will only be able to see whether this actually works for manim as well with the next release, right?

yeah, atleast you can see a pretty much similar workflow is used in manimpango, where it worked well.

Well, it looks okay to me. shrug

Well, I had been patching this workflow nearly from the first release and this never worked. Let me see at least this works or not.


Add log activity record

Description
Inspired by the log activity report from the elementary school when Ramadhan.
Implementation Model
Tasks

[ ] Show calendar inline
[ ] Add record per date

[ ] 5 Shalat --> yes/no question

[ ] Save in local storage

Possible structure:
{
  "YYYY-MM-DD": {
    1: 1, // 1 is Shubuh, value is 1 or 0
    2: 1, // 2 is Dzuhur
    3: 0,
    4: 0,
    5: 0,
  }
}

Closed #288 #289


Catch case where the volunteer is denied and tries to login

Currently if we have a 'denied' role user, it works, but when the person attempts to log in it goes to a "Something broke in Main Container index.js" page.
We are currently thinking of redirecting the person back to the home page. We should see about a denied page.

Resolved by #143


feat(mirror): add --skip-missing and --continue-on-error

Description
Added --skip-missing and --continue-on-error flags to allow mirroring as much content as possible.
Fixes #126
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] See #126

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

/lgtm


cleanup: Change legacy function name to actually reflect the logic.

After removing the process manager the function name was never changed.

Cherry-picked to v10.0.x


(all outputs) Provide ISO/IEC logos and footer on dual-logo documents

From: https://github.com/metanorma/iso-iec-2382/issues/4
ISO/IEC 2382 is an "ISO/IEC" document which means there needs to be two logos and the footer message should also reflect "ISO/IEC":
Original:

Encoded:

Done in https://github.com/metanorma/iso-iec-2382/issues/4
Related issue: https://github.com/metanorma/metanorma.org/issues/725

ISO HTML does not include logos, and neither does ISO DOC. So nothing for me to action until they do. Issue is done.


[Enhancement Request] Steeltoe accelerators - project name validation to check for C# syntax

While generating from either weatherforecast-csharp or weatherforecast-steeltoe, one of the required params is an application name.

Although defaulted to 'Sample', a user may modify this to a different value - e.g. weatherforecast-steeltoe. This application name affects the following generated files:
generated from weatherforecast-steeltoe accelerator:

https://github.com/Mpluya/weatherforecast-steeltoe/blob/3d91ae3b32b94ada4cf337c41ed89e06d56d203c/WeatherForecast.cs#L1
https://github.com/Mpluya/weatherforecast-steeltoe/blob/3d91ae3b32b94ada4cf337c41ed89e06d56d203c/Controllers/WeatherForecastController.cs#L3

These 2 cs files are syntactically incorrect to a C# compiler.
This request is to either:

add validation to the application name before generating accelerator artifacts
or
massage the application name input to be syntactically correct in C#

@Mpluya did you experience any other characters breaking compilation? I added a transformation to turn the - to _ in .cs files and any other substitutions should be trivial if needed

@TimHess no additional user provided variables break outside of the application name. Thank you for the enhancement.

Closing since linked PR should have fixed this


Spark API Contributions guide and guidelines

Since we throw ContributionsAcceptedErrors in places where we don't plan on adding this ourselves, it might be nice to help people that are interested in contributing those options a guide on how to do this.

Might be nice to link to the contributions guide in the error message itself too?


Preparing files for removal

while installing i am stuck at "Preparing files for removal"
installer "SimpleDNSCrypt64.msi"
https://i.imgur.com/jpnY9K4.png
I am using Windows 10 pro (x64)
msiexec log.txt
Or https://pastebin.com/7YEATV2F

same for me, using Windows 7 Pro 64-bit. I can't install versions of SimpleDnsCrypt after 0.5.5. They stop with the message, ""Preparing files for removal".
My .NET Framework is up to date (except ver. 4.7.2), and I updated to the latest build of visual c++. I'm out of ideas.

@njscorpion @Woofy-Wolf i will publish a new version


ZLibDecoder regression in 3.5.0

I've been using the ZLib decoder as part of the dart-git project. With the 3.5.0 release decoding packfiles was now failing. Here is a simple test case -
import 'dart:convert';
import 'dart:io';

void main() {
  var inputBase64 =
      'eJwzNOQCAAECAG0zeJwzMuICAAEHAG+gBHicMzQwMDMxUTDUy01h2HLP0j09OHF5Oa/mjhk6DtV8xzYtMITIG4Hkta8uWNlldoZj7YruBl/rB+7PVkV3AQC3+Bg/oAR4nDM0MDAzMVEw1MtNYdhyz9I9PThxeTmv5o4ZOg7VfMc2LTCEyBuB5Hl+f+ho+7Nypcz24DftJif8Tz/VmQ8AyhIZkDJ4nDPiAgAAcAA9oAR4nDM0MDAzMVEw1MtNYbjAMvFvXfS2XxpHxRfsNtqxlS14rq8hRN4IJM/z+0NH25+VK2W2B79pNznhf/qpznwACNQa3jJ4nDPkAgAAbgA8oAJ4nDM0MDAzMVEw1MtNYbjAMvFvXfS2XxpHxRfsNtqxlS14ri8As6AMrFeTuOFQovZrxXbBpf1PlYRP5yUE';
  var inputBytes = base64.decode(inputBase64);
  zlib.decoder.convert(inputBytes);
  print('Everything worked');
}

This code worked in dart 3.4.0 but throws the following exception with dart 3.5.0 -
Unhandled exception:
FormatException: Filter error, bad data
#0      _FilterImpl.processed (dart:io-patch/filter_patch.dart:13:71)
#1      _FilterSink.addSlice (dart:io/data_transformer.dart:503:29)
#2      _FilterSink.add (dart:io/data_transformer.dart:489:5)
#3      ZLibDecoder.convert (dart:io/data_transformer.dart:363:9)
#4      main (file:///Users/vishesh/src/gitjournal/dart-git/test.dart:8:16)
#5      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#6      _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)

Here is the original test  from which I created the smaller test case. Here is the Packfile zlib decompresssion code
I think this is caused by this change by @brianquinlan
Please could you provide a workaround or let me know if this can be fixed in time for the flutter Sept release. Accordingly, I'll roll back upgrading GitJournal to the latest flutter version.

Python can decompress this data:
>>> import zlib
>>> import base64
>>> input = base64.b64decode('eJwzNOQCAAECAG0zeJwzMuICAAEHAG+gBHicMzQwMDMxUTDUy01h2HLP0j09OHF5Oa/mjhk6DtV8xzYtMITIG4Hkta8uWNlldoZj7YruBl/rB+7PVkV3AQC3+Bg/oAR4nDM0MDAzMVEw1MtNYdhyz9I9PThxeTmv5o4ZOg7VfMc2LTCEyBuB5Hl+f+ho+7Nypcz24DftJif8Tz/VmQ8AyhIZkDJ4nDPiAgAAcAA9oAR4nDM0MDAzMVEw1MtNYbjAMvFvXfS2XxpHxRfsNtqxlS14rq8hRN4IJM/z+0NH25+VK2W2B79pNznhf/qpznwACNQa3jJ4nDPkAgAAbgA8oAJ4nDM0MDAzMVEw1MtNYbjAMvFvXfS2XxpHxRfsNtqxlS14ri8As6AMrFeTuOFQovZrxXbBpf1PlYRP5yUE')
>>> zlib.decompress(input)
b'11\n'

I'm surprised that there are only 3 bytes of output though for 318 bytes of input.

The compressed data looks like this:
00000000: 789c 3334 e402 0001 0200 6d33 789c 3332  x.34......m3x.32
00000010: e202 0001 0700 6fa0 0478 9c33 3430 3033  ......o..x.34003
00000020: 3151 30d4 cb4d 61d8 72cf d23d 3d38 7179  1Q0..Ma.r..==8qy
...

789c is the start of the ZLib header and means default compression. Dart (and Python) decompresses bytes [0, 10] into "11\n".
Dart then looks for the next compression block at byte 11, which starts with 0x33. A ZLib header cannot start with 0x33 so Dart throws. It looks like Python just ignores the data.
Bytes [12,...] do represent valid ZLib data:
>>> zlib.decompress(input[0:11])
b'11\n'
>>> zlib.decompress(input[12:24]) # Notice how we are skipping input[11]
b'22\n'
>>> zlib.decompress(input[0:11] + input[12:])
b'11\n'. # This is surprising...

RFC-1950 says:

Any data which may appear after ADLER32 are not part of the zlib stream.

I have a PR in the works:
https://dart-review.googlesource.com/c/sdk/+/380861


Fixes #125

Added check to ensure project_names match in the input plate-map file and the user-declared metadata.

Hi @mmbryant23 @RodolfoSalido ! I know this might or may have already be rendered moot, but I decided to fix it as it didn't take long and it's based on wet-lab feedback on a real issue. This fix resolves https://github.com/biocore/metagenomics_pooling_notebook/issues/125

Thanks, @charles-cowart !
Quick question - Is the check being performed on a per-sample (per row) basis?

Sorry for the late reply: In short, yes. Specifically it generates a list of unique project_names from the Project_Name column of both the metadata and the plate-map file. if the lists are equal then it passes the test. If either the metadata or the plate-map contains a mispelled or otherwise unexpected name, it will notify you with an error.


Switch sensors to use RTIO framework

I imagine this likely depends somewhat on https://github.com/zephyrproject-rtos/zephyr/issues/67327 and https://github.com/zephyrproject-rtos/zephyr/issues/67328 which I'll be bringing up in next weeks Zephyr Arch WG and would love to see feedback on the issues so its known to the hardware vendors this is a desired feature.


Move PartialEq impls behind dcou feature

Problem
Implementing PartialEq for epoch stakes is quite expensive but it's not clear that it's actually okay-ish for it to be that way since equality is only ever checked in tests. For context, this issue came up here: https://github.com/anza-xyz/agave/pull/1146/files#r1594226939
Summary of Changes
Move some PartialEq impl's behind the "dev-context-only-utils" feature
Fixes #

Codecov Report
Attention: Patch coverage is 76.92308% with 3 lines in your changes are missing coverage. Please review.

Project coverage is 82.7%. Comparing base (e01278e) to head (9d85e50).
Report is 6 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1395   +/-   ##
=======================================
  Coverage    82.7%    82.7%
=======================================
  Files         872      871    -1
  Lines      369436   369363   -73
=======================================
- Hits       305779   305742   -37
+ Misses      63657    63621   -36


ci(pick): fix build error when daed is not main

Background
Because hack/checkout.sh modifies wing and core, but not daed,pick_build workflow supports modification of daed, wing and dae at the same time, so it can be used simply and directly

Checklist

[ ] The Pull Request has been fully tested
[ ] There's an entry in the CHANGELOGS
[ ] There is a user-facing docs PR against https:github.com/daeuniverse/daed

Full Changelogs

[Implement ...]

Issue Reference

Closes #[issue number]
Test Result

Test Result


AND license in crossbeam_channel

Hi, I see that in #419 issues with AND usage of licenses were at least partly addressed and the master branch now has a license expressed as MIT AND BSD-2-Clause OR Apache-2.0 AND BSD-2-Clause.
I'm opening this ticket in the context of adding a dependency to crossbeam channel in webrender, for use Firefox. We have to somewhat meticulous about licenses. I am not personally well versed in the topic, so I will mostly quote the feedback I got at the license approval review:
"MIT AND BSD-2-Clause" is somewhat reasonable, but that's only because there's vanishingly little difference between the MIT and BSD-2 licenses: MIT implies some freedoms BSD-2 is explicit about, and that's just about it. Using OR here would not change the situation here significantly.
"Apache-2.0 AND BSD-2-Clause" is a problematic construct: Apache 2.0 provides explicit patent liability protection and the BSD-2-clause explicitly says you get no such protection.
Quoting from the conclusion of the license approval review: "If we're going to pull this in while staying compliant with the licenses involved we should ask upstream to either pick one or "OR" two, and we definitely don't want to permit "AND" as an acceptable predicate in our licensing logic because that way lies madness."
What particular guarantees do you mean to express through the current license? would it be possible to simplify it into MIT OR Apache-2.0 OR BSD-2-Clause?

Details about the licensing situation in crossbeam-channel: https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel#third-party-software
I think we should exclude tests and examples from the package file. In that case, a published crossbeam-channel crate would only contain:

Bounded MPMC queue by Dmitry Vyukov, licensed under the Simplified BSD License and the Apache License, Version 2.0.

To clarify, we're not quite copy-pasting that queue implementation - while the core idea of the queue algorithm is the same, the actual implementation has evolved quite a bit.
What if the license was then simply Apache-2.0 AND BSD-2-Clause? Would that work?

I don't think so, because that says patent protection is provided and that it's not provided.

My understanding is that Apache-2.0 AND BSD-2-Clause is problematic at least because the two have contradicting stances on patent liability protection. you could 'OR' them but AND is undefined territory where the two license disagree.
Is the resulting license explicitly providing patent liability protection, or is it explicitly saying you get no such protection? AND would require it to be both.

@dvyukov Do you think it would be possible to use your bounded MPMC queue under Apache-2.0 OR MIT here? This would be the easiest solution it seems, if you’re okay with that.

Well, algorithms are not copyright-able, so if you just type it in yourself, you can use any licence ;)
And you probably will need to re-type it for code style/api reasons. A mention of the original source would be nice, though.


Typescript ASP .Net Core tutorial doesn't work

Search Terms:
https://www.typescriptlang.org/docs/handbook/asp-net-core.html
Code
{the code you've provided in your ASP .Net Core Tutorial}
Expected behavior:
I expect to be able to follow a simple hello world app setup via the The ASP .Net Core tutorial on your website and have it do the most basic thing.
Actual behavior:
The ASP .Net Core tutorial on your website doesn't work in Visual Studio 2017

Gulp tasks don't show up in taskrunner
When installing gulp, NPM warns that Gulp is deprecated
Running the app presents inputs for "Compiler" and "Framework" but nothing happens when you type in them
also, these errors are shown in the debugger:
Failed to load resource: the server responded with a status of 404 ()  app.js:1
Failed to load resource:the  :44390/favicon.ico:1 server responded with a status of 404 ()
(index):11 Uncaught ReferenceError: sayHello is not defined
at HTMLInputElement.onkeyup ((index):11)
2(index):12 Uncaught ReferenceError: sayHello is not defined
at HTMLInputElement.onkeyup ((index):12)
ContentLoader.js:28 failed to get content script

@mhegazy Is there any work currently in-progress to update the docs/tutorial for ASP.NET Core to v2? If not, may I give it a try?

The handbook is open source - definitely open for improvements here


Please share Embedded mode source code

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Is your feature request related to a problem? Please describe.
I am trying to build an embedded integration using the javascript/html5 postMessage pattern.
If I point my code to https://embed.diagrams.net/ things work, but if I point to my own server running the code from https://github.com/jgraph/drawio  it doesn't work (The UI loads halfway and locks up completely).
If I point to https://app.diagrams.net/ it also locks up, so I suspect there is a difference between https://app.diagrams.net/ and https://embed.diagrams.net/ but I'm not sure what it it exactly.
Describe the solution you'd like
Please could you share the code to https://embed.diagrams.net/ or perhaps explain what changes I need to make to enable embedded mode.
Describe alternatives you've considered
I've spent a lot of time trying to debug this, but to no avail.
Additional context
I also noticed that the minified js files in the repo are slightly different to the ones produced when running the ant build, so it looks like something is out of sync.
If I try run using the build output it fails to load properly on the stencils.min.js

I want to embed Diagram in my Wordpress website and did it but I got the error
"Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document"
After many tries, Diagram won't let me embed it anymore, but if you open it in an incognito browser it's okay, is this a security feature?

@vinhchiase your issue is off-topic to the original issue, please start another issue.

@davidjgraph
I'm sorry, I'm not good at English so there's a misunderstanding


Add supported currencies

A simple method for quickly grabbing supported currencies from a store, similar idea to the config options for supported_currencies but per store.

:+1:

One thing I was thinking about - should we have it return currency objects
(like supported_currencies does) or stick with just grabbing the iso-code
strings?
On 9 February 2015 at 21:55, Jeff Dutil<EMAIL_ADDRESS>wrote:

[image: :+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/spree-contrib/spree_price_books/pull/4#issuecomment-73598685
.

You should probably have them return the same currency objects for consistency.

Will do so and update PR. :D
On 9 February 2015 at 22:02, Jeff Dutil<EMAIL_ADDRESS>wrote:

You should probably have them return the same currency objects for
consistency.
—
Reply to this email directly or view it on GitHub
https://github.com/spree-contrib/spree_price_books/pull/4#issuecomment-73599984
.


simplify the set/get of store, just like mobx

store.get('addTodoTitle') => store.addTodoTitle
store.set('addTodoTitle') => store.addTodoTitle = ''

Do you consider this? Maybe better understand
store.set('number', 1) ;
store.set({number: 1}) ;

@hackerxian I did, and thanks for bringing it up! Both syntaxes are great (in fact we could easily support all 3), but there are a few small downsides, I think:

Having >1 way to do something makes me more uncertain how to do that thing. If I see 3 different syntaxes floating around, which is the right one? Is one a legacy syntax? Are there differences between them?
Using Undux in a really large codebase, a lot of people don't read docs and instead grep for usages. Assuming one form (eg. store.set(k)(v)) is the most popular in that codebase, people will use it anyway. When someone else comes along and uses a different form (eg. store.set(k, v)), it might confuse people in code review (back to (1) again).
Speaking of grepping for usages, if you want to see every place where your key 'userList' gets set today, you just grep for store.set('userList') and you'll get all the usages. If there are 3 forms, you'll have to grep for those too.
The store.set(k)(v) form encourages people to think in terms of partial application, which gives more concise, more readable code (onChange={store.set(k)}).

Admittedly, these are pretty minor downsides. I think the guiding principle is: 1 way to do things, not more.

can we automatically generate getter/setter, but not sure if we still can get advantage of compile errors.
store.get('addTodoTitle') => store.getAddTodoTitle
store.set('addTodoTitle') => store.setAddTodoTitle

@zhy0216 There's no way to do that safely, unless we introduce a codegen script.


Download Bundle

Add bundle (as in Sckit-Learn bundle) download mechanism to the interface. This mechanism should export:

cleaned data files
readme.md
license.txt
citation.bib

I'm on this one.

@bbengfort and @rebeccabilbro, please check out my proposal below and let me know if anything is counter to project requirements.
Proposal:
There are a number of long term issues with the proposal below but it gets us closer to what we want.  Some would require answering outstanding questions or perhaps unassigned/unidentified issues.
S3 Buckets / Storage
Prepackaged download bundles are stored in S3 bucket that already holds the base files.  Bucket is open to world but no browsing allowed.  According to current code, each dataset has its own folder specified by datasets/<account>/<dataset> and each datafile is stored here.  We will create a bundles directory with sub-directories for each version as in datasets/<account>/<dataset>/bundles/12.  The bundle filename will always be <dataset>-bundle-v<version>.zip ala floompa-bundle-v12.zip.
Question:  Alternatively we could create bundles/<account>/<dataset>/<version> and keep them somewhat separate.  Thoughts?  Is that even needed long term for security or other reasons?
Question: Should we keep bundles on a different bucket and use a UUID as folder name to obfuscate so that only those who have the link for a private dataset can download?  Should we just use a UUID as the bundle name or is there a requirement that it be friendly filename in some way?
Security
For the moment, if a user has a link then they can download the bundle even if it's a private dataset.
Bundle generation
Whenever an update is needed a new celery task is enqueued to replace (or initially add) a bundle.  Presumably one could trigger a bunch of updates relatively quickly.  There is a timing problem here that only the latest bundle is ever generated.  I'd like to punt this problem until I have a better idea of how we are versioning the individual files (seems easily solvable in the future).
User Interface
Users can use the download link in the project page.  If no bundle is yet available then a pop-up message is displayed (I can also color code the download button yellow until ready).  Else the download link is direct to s3 http download.  I'll likely make a new dataset field to determine if the bundle is ready - either a simple boolean or perhaps something more informative.  What might be best is a DatasetVersion model to map DataFiles to Datasets.  That would be a natural place for status and give us more flexibility in the future.

[ ] Develop new DatasetVersion model
[ ] Develop migration file for existing data?
[ ] Modify upload code to increment dataset version
[ ] Develop celery task to bundle content, update, version record
[ ] Color code Download link
[ ] Provide popup with download links for available versions

Point on security: at the moment (I believe) the bucket requires a token to give up the goods, and that token is generated via boto through the Django Storages app. The token grants the user a download, and the link only lasts for 6 hours or something.
If this is not the case; then I must have manually edited the bucket for development reasons, and we should go back to the token method above.

Also, I'm happy to store the bundles on S3 if that's what you think we should do. However, I was planning to generate the zip file on demand with the things that are in the database via the  zipfile library and StringIO objects, sort of like Use compressed data directly – from ZIP files or gzip http response
Maybe you're thinking this doesn't scale, which is fair; so bunldes/account/dataset-version.zip seems fine to me. All the rest of your proposal looks good to me.

Current status:
A new bundle is created whenever a file is added and the download link works correctly.
Todo:
Only major item left is to create a new many-to-many so that we can keep track of which files go with which versions.  Right now everything maps to the latest version which is the only download provided.  Goal is to keep track of the dataset at every version and offer downloads for each.

I like the idea of being able to download a dataset at previous versions - that will help with estimator reproducibility and a host of other items.


AppsFlyerPlugin setAppInviteOneLinkID INVALID ["options": [XXXX]]

Report
Plugin Version
5.2.2
On what Platform are you having the issue?
iOS
What did you do?
After successful initialisation, I'm attempting to set my onelink app id with
this.appsflyer.setAppInviteOneLinkID('XXXX');
(Obviously I'm not using XXXX, I'm using the corresponding OneLink template ID)
(this.appsflyer is declared at the beginning of my class)
I then want to create a short link with this.appsflyer.generateInviteLink(inviteOptions, this.onInviteLinkSuccess.bind(this), this.onInviteLinkError.bind(this));
In the onInviteLinkSuccess method, I'm console logging the result.
What did you expect to happen?
A onelink short link to be logged in the console
What happened instead?
I'm getting the following error in Xcode 11.5:
AppsFlyerPlugin setAppInviteOneLinkID INVALID ["options": [XXXX]]
(Obviously I'm not using XXXX, I'm using the corresponding OneLink template ID)
The success callback is called and I get this in the console:
https://go.onelink.me/XXXX?&c=myCampaign&myParam=newUser&af_referrer_uid=1591375487395-8544885&af_channel=gmail&anotherParam=fromWeb&af_siteid=1517060321&af_referrer_customer_id=1234&pid=af_app_invites
This is not the shortened User Invite link I was hoping for!
Please provide any other relevant information.
I got the OneLink template ID from the OneLink templates page in my Appsflyer account.
onInitSdkSuccess(msg) {
console.log("onInitSdkSuccess: " + msg);
try {
console.log("about to setAppInviteOneLinkID");
this.appsflyer.setAppInviteOneLinkID('XXXX');
console.log("should have setAppInviteOneLinkID");
var inviteOptions = {
channel: 'gmail',
campaign: 'myCampaign',
customerID: '1234',
userParams: {
myParam: 'newUser',
anotherParam: 'fromWeb',
amount: 1
}
};
this.appsflyer.generateInviteLink(inviteOptions, this.onInviteLinkSuccess.bind(this), this.onInviteLinkError.bind(this));
} catch (error) {
console.log("AppsFlyer error: ");
console.log(error.name);
console.log(error.message);
console.log(error.stack);
}
}
onInitSdkError(err) {
  console.log("onInitSdkError: " + err);

}
onInviteLinkSuccess(link) {
console.log("onInviteLinkSuccess: " + link); // Handle Generated Link Here
}
onInviteLinkError(err) {
console.log("onInviteLinkError: " + err);
}

OK, this is now resolved thanks to excellent help from the AppsFlyer support team:
"To generate a shortened OneLink with the User Invite feature you must set a sub-domain for your OneLink in the OneLink templates page, If you do not set a unique sub-domain for your OneLink, a "long" OneLink will be generated with all the added parameters visible on the link."
After adding a subdomain to my OneLink template, I'm now getting a shortened url :)


How do you configure an action breakpoint to print a message to output and continue

Environment data
dotnet --info output:
.NET Command Line Tools (2.0.0)

Product Information:
 Version:            2.0.0
 Commit SHA-1 hash:  cdcd1928c9

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.16299
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.0.0\

Microsoft .NET Core Shared Framework Host

  Version  : 2.0.0
  Build    : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d

VS Code version: 1.17.2
C# Extension version: 1.12.1
Steps to reproduce
This is what I need to know.  How can you configure a conditional breakpoint to print a message and continue.  BTW the PowerShell ext debugger supports this (I implemented it :-) )
Expected  behavior
Should be able to configure a conditional breakpoint that does stuff (write's to output with variable values) and expression specifies whether the debugger breaks or continues.
Actual behavior
Well none yet, I'm not sure what the syntax would be.

@rkeithhill How did you hook this feature up to VS Code in the powershell debugger? Does VS Code have some extensibility point for a breakpoint's context menu?

No, we use the Condition expression.  You can enter either a simple Boolean expression (in PowerShell syntax):

Or you can enter a statement like so:

The statement has to specify the continue keyword otherwise the breakpoint will break at the line.
This was relatively easy to implement because PoweShell supports this capability with the Set-PSBreakpoint command which we use.


[pigeon] Make generated Swift classes and protocols optionally public for framework integration

Use case
For my Add-to-app scenario I started to use Pigeon to generate Dart, Swift and Kotlin code for the method channels.
To include the generated Swift files into my app I am using Cocoapods, where the generated code is part of a development Pod. With that I can easily integrate the files, update them via Cocoapods and don't need to copy any files between projects. But when using this approach I can't use the Swift files that have been generated by Pigeon, because they are declared as internal (default when not using any other access modifier). In order for Swift classes and protocols to be used from outside a framework (which is the case for me when using via Cocoapods) they need to be declared as public or open.
Proposal
Add an option public to SwiftOptions that when set would add the public access modifier to all protocols and classes.

Restricting class visibility is an intentional choice, since the details of generated classes are subject to change, and thus should not be used as public interfaces.
Could you elaborate on the use case here? How are you managing the generated Dart files in this model to ensure that all of the generated code remains consistent?

The Kotlin, Swift and Dart files are all generated within the same Flutter project. Two things I want to avoid:

copying the generated Swift file from the Flutter project to the host iOS project
establish any references between the host iOS project and the Flutter project that is not managed by Cocoapods
Means I would like to keep it cleanly separate between the host iOS project and the Flutter project, except for the Cocoapod pod usage.
I created a podspec just for the via Pigeon generated iOS files. My first attempt was to try to find a way to also include the Pigeon generated files into the Pod that Flutter generates, but couldn't find any.
So this separate podspec is installed just like any other development pod into the host iOS project. Because Cocoapods dependencies are handled via frameworks, the Pod with the generated Pigeon files is also now a framework dependency inside the host iOS project.
But because the Pigeon generated files are in a different framework target than the host iOS project, the classes and protocols will need to be public or open in order to be "exposed" to outside the framework.

I created a podspec just for the via Pigeon generated iOS files. My first attempt was to try to find a way to also include the Pigeon generated files into the Pod that Flutter generates, but couldn't find any.
So this separate podspec is installed just like any other development pod into the host iOS project. Because Cocoapods dependencies are handled via frameworks, the Pod with the generated Pigeon files is also now a framework dependency inside the host iOS project.

How are you guaranteeing usage of compatible versions of these two different pods? The communication protocol Pigeon uses is an internal implementation detail, subject to change at any time (and not considered a breaking change). That means that if a project uses Swift files and Dart files that were not generated with exactly the same version of Pigeon, arbitrary issues, including crashes, may result.

Means I would like to keep it cleanly separate between the host iOS project and the Flutter project, except for the Cocoapod pod usage.

If the goal is a clean separation layer, then our recommendation would be wrap your use of Pigeon in an API you control, so that clients of the pod are not subject to changes in implementation details of Pigeon-generated code. Is there a reason that wouldn't work with your use case?

How are you guaranteeing usage of compatible versions of these two different pods?
The Flutter pod and the "Pigeon generated code pod" are both in the same project. They will always be in sync (expect of course when not letting pigeon re-generate code after an update, but that can always happen).

If the goal is a clean separation layer, then our recommendation would be wrap your use of Pigeon in an API you control, [...]

Adding an additional layer would work in my case.
I just tested the Objective C code generation and the Objective C headers are in fact public, which is different from the generated Swift code. So there is a difference between Objective C and Swift generated code though. Maybe behavior should be the same?
If adding public access modifiers to the Swift code is not an option, then I would have two options:

use the generated Objective C code
add a wrapper layer to the Swift framework to expose it publicly

I just tested the Objective C code generation and the Objective C headers are in fact public, which is different from the generated Swift code. So there is a difference between Objective C and Swift generated code though. Maybe behavior should be the same?

What do you mean specifically when you say the Objective-C headers are public? Access control isn't a concept in Objective-C.

I can just easily add the generated .h files to the Cocoapods header definitions (s.public_header_files = '.h') which exposes the Objective C headers to be available outside of the framework.
This doesn't work for Swift, since the Swift classes would just need to be public or open to be available outside the framework.

I can just easily add the generated .h files to the Cocoapods header definitions (s.public_header_files = '.h') which exposes the Objective C headers to be available outside of the framework.

This is because there's no way to make that not be true in Objective-C; the only way to make all languages consistent here would be a least-common-denominator approach that never used features from newer languages, which is a non-goal for Pigeon.
Closing since creating a wrapper is our recommended solution; we deliberately don't want to encourage use of Pigeon-generated code in public API surfaces.


getting this msg no matter how I edit the latest prompt: prompt is too long: 205272 tokens > 199999 maximum

Describe the bug
I wonder if it relates to the length of the chat vs the length of the latest prompt?
Also, I don't seem to have gotten the additional tokens.
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-hdgrt4
Steps to reproduce
enter even a single word prompt
Expected behavior
I was expecting to continue with refining this project
Screen Recording / Screenshot

Platform
-Chromebook running Chrome browser Version 126.0.6478.253 (Official Build) (64-bit)
Additional context
No response

wtf are those backups? just download your code for versioning. if you put 10 versions of your app in the app code, that probably explain why it run out of tokens

The issue here is that your project is to large for the AI. You need to keep the total project size smaller, or it will overwhelm the AI, and throw this error.
More general usage tips are available in #678

Im still having this error, but I doubt the project is too large being the issue since even when i said "Hi" it gives me this prompt
also how can i make it smaller without AI and without removing a page that may brake

It is likely because the file system of the project is too large. More to come on this soon, but as a start, try to reduce the project size or break down the app into smaller components. This may be the best approach.
If you're able to replicate this on a small project with very few files in the file system, please take a video with Loom and share it here so that we can troubleshoot.

More info now available in #1322 where we are tracking this issue


fix: Allow bitoperations to be deserialized

The name generated for the function must match the path that they exist
atm otherwise they can't be looked up during deserialization.
cc @omegablitz

bors r+


WIP: Feature/dockerize

I am working on Dockerizing the demo, this is a starter but still need to improve some stuff.

Is this supposed to be used for dev? meaning is the code going to change while the container is running?
About the frontend part, should it be built when running the containers or just use the pushed build?
What's the decision about the database? should I move it to Postgres or leave SQLite?

Hello @creocoder, you will find related answers from Javier here : https://github.com/symfony/demo/pull/931#pullrequestreview-192161914

Is this supposed to be used for dev? meaning is the code going to change while the container is running?

I think yes.

About the frontend part, should it be built when running the containers or just use the pushed build?

Pushed build. But the containers should be able to regenerate the assets IMHO.

What's the decision about the database? should I move it to Postgres or leave SQLite?

Leave SQLite.

Regarding the other PR, I'm not sure it worths working on this.

Hello @COil
That's my understanding after @javiereguiluz explained to me the debate,
If however the community accepts this as a Good enough to Dockerize the demo I'm ready to improve it.


Error message on bad flags chops off a character

Summary
Narrow but hopefully still helpful (feel free to close if not)
With a typo in this command:
argo submit -log workflows/test.yaml

The error message refers to og, and NAME1=VALUE2:
FATA[2021-02-27T17:01:02.736Z] expected labels of the form: NAME1=VALUE2,NAME2=VALUE2. Received: og: unexpected label spec: og

This had me searching in my workflow file for og strings!
If this is because of a command-line plugin, also feel free to close
Diagnostics
What version of Argo Workflows are you running?
argo: latest+7379053.dirty
  BuildDate: 2021-02-17T02:30:14Z
  GitCommit: 737905345d70ba1ebd566ce1230e4f971993dfd0
  GitTreeState: dirty
  GitTag: v2.12.9
  GoVersion: go1.15.8
  Compiler: gc
  Platform: darwin/amd64

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

I think the issue is that the CLI thought you passed a -l, which is a shorthand for --labels and expects labels. Your command is interpreted as argo submit workflows/test.yaml -l og which would give you the same output as follows:
FATA[2021-02-27T21:39:08.381Z] expected labels of the form: NAME1=VALUE2,NAME2=VALUE2. Received: og: unexpected label spec: og

it has to be argo submit --log examples/hello-world.yaml

Thanks @terrytangyuan ; that makes sense. Closing.


[DX] Use RectorConfig instead of ContainerConfigurator

Ref Ref https://github.com/rectorphp/rector-src/pull/2065#issue-1201810126

Thanks :+1:
Not sure if you plan to do it in separate PR, yet tests should be upgraded too:
https://github.com/rectorphp/rector-doctrine/blob/main/tests/Rector/ClassMethod/MakeEntitySetterNullabilityInSyncWithPropertyRector/config/configured_rule.php

Thanks 🙏


Could Not Load Session errors for certain users

Hello,
We recently installed the latest version of the Estimate extension and are having some issues with a few users. Myself and another person can access created sessions, but when a few others try to access them they receive this error...
Could not load session: TF400893: Unable to contact the server. Please check your network connection and try again.
We verified all access matches those that are working. Everything else for Azure boards works fine. Just wondering if you have any ideas of things to check with this.
Thanks

HI! Do you know if they use VPN?

Yes, all 3 users are on 3 different VPN's spread across the US. My self and the working user also are on 2 of the same VPN's as the users that are affected.

Can you describe your environment? Can you see any error in the console or network log in the browser (using F12, debug tools)?

tfs.ascensus.com-1682000083169.log
Sorry for the late reply, attached is the console log from one of the users.

@AminTi - Any update on this?

@AminTi  - Just checking on this

Hi @dennislubins-asc  I believe the issue occurs when the query is private or when you create a query session and then delete the query. We will release a reset button to address this problem.  #25


Elements within elements are named by order using a dot separator

Elements within elements are identified for example as follows:
@XmlElement(name = "Substation.Region")
    private Region region;

This identifies a Substation.Region element within a Substation element.
I hope this can be achieved by using Region instead of Substation.Region:
@XmlElement(name = "Region")
    private Region region;

I don't know if this is possible, but it's more clean.

Issue closed because input files are now being processed with RDF4J


Support react-native

seems victory has a consistent model which allow charts to run in both react & react-native.
i'm wondering if it's a good start for  react-stockcharts to support react-native?

Extending victory will be a huge undertaking, From a quick glance, there are many defaults in victory which I am not convinced are the right way to go about.
They also don't seem to support canvas, and provide the interactivity of zoom, pan, ability to calculate indicators.
I have not looked at react native yet, I would like to support that in the future, right now my priority is to get 0.6 out, so may be after that.

I would change the subject of this issue to support RN if you want to keep this open. There is no plan to extend victory

victory is built on top of svg for react and they're developing a react-native version using react-native-svg ,  I thing the svg part of react-stockcharts is also good enough to support a react-native version, things to do are replacing tags and reducing features like transform, which are not working alike between svg and react-native-svg

@WaiSiuKei Thanks, I don't know anything about react native, so I have to ask this, there is no canvas support in RN ?

The only one way I know is to manipulate a webview by injecting scripts in html string
<WebView html={"<canvas></canvas><script>var canvas = document.querySelector('canvas');(" + renderString + ").call(" + contextString + ", canvas);</script>"} />

copied from the react-native-canvas

Will Preact be better than react?
Preact is a fast, 3kb alternative to React, with the same ES2015 API.

I don't have any plans right now to build a RN version. the current project by itself has been a huge undertaking, and I don't have the time or enough motivation to build a RN version.


HTTP Thread not dying when server shutdowns

This thread stays alive when the server shutdown is finished causing the java process to stay alive.

What version of the plugin are you using?

Closing this as no comment has been made and I assume this is using 5.0.0, before the OkHttp library was upgraded to accommodate this problem


Absolute path in .res file

I would like to confirm is Godot store absolute path in .res file, I found that because my main PC's Document folder is store in drive E: (because OS is store in SSD C:, others like Documents, Pictures, Music, Videos are store in E:)
My Godot project folder is store in E:, after copy the project to another PC, which has only 1 hard drive C:, Godot cannot load the image because it cannot find image in E:\ drive.
When I open the .res file, although it is not a plain text file, I found the absolute path "E:/Users/flim/Documents/" inside.

Nope, it stores project relative paths
On Jan 29, 2015 10:32 PM, "fredlim"<EMAIL_ADDRESS>wrote:

I would like to confirm is Godot store absolute path in .res file, I found
that because my main PC's Document folder is store in drive E: (because OS
is store in SSD C:, others like Documents, Pictures, Music, Videos are
store in E:)
My Godot project folder is store in E:, after copy the project to another
PC, which has only 1 hard drive C:, Godot cannot load the image because it
cannot find image in E:\ drive.
When I open the .res file, although it is not a plain text file, I found
the absolute path "E:/Users/flim/Documents/" inside.
—
Reply to this email directly or view it on GitHub
https://github.com/okamstudio/godot/issues/1314.

I modified MrGeenTea TiledMap import plugin to import TexturePacker json.
The plugin use FileDialog control, argument pass to the connection function is absolute path, the file path will store in the scene and the converted tile set.

I know this is not a bug, but is there a way to get relative path from the file dialog?

Closing as it's apparently not a Godot bug but an issue with a custom plugin. The following question is still interesting though, so if anyone knows the answer, I'm sure it could be useful to some :)

I know this is not a bug, but is there a way to get relative path from the file dialog?


Data file UX improvements

Description
@jonemurray has pointed out that it isn't currently obvious whether or not recording is taking place, so it is easy to forget to start recording before e.g. running a measure script.
I've tried to remedy this in two ways:

Make it more obvious when recording is happening by flashing a red LED and displaying some red text in a QLabel
Prompt the user to start data recording if they try to run a measure script when recording is not happening

Widget when recording is stopped:

Widget when recording is running (with flashing LED):

Suggestions on how to improve the appearance of the widget are welcome! (In particular, it looks a little odd the way the controls move around when the user starts/stops recording.) That said, I think it's perfectly usable as is :smile:
Fixes #526.
I've broken tests (hence why this is a draft PR), but I'll fix them up if everyone is happy with this solution.
Type of change

[x] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Documentation (non-breaking change that adds or improves the documentation)
[ ] Optimisation (non-breaking, back-end change that speeds up the code)

Key checklist

[x] Pre-commit hooks run successfully (pre-commit run -a)
[ ] All tests pass (pytest)
[ ] The documentation builds without warnings (mkdocs build -s)
[x] Check the GUI still works (if relevant)
[ ] Check the code works with actual hardware (if relevant)
[ ] Check the pyinstaller-built executable works (if relevant)

Further checks

[x] Code is commented, particularly in hard-to-understand areas
[ ] Tests have been added or an issue has been opened to tackle that in the future. (Indicate issue here: # (issue))

A red light is often used to mean "recording in progress" though, e.g. on camcorders, so that was my logic. It's also more eye-catching than green IMO. That's the same reason I made the light blink, to draw the user's attention to it. I take your point that it might make more sense to sync the blinking with when data is actually recorded, though.

Ah yes, fair point!

I've finished adding all the tests now, so we have 100% coverage for the changed files.
I also followed Dan's suggestion of flashing the LED when the data is actually being written.


Internally setting redux provider for components.

Codecov Report

Merging #185 into master will increase coverage by <.01%.
The diff coverage is 86.36%.

@@            Coverage Diff             @@
##           master     #185      +/-   ##
==========================================
+ Coverage   90.91%   90.91%   +<.01%
==========================================
  Files          78       78
  Lines        2916     2918       +2
  Branches      615      536      -79
==========================================
+ Hits         2651     2653       +2
  Misses        263      263
  Partials        2        2

Impacted Files
Coverage Δ

src/component/index.ts
100% <ø> (ø)
:arrow_up:

src/container/SpringContainer.tsx
60% <100%> (ø)
:arrow_up:

src/container/TensorTContainer.tsx
76.92% <100%> (+0.19%)
:arrow_up:

src/reducer/BBStore.ts
95.23% <100%> (ø)

src/container/index.ts
100% <100%> (ø)
:arrow_up:

src/container/PredictedContactMap.tsx
98.27% <100%> (ø)

src/container/NGLContainer.tsx
96.26% <100%> (ø)
:arrow_up:

src/reducer/index.ts
100% <100%> (ø)
:arrow_up:

src/container/AnatomogramContainer.tsx
44.44% <50%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Add the ability to configure global-default-backend

Do you want to request a feature or report a bug?
feature
What did you do?
I've got a wildcard dns and wildcard ssl certificate, let's call it "example.company.com" running on a single master/worker instance, for testing purposes.
I've got three ingresses with applications to publish: frontend, backend and the dashboard ingress of traefik.
$ kubectl get ingresses --all-namespaces
NAMESPACE     NAME               HOSTS                       ADDRESS   PORTS   AGE
dev   backend-ingress    backend.example.company.com              80      96m
dev   frontend-ingress   frontend.example.company.com             80      77m
kube-system   traefik-web-ui     traefik.example.company.com              80      107s

Applying those, results in the following error message, prompted in the traefik ingress controller pod:
time="2018-12-03T16:34:05Z" level=error msg="Error creating global backend for ingress dev/frontend-ingress: duplicate frontend: global-default-frontend"
time="2018-12-03T16:34:05Z" level=error msg="Error creating global backend for ingress dev/frontend-ingress: duplicate frontend: global-default-frontend"

Having a look at the backends and frontends of the traefik dashboard, I'll notice that they're flapping and the global-default-frontend is in error state. I see no way to configure the global-default-backend either.
Kind regards
What did you expect to see?
Ingress resources can be created
What did you see instead?
Error message
time="2018-12-03T16:34:05Z" level=error msg="Error creating global backend for ingress dev/frontend-ingress: duplicate frontend: global-default-frontend"
time="2018-12-03T16:34:05Z" level=error msg="Error creating global backend for ingress dev/frontend-ingress: duplicate frontend: global-default-frontend"

Output of traefik version: (What version of Traefik are you using?)
"Image": "sha256:3d6a43085f4ffcfa837f011000682b678cc1d1081c1e24573475d57ecf93f0e5",
"Labels": {
                "org.label-schema.description": "A modern reverse-proxy",
                "org.label-schema.docker.schema-version": "1.0",
                "org.label-schema.name": "Traefik",
                "org.label-schema.url": "https://traefik.io",
                "org.label-schema.vendor": "Containous",
                "org.label-schema.version": "v1.7.4"
            }

What is your environment & configuration (arguments, toml, provider, platform, ...)?
data:
  traefik.toml: |-
    InsecureSkipVerify = true
    defaultEntryPoints = ["http","https"]
    #logLevel = "DEBUG" # Debug Log Level
    [kubernetes]
    [api]
    address = ":8081"
    dashboard = true
    #Config to redirect http to https
    [entryPoints]
      [entryPoints.http]
      address = ":80"
        #[entryPoints.http.redirect]
        #entryPoint = "https"
      [entryPoints.https]
      address = ":443"
        compress = true
        [entryPoints.https.tls]
          [[entryPoints.https.tls.certificates]]
          certFile = "/etc/traefik/ssl/tls.crt"
          keyFile = "/etc/traefik/ssl/tls.key"
    [accessLog]

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: backend-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: traefik
spec:
  backend:
    serviceName: backend-service
    servicePort: 8081
  rules:
  - host: backend.company.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: backend-service
          servicePort: 8081

and the second ingress here:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: traefik

spec:
  backend:
    serviceName: frontend-service
    servicePort: 80
  rules:
  - host: frontend.company.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: frontend-service
          servicePort: 80

both ingresses will be deployed via kubectl apply -f ingress.yaml --namespace=development

Hello @lukibahr, as I suspected, you have make a bit of a mistake in your ingresses.
The spec.backend works a bit differently than you think:
https://kubernetes.io/docs/concepts/services-networking/ingress/#default-backend
You have configured a duplicate global default backend on both of your ingresses.
https://docs.traefik.io/configuration/backends/kubernetes/#global-default-backend-ingresses
delete the:
 backend:
    serviceName: backend-service
    servicePort: 8081

and
  backend:
    serviceName: frontend-service
    servicePort: 80

and you should be fine.

well.. seems like a deep error in my brain. I was kinda blind that i've missed the duplicate global default backend in both resources.
Thanks alot!


CI misses github webhook POST call

In our org we have lot of CI's, hence there is lot of poll scm calls which is creating unnecessary traffic on github server. Hence we planned to go ahead with github web hooks. In this model builds won't get triggered if web hook POST call did not reach CI due to network glitch or if CI itself is down for some reason. How about implementing long interval polling logic to cover the missed PR even if user is selected web hook model ? Please share your thoughts.

@sathiya-mit Github itself does appear to do some level of retry for delivery failures.

I would argue that this is a bit out of scope.
If you think otherwise you just reopen the issue please.


Updated memory limit based on my experience with update 8

I loaded up a bigger safe and the server didn't consumed more than 4GB (so I updated to 5GB)
This only applies to update 8 so this PR is draft atm until update 8 gets released to the early access branche.

Sorry forgot something


Question about in-batch negatives in the training loop.

https://github.com/ContextualAI/gritlm/blob/58ccad88e34e133f6a9680d9ce44854ad26a8c7c/gritlm/training/arguments.py#L46-L54
"Besides the negatives in this group, the in-batch negatives will also be used in fine-tuning."
I use this file as train data, where each query has 1 positives and 7 negatives. When I set train_group_size=2 and per_device_train_batch_size=2, do I use the negatives in the mini-batch of two samples per step?  When I set train_group_size=2 and per_device_train_batch_size=1, do I use the negatives in the mini-batch of one sample per step?
I am confused about the negatives provided in the file and in-batch.
And where is the code logic of in-batch negative sampling?

in-batch negatives are using the other samples in the same batch as negatives. It happens in https://github.com/ContextualAI/gritlm/blob/0cc9aeab83b90f2e22bcdd2b084d51507c624d95/gritlm/training/model.py#L36
they are gathered across devices thus it depends on your global batch size how many in-batch negatives there are.
the regular negatives (or hard negatives) meanwhile do not depend on batch size and just on train_group_size

Totaly understood! Thanks!


Security advisory for 'decompress'

The 'decompress' npm package is vulnerable to Arbitrary File Write according to https://www.npmjs.com/advisories/1217. Decompress is used by Serverless, which is a third party package that is used to build the Lambda functions in this solution. We will track the Serverless issue for a fix and implement when one is available.
https://github.com/serverless/serverless/issues/7402

This is resolved with #8002ec


Add button toggle for light/dark mode

I want to add a docked cell in the stylesheet definition that will toggle between "Dracula.nb" and "Default.nb" as the style definitions for a notebook.
Default.nb doesn't contain a definition for a toggle, so as soon as you toggle in a notebook with a Dracula theme, it will disappear. So, how I see it working, is that a separate stylesheet that inherits from Default.nb will be used...What I'm not sure about is if

users will need to have a new "Default-2.nb" stylesheet installed or if

the Notebook expression that contains the new stylesheet can be iconized and stored somewhere hidden like within the docked cell

The docked cell will need to be added to the notebook style definition, if at all
Other things to consider:

a docked cell with just a toggle button is weird at best, annoying at worst. It will need to contain some other things
is this something that would even be useful for other people 🤣

Basic prototype:
ex1 = Button[ "Toggle Light/Dark Mode",
  Module[{nb, dark, light, current},
      nb = EvaluationNotebook[];
      dark = "Dracula.nb";
      light = "Default.nb";
      current = StyleDefinitions -> "Dracula.nb";

   If[
       First@Options[nb, StyleDefinitions] === current,
       SetOptions[nb, StyleDefinitions -> light],
       SetOptions[nb, StyleDefinitions -> dark]
    ]
   ]];

CreateWindow[DockedCells -> Cell[BoxData[ToBoxes[ex1]], "DockedCell"]]

If anyone has any thoughts, please comment below.

An update: a better approach would be a RadioButtonBar, since they're a bit more nondescript. Prototype below:

Turning the input into a viable box expression using ex2 // CellPrint gives the following:
Cell[BoxData[
 DynamicModuleBox[{$CellContext`dark$$ = "Dracula.nb", $CellContext`light$$ =
  "Default.nb", $CellContext`input$$ = "Dracula.nb", $CellContext`action$$},
  InterpretationBox[
   StyleBox[
    RowBox[{GridBox[{
       {
        RadioButtonBox[
         Dynamic[$CellContext`input$$, ($CellContext`input$$ = #; \
$CellContext`action$$[$CellContext`input$$])& ], {"Dracula.nb"},
         DefaultBaseStyle->"RadioButtonBar"],
        StyleBox[
         StyleBox["\"\<Dark\>\"",
          StripOnInput->False,
          LineColor->GrayLevel[0],
          FrontFaceColor->GrayLevel[0],
          BackFaceColor->GrayLevel[0],
          GraphicsColor->GrayLevel[0],
          FontColor->GrayLevel[0]], "RadioButtonBarLabel", "ControlStyle",
         StripOnInput->False]}
      },
      AutoDelete->False,
      BaselinePosition->{1, 2},
      GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}},
      GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
      GridBoxSpacings->{"Columns" -> {
          Offset[0.27999999999999997`], {
           Offset[0.21]},
          Offset[0.27999999999999997`]}, "Rows" -> {
          Offset[0.2], {
           Offset[0.4]},
          Offset[0.2]}}], "  ", GridBox[{
       {
        RadioButtonBox[
         Dynamic[$CellContext`input$$, ($CellContext`input$$ = #; \
$CellContext`action$$[$CellContext`input$$])& ], {"Default.nb"},
         DefaultBaseStyle->"RadioButtonBar"],
        StyleBox[
         StyleBox["\"\<Light\>\"",
          StripOnInput->False,
          LineColor->GrayLevel[0],
          FrontFaceColor->GrayLevel[0],
          BackFaceColor->GrayLevel[0],
          GraphicsColor->GrayLevel[0],
          FontColor->GrayLevel[0]], "RadioButtonBarLabel", "ControlStyle",
         StripOnInput->False]}
      },
      AutoDelete->False,
      BaselinePosition->{1, 2},
      GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Baseline}}},
      GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
      GridBoxSpacings->{"Columns" -> {
          Offset[0.27999999999999997`], {
           Offset[0.21]},
          Offset[0.27999999999999997`]}, "Rows" -> {
          Offset[0.2], {
           Offset[0.4]},
          Offset[0.2]}}]}], "Deploy"],
   RadioButtonBar[
    Dynamic[$CellContext`input$$, ($CellContext`input$$ = #; \
$CellContext`action$$[$CellContext`input$$])& ], {"Dracula.nb" -> Style["Dark",
       GrayLevel[0]], "Default.nb" -> Style["Light",
       GrayLevel[0]]}, LabelStyle -> "ControlStyle"]],
  DynamicModuleValues:>{{DownValues[$CellContext`action$$] = {HoldPattern[
         $CellContext`action$$[
          Pattern[$CellContext`stylesheet,
           Blank[]]]] :> SetOptions[
         EvaluationNotebook[], StyleDefinitions -> $CellContext`stylesheet]}}}]],
 GeneratedCell->True,
 CellAutoOverwrite->True]