Question with Hashlink!

Hi! Thank you for making this repo 🥇. I found it this thread: https://github.com/HaxeFoundation/hashlink/issues/144 and I've been talking to Justin Walsh on Heaps Gitter trying to get iOS up and running.
I understand that you're not supporting this so no obligation to help.
I'm stuck at this step: haxe build-hlc.hxml. I get this error:
Code generated in submodules/hashlink/src/_main.c automatic native compilation not yet implemented
But then I discovered that haxelib installed<EMAIL_ADDRESS>and it was using that one.
So I modified your ./install.sh file from:
haxelib install hashlink
to:
haxelib dev hashlink submodules/hashlink
But now I get:
haxe build-hlc.hxml
Error: Error parsing haxelib.json for hashlink@dev: [file_contents,/Users/luke/dev/haxe/xcode-heaps/submodules/hashlink/haxelib.json]
Error: Build failed

I've tried moving submodules/hashlink/other/haxelib/haxelib.json to submodules/hashlink/haxelib.json but then I get:
haxe build-hlc.hxml
Error: Library hashlink version dev does not have a run script
Error: Build failed

I tried cmake ., make inside submodules/hashlink, it builds but still get the same errors.
I'm not sure what I'm doing wrong, but I'm sure it's something pretty easy/minor that I've just missed or overlooked because I'm a noob. :(
(Also, I needed to install: hscript, & hxbit)

Yo! So you do want to use haxelib install hashlink, the reason why it's not working using the "dev" one is because you're missing a run.n in that directory, alternatively you could compile it yourself, but it's just easier to use the official one on haxelib.
Code generated in submodules/hashlink/src/_main.c automatic native compilation not yet implemented means that the hlc code was compiled successfully.
You're right, completely forgot hscript and hxbit, and also having hashlink installed is a prerequisite (but is only a make all && make install away, in the hashlink directory).
I'll add those steps in install.sh.
Then, once hlc is compiled, open the XCode project heaps-iOS.xcodeproj, click Build and it should hopefully works, you'll probably have to tweak the "dev team" / "signing" option and the "Bundle Identifier".

I do hope to get it all running eventually with a simple ./compile-everything-and-run-on-ios.sh

Let me know if you get it to run also, and feel free to send a PR. I tried to set this up using the latest on heaps / hashlink with as little modification as possible, it's still got some rough edges but it really isn't that far off. I'm trying to make a case to eventually try heaps where I work at for our next project.

@starburst997 I got it up and running! Thanks so much for your help. Yeah, for some reason I thought automatic native compilation not yet implemented was an error message and it didn't work.


[Question] How to send cookies with OAuth response?

The end of the Authorization doc mentions getting cookies alongside an OAuth response.

For HEY, we have a slightly different approach. We get the cookies back along with our initial OAuth request and set those cookies directly to the web view and global cookie stores.

First, can you elaborate a bit more on how that's possible with Rails? This request is coming from a new client, so it shouldn't have any existing or shared session/cookies. Are they created fresh? If so, how?
Second, am I wrong to assume that the access token request should be hitting an API-like controller? This will be a request without a CSRF token, so no protection can be added there. But if I work with, for example, ActionController::API, then I don't even have access to the cookies.
I've spent a while on this and feel like I'm missing something obvious. But I'm kind of lost as to how this all lines up. Any help would be greatly appreciated! Thanks in advance.

Hey @joemasilotti, I believe when returning the OAuth token response to the client, we just manually call a method to set the session cookies on that response, so the Set-Cookie header gets sent along with the tokens in the body. Our native app then persists the tokens to the keychain and grabs those cookies from the header to set in cookie storage.
I'm not an expert on the Rails side, so I'll defer to @rosa on our team here who programmed the OAuth side of things for the mobile teams.

Ah, so the client reads the cookie directly from the header! That makes a lot more sense. I kept trying to read from the shared cookie storage which doesn't seem to update right away.
I'm going to confirm I can get this working before I close this out. Thanks for the help!

If anyone gets here and is using Devise and API Guard, here's how I solved this.
And here's the very rough first pass of how I would authenticate in the client. In practice, these are two different classes and I actually handle the errors. But hopefully the idea at least helps! The missing link for me was HTTPCookie.cookies(withResponseHeaderFields:for:).
import WebKit

class HybridAuthenticationService: NSObject {
    private let webViewConfiguration: WKWebViewConfiguration

    init(webViewConfiguration: WKWebViewConfiguration) {
        self.webViewConfiguration = webViewConfiguration
    }

    func signIn(email: String, password: String, completion: @escaping (_ success: Bool) -> Void) {
        postSignIn(email: email, password: password) { [weak self] accessToken, cookies in
            if let sessionCookie = cookies.first(where: { $0.name == "_supercharger_session" }) {
                HTTPCookieStorage.shared.setCookies(cookies, for: Endpoints.API.newSession, mainDocumentURL: nil)
                self?.webViewConfiguration.websiteDataStore.httpCookieStore.setCookie(sessionCookie) {
                    // Temporary. This should persit to the user's keychain.
                    UserDefaults.standard.setValue(accessToken, forKey: "AccessToken")
                    completion(true)
                }
            } else {
                completion(false)
            }
        }
    }

    private func postSignIn(email: String, password: String, completion: @escaping (_ accessToken: String, _ cookies: [HTTPCookie]) -> Void) {
        var request = URLRequest(url: Endpoints.API.newSession)
        request.httpMethod = "POST"
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")
        let json: [String: Any] = [
            "email": email,
            "password": password,
        ]
        request.httpBody = try? JSONSerialization.data(withJSONObject: json)

        // TODO: Actually handle errors.
        URLSession.shared.dataTask(with: request) { _, response, error in
            if let error = error {
                print(error.localizedDescription)
            } else if let response = response as? HTTPURLResponse, response.statusCode != 200 {
                print("Not OK", response.statusCode)
            } else if let response = response as? HTTPURLResponse, let accessToken = response.value(forHTTPHeaderField: "Access-Token") {
                let cookies = HTTPCookie.cookies(withResponseHeaderFields: response.allHeaderFields as! [String: String], for: request.url!)
                DispatchQueue.main.async {
                    completion(accessToken, cookies)
                }
            } else {
                print("No access token")
            }
        }.resume()
    }
}

Hi @joemasilotti Any pointers on getting the third-party logins to work on a Rails app with turbo, devise, and omniauth. Everything is working fine on the web side, but on ios I get "Preflight response is not successful. Status code: 302" and "Fetch API cannot load https://www.facebook.com/v4.0/dialog/oauth?....... due to access control checks." errors. I apologize if I'm posting this on the wrong thread, but I can't find any pointers with my scenario. If I set the form for each button (google, facebook, etc.) to "data-turbo": false then obviously the buttons on the ios side don't work. Any help will be greatly appreciated!

From my understanding this will never work with Turbo. You can't perform a cross-site JavaScript request (which powers Turbo) due to security concerns. You will need to catch this request and perform it natively in the app.

@joemasilotti Thanks for the insight. So, if I understood you correctly, I need to send the request to Facebook, Google, etc. natively, get the token back from them and pass it back to my turbo app (I'm using Rails) to authenticate the user? Thanks!

@estebanutz Hey, did you get it working ? Would you be willing to share any insights if you have them, I am planning on doing this aswell.

Hi @AsWali we end up pushing the app live without that feature. The client wanted to push it live as soon as possible. The third-party login feature addition was then moved to phase 2, but we never actually needed it. So I haven't worked on this since then or fix it.

Hey @estebanutz thank you for quick response. We did the same and now are kinda looking at it again, I noticed the official Hey! app does not have SSO, which I found strange.

@AsWali I don't think so. It may be related to getting the app accepted to the app store, but I'm not 100% sure.

@AsWali running into this too did you manage to work around it ?


Stopping multiple processes should not fail fast

Feature Request
When stopping more than one process, all processes that can be stopped should be stopped, regardless of whether there is an error stopping another process.
Use Case:
For the sake of discussion, assume "bad" means a process either never existed or is no longer running.
Right now if you attempt to stop multiple processes and one of them is bad, the processes that actually get stopped depend on the order in which the processes are passed to process-compose. This is a surprising behavior, and we should aim for the least surprising behavior.
Proposed Change:
When stopping multiple processes, attempt to stop all of them before handling any errors. Some of the errors a user will encounter can be caught before stopping any processes e.g. you can check whether a process exists or whether it's running before trying to stop it, but there may be some errors that can only be caught while trying to stop the process. In that case you can't "unstop" the process and undo the the user's requested operation. In that case it's best to attempt to complete as much of it as possible and inform them of the error.
Who Benefits From The Change(s)?
Everyone
Alternative Approaches

Hi @zmitchell,
Let's say there are 2 processes good and bad. What do you think should be the behavior in terms of error reporting:

What should be the exit code?
What should be printed as an error (if at all)? Will it scale to 20 bad processes?
Today process compose returns the list of the stopped processes. Should it return 2 lists (stopped, failed + reason)? Obviously, that will be an API breaking change.

I think you should not run the command at all if you can tell that bad is not a process that was in the user's config e.g. you should check the process names before shutting anything down.

That eliminates a lot of the ambiguity that prompted this issue.
Regardless, to answer your questions:

I would expect this to be nonzero because we couldn't complete the entirety of the user's request.

It depends on whether you want full or summarized output. My personal preference is to default to full output, which would look like

:green-check: Successfully stopped proc1
:green-check: Successfully stopped proc2
:red-x: Failed to stop proc3
:green-check: Successfully stopped proc4
...

If you wanted more concise output you could do:
Successfully stopped some processes but encountered failures for: proc1, proc2, ...

or
Successfully stopped some processes but encountered failures for:
- proc1
- proc2
...

I think if I have 20 bad processes, that's something I want to know about, and furthermore if 19 of them are bad for one reason and 1 of them is bad for another reason, that's also something I want to know about.

I don't actually see where that list of stopped processes is returned. If I have two processes sleeping1 and sleeping2, then try to stop those and a bad process, this is what I see:

24-08-05 12:00:38.292 FTL failed to stop processes [sleeping1 sleeping2 sleeping3] error="process sleeping3 is not running"

Added in v1.18.0
Cheers ✌🏻


Merge docfx.json changes

Merge docfx.json changes

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

SP-Framework/docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Issue with web-based tool

Hi,

Is following the READ_ME file enough to reproduce the results with the given dataset in the experiments folder ?
The web-based tool with the address http://<IP_ADDRESS>:5000/ is not accessible.

The trend of the results in the paper are reproducible, however, the results may vary since the output of the ML models is not deterministic. Also, Codex has been discontinued and thus results with Codex are no longer reproducible.
try python3 -m flask --app frontend.py run --host <IP_ADDRESS> and use the web address printed to the terminal.


update README with "conda activate" commands

conda now asks users to use "conda activate" instead of "source activate" for activating and deactivating environments ("conda deactivate")

done


Hexagonal tmx map will not render correctly

In Tiled Editor:

##In Bevy ecs tilemap:

This is t1.png

This is tmx file
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.10" tiledversion="1.10.0" orientation="hexagonal" renderorder="right-down" width="18" height="10" tilewidth="48" tileheight="54" infinite="0" hexsidelength="26" staggeraxis="y" staggerindex="odd" nextlayerid="2" nextobjectid="1">
 <tileset firstgid="1" name="t1" tilewidth="48" tileheight="54" tilecount="1" columns="1">
  <image source="tiles/t1.png" width="48" height="54"/>
 </tileset>
 <layer id="1" name="Layer 1" width="18" height="10">
  <data encoding="base64" compression="zstd">
   KLUv/WDQAeUBAFAAAQEAAQEBAQEBHaCAfWADSeohACiwECWHwVncQwOrX2HuohFAI8zdiZaXlO5S+myG50vazEDnIKfTOw==
  </data>
 </layer>
</map>

This is bevy_ecs_tilemap version
tiled = "0.11.0"
bevy_ecs_tilemap = { git = "https://github.com/StarArawn/bevy_ecs_tilemap.git", branch = "main" }

Are you able reproduce this with the in-repo tiled example and tiled 0.10?
Also, it looks like perhaps you've uploaded the first screenshot twice by mistake rather than t1.png.

Reupload t1.png
in-repo helper has path bug if tmx more deeper

It has x not flip bugs(I already fix)

Maybe i should extend TilemapBundle's map_size to double times and change every TilePos's x ?

It looks like the current example code assumes HexCoordSystem::Row, which is an "even" stagger, but the Tiled map settings above are staggerindex="odd".
You want to use HexCoordSystem::RowOdd or change the setting in Tiled.

I don't think we can fix this in the example until functionality is added to tiled. https://github.com/mapeditor/rs-tiled/issues/261

I have a WIP branch about staggeraxis. I'll send PR after fix all founded bugs.

https://github.com/mapeditor/rs-tiled/pull/262

L263
-                                 TilemapType::Hexagon(HexCoordSystem::Row)
+                                if (tiled_map.map.staggeraxis == StaggerAxis::X) {
+                                    TilemapType::Hexagon(HexCoordSystem::Column)
+                                } else {
+                                    TilemapType::Hexagon(HexCoordSystem::Row)
+                                }

Change this line then system can support StaggerAxis now.

But although I can fix StaggerAxis and StaggerIndex, the render is still very strange.

Config StaggerAxis :X

It look likes become y flip and still have inclined render.

Ok, it seems i forget to add even and odd.
match tiled_map.map.staggeraxis {
                                    StaggerAxis::X => {
                                        match tiled_map.map.staggerindex {
                                            StaggerIndex::Even => {
                                                TilemapType::Hexagon(HexCoordSystem::ColumnEven)
                                            },
                                            StaggerIndex::Odd => {
                                                TilemapType::Hexagon(HexCoordSystem::ColumnOdd)
                                            }
                                        }
                                    }
                                    StaggerAxis::Y => {
                                        match tiled_map.map.staggerindex {
                                            StaggerIndex::Even => {
                                                TilemapType::Hexagon(HexCoordSystem::RowEven)
                                            },
                                            StaggerIndex::Odd => {
                                                TilemapType::Hexagon(HexCoordSystem::RowOdd)
                                            }
                                        }
                                    }
                                }

It look close.

But still flip y.

Finally fix this, but i found some strange.
Why I need swap RowOdd <-> RowEven then It render correctly?
https://github.com/StarArawn/bevy_ecs_tilemap/blob/main/examples/helpers/tiled.rs#L263
                            tiled::Orientation::Hexagonal => match tiled_map.map.staggeraxis {
                                StaggerAxis::X => match tiled_map.map.staggerindex {
                                    StaggerIndex::Even => {
                                        TilemapType::Hexagon(HexCoordSystem::ColumnOdd)
                                    }
                                    StaggerIndex::Odd => {
                                        TilemapType::Hexagon(HexCoordSystem::ColumnEven)
                                    }
                                },
                                StaggerAxis::Y => match tiled_map.map.staggerindex {
                                    StaggerIndex::Even => {
                                        TilemapType::Hexagon(HexCoordSystem::RowOdd)
                                    }
                                    StaggerIndex::Odd => {
                                        TilemapType::Hexagon(HexCoordSystem::RowEven)
                                    }
                                },
                            },

https://github.com/StarArawn/bevy_ecs_tilemap/blob/main/examples/helpers/tiled.rs#L280
                                if tiled_map.map.orientation == tiled::Orientation::Orthogonal
                                    || tiled_map.map.orientation == tiled::Orientation::Hexagonal
                                {

A year later I finally discovered that I had done this problem before, and this time I knew why I need swap RowOdd <-> RowEven and ColumnOdd <->ColumnEven then It render correctly.
Because the correct rendering order of tiled starts from the lower left corner.
Maybe this will touch a very low-level part of the entire crate. Can anyone help?
Regarding the out-of-order part, here are introductions and sample pictures.
https://github.com/adrien-bon/bevy_ecs_tiled/issues/41


Ck editor inline file input not refering to proper data attribute

On the default blog post creation, update form the inline file input refers to the data-file attribute should be data-file-path

Thank you ! Must have missed this when updating all data attributes to file-path instead of both.
👍


Keep existing function name in unmapped source files

When a source map is not found for a url then can we keep the existing function name from the stack trace line instead of replacing with (unknown)
For example, a Jasmine unit test fail generates:
`Error: Expected Function to be true.
at stack (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1577:17)
at buildExpectationResult (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1547:14)
at Spec.Env.expectationResultFactory (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:638:18)
at Spec.addExpectationResult (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:330:34)
at Expectation.addExpectationResult (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:588:21)
at Expectation.toBe (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1501:12)
at Object.<anonymous> (https://localhost:44364/ScriptTests/Specs/knockout-utils.js:49:28)
at attemptSync (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1886:24)
at QueueRunner.run (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1874:9)
at QueueRunner.execute (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1859:10)`

This is transformed into
`Expected Function to be true.
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1577:17)
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1547:14)
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:638:18)
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:330:34)
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:588:21)
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1501:12)
at (unknown) (knockout-utils.ts:71:23)
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1886:24)
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1874:9)
at (unknown) (https://localhost:44364/ScriptTests/lib/jasmine/jasmine.js:1859:10)`

jasmine.js doesn't have a source map

Great suggestion. I haven't had time to look at it myself unfortunately..

fixed by #11


Move vision code into a subpackage

This PR was created via: https://gist.github.com/dhermes/e239691aa584bd56a5352e34aad27cf3
export PROJECT_DIR="${HOME}/google-cloud-python"
export READMES_DIR="${HOME}/i-wrote-some-readmes-for-2357"
cd ${PROJECT_DIR}
git worktree add -b make-vision-subpackage ../hotfix official/master
python make_commits.py \
  --git-root "${PROJECT_DIR}/../hotfix" \
  --package vision \
  --package-name "Google Cloud Vision" \
  --readme "${READMES_DIR}/vision/README.rst"

Third commit was done by hand to fix up fixture import problems.

Rebased after #2430. Green build


Redis Cluster does not have support for pipeline (Job batch)

Laravel Version: 8.61.0
PHP Version: 8.0.8
Database Driver & Version: Clustered Redis v6.0.5

Description:
When trying to use job Batches  to dispatch a series of jobs to a redis cluster queue, an 500 exception is thrown.
Call to undefined method RedisCluster::pipeline() {"userId":2,"exception":"[object] (Error(code: 0): Call to undefined method RedisCluster::pipeline() at /project/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php:402

Steps To Reproduce:

Setup redis cluster for queue management according to these instructions: https://laravel.com/docs/8.x/redis#clusters
try to dispatch jobs as a batch according to these instructions: https://laravel.com/docs/8.x/queues#job-batching

For further information regarding phpredis, redis cluster and pipeline, it can be found here: https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#pipelining

Given the "phpredis/phpredis" package doesn't support pipelines on a cluster setup, there doesn't seem to be much Laravel can do except:

add a callout in the documentation
throw a custom PipelineUnsupportedException, although the current exception about RedisCluster::pipeline() might communicate enough when paired with a docs callout.

Have you tried configuring "predis/predis" instead of "phpredis/phpredis"?

"phpredis/phpredis" docs state:

It would be possible to implement [pipelining] support as an option if there is demand for such a feature.

So anyone that reaches this issue can send their upvote to https://github.com/phpredis/phpredis/issues/1910

Have you tried configuring "predis/predis" instead of "phpredis/phpredis"?
I triend to switch to predis, but I got stuck in this issue: https://github.com/predis/predis/issues/695 and I gave up on that approach.

I guess Laravel could have override the pipeline-function in PhpRedisClusterConnection.php and just execute the command instead of executing it via the pipeline?

This is a feature request so I'm moving this to discussions.


Search for "Netflix" crashes Kodi

Bug report
Your Environment

Netflix add-on version: v1.16.0+matrix.1
Operating system version/name: LibreElec 9.95.4
Device model:  Pine64 ROCKPro64

Used Operating system:

[ ] Android
[ ] iOS
[ ] Linux
[ ] OSX
[ ] Raspberry-Pi
[ ] Windows

Describe the bug

I installed repository.castagnait-1.0.0.zip.
After this, when I search for "netflix", Kodi crashes. It cannot be restarted. I need to reboot the ROCKPro64.
If I search another term, it's working fine. Searching "netflix" before installing repository.castagnait-1.0.0.zip was working.
Expected behavior

Search will return results associated to the query
Actual behavior

Kodi crashes and cannot be relaunch. A reboot is needed.
Steps to reproduce the behavior

Install repository.castagnait-1.0.0.zip
Search "netflix"

Possible fix

Debug log

The debug log can be found here:

https://paste.kodi.tv/zoliwudiju.kodi
Additional context or screenshots (if appropriate)
Other information

Screenshots

@clement-analogue Once the repository is installed, you need to install the Add On from the new installed repository

Afterward, I installed the plugin by browsing the repo.
The issue is really that a search returning an addon from this repo will make Kodi crash for some obscure reason.

I think you may open a ticket on kodi(xbmc)  or Libreelec, caus, it is not this addOn Realted.
Glad to hear that you installled it.


Support log --pr

I'd like to know what the Pull Request makes this change in the file like commits.
Because Pull Request contains more information than commits. Their are description, and reviewer comment, and build status, and so on.
Does hub support like this?
My idea is like below:
$ hub log --pr commands/pull_request.go
941379 #1165 Fix copy-pasta
...

That's a really good suggestion. Right now there is no way to do this using hub, but you could simulate the output by doing a plain bash script (no hub needed):
#!/bin/bash
set -e

find_pull() {
  git log --merges --ancestry-path --oneline "$1.." | awk '
    /Merge pull request #/ { sub("#", "", $5); print $5 }
  ' | tail -1
}

git log --oneline --no-merges "$@" | while read sha subject; do
  pull_id="$(find_pull "$sha")"
  [ -z "$pull_id" ] || pull_id="#${pull_id}"
  printf "%7s %5s %s\n" "$sha" "$pull_id" "$subject"
done

Usage: git-log-pr commands/pull_request.go
You might find that this can be slow when there are many commits touching this file. To speed up the command, you can pass a limit to the number of commits returned:
git-log-pr -5 commands/pull_request.go

Ofcause we can do that by shell script. I know some people implement it by shell script.  so I wrote this feature request.
Thanks to read my ticket.


Goertzel algorithm for scipy.signal

Is your feature request related to a problem? Please describe.
The Goertzel algorithm is used in spectral analysis to return individual terms of the DFT. It can be significantly faster than DFT when data sets are large and only a few terms are needed (see the Wikipedia page). This is useful for tone detection and the returning the phase of specific tones.
Describe the solution you'd like
A currently working implementation in C is https://github.com/NaleRaphael/goertzel-fft . That repo also benchmarks Goertzel vs scipy.fftpack.fft. However, their code only returns the magnitude of a DFT term, changing this to return the complex valued term would be more useful.

The algorithm looks simple enough and seems like it could be useful for people who just need a few terms. There is also an equivalent in MATLAB, which speaks at least somewhat to its utility. Using the Wikipedia rule of thumb for the number of frequencies I get for example that it's useful for example computing <= 50 freqs for N=1024.
I think an API like:
def goertzel(x, idx, n=None, axis=-1):

Could be good to come close to our fft API (it doesn't have all the options but is probably a good enough start). idx would be an array-like of indices to say which of the FFT coefficients to compute. (In real-world applications people will probably use something like rfftfreq to figure out the indices of the frequencies they want to keep.)
@serge-sans-paille based on a quick look at the Wikipedia page this seems like a good candidate for Pythran, no? If so, and if other folks think this would be worthwhile I could probably look into implementing it. Looks like a fun one!

The algorithm looks simple enough and seems like it could be useful for people who just need a few terms. There is also an equivalent in MATLAB, which speaks at least somewhat to its utility. Using the Wikipedia rule of thumb for the number of frequencies I get for example that it's useful for example computing <= 50 freqs for N=1024.
I think an API like:
def goertzel(x, idx, n=None, axis=-1):

Could be good to come close to our fft API (it doesn't have all the options but is probably a good enough start). idx would be an array-like of indices to say which of the FFT coefficients to compute. (In real-world applications people will probably use something like rfftfreq to figure out the indices of the frequencies they want to keep.)
@serge-sans-paille based on a quick look at the Wikipedia page this seems like a good candidate for Pythran, no? If so, and if other folks think this would be worthwhile I could probably look into implementing it. Looks like a fun one!

bumping milestone

Bumping milestone to 1.9.

Bumping the milestone once more.


RPC methods to return error

Note: errors_test.go shows that rpc methods return an error type (so err!=nil executes as expected), but retains the rich RPC error information.


Support multiple classes

Changed the setCustomClass function to support multiple classes (separated by spaces, as they would be in html) in the tooltip-class option.

Hello, do you plan to merge this?

@fdarveau thanks


Could this be ported to VSCODE editor as an extension?

I just want to ask if this is possible for Flutter apps?
Tell us about the task you want to perform and are unable to do so because the feature is not available
I would love to use this if this was integrated into VSCODE as an extension

Nice suggestion, but currently it is not possible for Flutter apps.
Will definitely keep this feature in mind for a future release.


[otbn, dv] OTBN regression failure triage with CDC instrumentation

I've done a triage pass of failures seen in the OTBN regression when CDC instrumentation is enabled. To do this I compared the failures with the instrumentation on against the failures from the latest nightly (which has instrumentation off) and looked at those signatures that were only seen in tests with the instrumentation on. I also looked at tests that had significantly higher failure rates with instrumentation on but were failing with signatures seen in those tests with instrumentation off.
A full nightly was run against commit d941d7e8b7d25a30b41c714c4c448c87a2853551 modified to enable CDC instrumentation for OTBN by modifying:
https://github.com/lowRISC/opentitan/blob/3db2d45d97475e28e63ecedbe824a0eee108f523/hw/ip/otbn/dv/uvm/otbn_sim_cfg.hjson#L74
All bar one failure are verification environment issues that aren't a concern for M2.5.2. One failure could a be serious CDC issue (https://github.com/lowRISC/opentitan/issues/19044).
Other than #19044 the failures here can be addressed in V3.
Full details of failures triaged and conclusions are below:
New signatures from CDC enablement:
UVM_FATAL (otbn_model_if.sv:77) [otbn_model_if] Check failed (u_model.otbn_model_step_crc(handle, item, crc_state) == *) Failed to update CRC has 2 failures:

Test otbn_escalate has 2 failures.
32.otbn_escalate.4215586503
Line 113, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/32.otbn_escalate/latest/run.log

  UVM_FATAL @   2373129 ps: (otbn_model_if.sv:77) [otbn_model_if] Check failed (u_model.otbn_model_step_crc(handle, item, crc_state) == 0) Failed to update CRC
  UVM_INFO @   2373129 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---
36.otbn_escalate.2699923888
Line 113, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/36.otbn_escalate/latest/run.log

  UVM_FATAL @   2060914 ps: (otbn_model_if.sv:77) [otbn_model_if] Check failed (u_model.otbn_model_step_crc(handle, item, crc_state) == 0) Failed to update CRC
  UVM_INFO @   2060914 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Model is predicting a 0 value for CRC. Uncertain why but RTL is behaving correctly (CRC updating as expected, no 0 values)

UVM_FATAL (otbn_base_vseq.sv:582) [otbn_sw_errs_fatal_chk_vseq] Check failed (!(cfg.loop_vif.loop_stack_push || cfg.loop_vif.loop_stack_pop) && !cfg.trace_vif.locking_o) has 1 failures:

Test otbn_sw_errs_fatal_chk has 1 failures.
0.otbn_sw_errs_fatal_chk.1801271138
Line 123, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/0.otbn_sw_errs_fatal_chk/latest/run.log

  UVM_FATAL @  88113688 ps: (otbn_base_vseq.sv:582) [uvm_test_top.env.virtual_sequencer.otbn_sw_errs_fatal_chk_vseq] Check failed (!(cfg.loop_vif.loop_stack_push || cfg.loop_vif.loop_stack_pop) &&                       !cfg.trace_vif.locking_o)
  UVM_INFO @  88113688 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Loop warping malfunction (attemping a warp on a cycle it can't), DV environment issue not an RTL bug

UVM_FATAL (otbn_base_vseq.sv:582) [otbn_sec_wipe_err_vseq] Check failed (!(cfg.loop_vif.loop_stack_push || cfg.loop_vif.loop_stack_pop) && !cfg.trace_vif.locking_o) has 1 failures:

Test otbn_sec_wipe_err has 1 failures.
1.otbn_sec_wipe_err.1382000636
Line 93, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/1.otbn_sec_wipe_err/latest/run.log

  UVM_FATAL @  25973747 ps: (otbn_base_vseq.sv:582) [uvm_test_top.env.virtual_sequencer.otbn_sec_wipe_err_vseq] Check failed (!(cfg.loop_vif.loop_stack_push || cfg.loop_vif.loop_stack_pop) &&                       !cfg.trace_vif.locking_o)
  UVM_INFO @  25973747 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Loop warping malfunction (attemping a warp on a cycle it can't), DV environment issue not an RTL bug

UVM_FATAL (otbn_base_vseq.sv:369) [otbn_urnd_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution has 1 failures:

Test otbn_urnd_err has 1 failures.
1.otbn_urnd_err.2713703608
Line 100, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/1.otbn_urnd_err/latest/run.log

  UVM_FATAL @  17274033 ps: (otbn_base_vseq.sv:369) [uvm_test_top.env.virtual_sequencer.otbn_urnd_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution
  UVM_INFO @  17274033 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Timeout due to delay in receiving entropy from EDN. Entropy has been observed being requested and correctly received but it needs 8 words and only has 4 at the time of the timeout. The 4 words have successfully crossed the clock domain boundary so no CDC issues seen.

UVM_FATAL (otbn_stack_addr_integ_chk_vseq.sv:72) [otbn_stack_addr_integ_chk_vseq] timeout occurred! has 1 failures:

Test otbn_stack_addr_integ_chk has 1 failures.
1.otbn_stack_addr_integ_chk.1064076725
Line 93, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/1.otbn_stack_addr_integ_chk/latest/run.log

  UVM_FATAL @<PHONE_NUMBER>5 ps: (otbn_stack_addr_integ_chk_vseq.sv:72) [uvm_test_top.env.virtual_sequencer.otbn_stack_addr_integ_chk_vseq] timeout occurred!
  UVM_INFO @<PHONE_NUMBER>5 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Waiting for a call stack pop to inject a fault that never happens, OTBN completes execution without triggering any model errors so just a DV environment issue.

UVM_FATAL (otbn_base_vseq.sv:369) [otbn_alu_bignum_mod_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution has 1 failures:

Test otbn_alu_bignum_mod_err has 1 failures.
2.otbn_alu_bignum_mod_err.2866351614
Line 100, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/2.otbn_alu_bignum_mod_err/latest/run.log

  UVM_FATAL @   9988012 ps: (otbn_base_vseq.sv:369) [uvm_test_top.env.virtual_sequencer.otbn_alu_bignum_mod_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution
  UVM_INFO @   9988012 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Timeout waiting for secure wipe, timeout value too short (potentially increased due to CDC enablement making EDN requests take longer). Secure wipe running correctly at timeout

UVM_FATAL (otbn_stack_addr_integ_chk_vseq.sv:58) [otbn_stack_addr_integ_chk_vseq] timeout occurred! has 1 failures:

Test otbn_stack_addr_integ_chk has 1 failures.
3.otbn_stack_addr_integ_chk.182425094
Line 93, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/3.otbn_stack_addr_integ_chk/latest/run.log

  UVM_FATAL @<PHONE_NUMBER>9 ps: (otbn_stack_addr_integ_chk_vseq.sv:58) [uvm_test_top.env.virtual_sequencer.otbn_stack_addr_integ_chk_vseq] timeout occurred!
  UVM_INFO @<PHONE_NUMBER>9 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Waiting for a valid item on top of the call stack to inject a fault that never happens, OTBN completes execution without triggering any model errors so just a DV environment issue.

UVM_FATAL (otbn_base_vseq.sv:348) [otbn_imem_err_vseq] Check failed (!cfg.under_reset) has 1 failures:

Test otbn_stress_all_with_rand_reset has 1 failures.
5.otbn_stress_all_with_rand_reset.1133880645
Line 135, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/5.otbn_stress_all_with_rand_reset/latest/run.log

  UVM_FATAL @  23098619 ps: (otbn_base_vseq.sv:348) [uvm_test_top.env.virtual_sequencer.otbn_imem_err_vseq] Check failed (!cfg.under_reset)
  UVM_INFO @  23098619 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

V3 test so no examined in detail

UVM_FATAL (otbn_base_vseq.sv:369) [otbn_rf_bignum_intg_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution has 1 failures:

Test otbn_rf_bignum_intg_err has 1 failures.
7.otbn_rf_bignum_intg_err.577101146
Line 93, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/7.otbn_rf_bignum_intg_err/latest/run.log

  UVM_FATAL @   8710818 ps: (otbn_base_vseq.sv:369) [uvm_test_top.env.virtual_sequencer.otbn_rf_bignum_intg_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution
  UVM_INFO @   8710818 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Timeout waiting for secure wipe, timeout value too short (potentially increased due to CDC enablement making EDN requests take longer). Secure wipe running correctly at timeout

xmsim: *E,ASRTST (/home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/default/src/lowrisc_dv_otbn_sva_*/otbn_idle_checker.sv,87): Assertion IdleIfStart_A has failed has 1 failures:

Test otbn_escalate has 1 failures.
52.otbn_escalate.2705017903
Line 94, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/52.otbn_escalate/latest/run.log

  xmsim: *E,ASRTST (/home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/default/src/lowrisc_dv_otbn_sva_0.1/otbn_idle_checker.sv,87): (time 13176420 PS) Assertion tb.dut.idle_checker.IdleIfStart_A has failed
  UVM_ERROR @  13176420 ps: (otbn_idle_checker.sv:87) [ASSERT FAILED] IdleIfStart_A
  UVM_INFO @  13176420 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---

Issue with tracking logic used for assert (Command to start a IMem secure wipe appears the same cycle OTBN hits the idle state).

Signatures seen in nightly but more frequent with CDC on:
UVM_FATAL (otbn_base_vseq.sv:369) [otbn_dmem_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution has 5 failures:

Test otbn_dmem_err has 4 failures.
0.otbn_dmem_err.2760602419
Line 103, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/0.otbn_dmem_err/latest/run.log

  UVM_FATAL @  12994571 ps: (otbn_base_vseq.sv:369) [uvm_test_top.env.virtual_sequencer.otbn_dmem_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution
  UVM_INFO @  12994571 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---
2.otbn_dmem_err.2590234280
Line 93, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/2.otbn_dmem_err/latest/run.log

  UVM_FATAL @   7469835 ps: (otbn_base_vseq.sv:369) [uvm_test_top.env.virtual_sequencer.otbn_dmem_err_vseq] Check failed (cfg.model_agent_cfg.vif.status == otbn_pkg::StatusIdle) Timed out waiting for OTBN to be idle before execution
  UVM_INFO @   7469835 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---
... and 2 more failures.

Timeout waiting for secure wipe, timeout value too short (potentially increased due to CDC enablement making EDN requests take longer). Secure wipe running correctly at timeout

xmsim: *E,ASRTST (/home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/default/src/lowrisc_dv_otbn_sim_*/tb.sv,270): Assertion MatchingStatus_A has failed has 20 failures:

Test otbn_escalate has 18 failures.
1.otbn_escalate.4171015369
Line 113, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/1.otbn_escalate/latest/run.log

  xmsim: *E,ASRTST (/home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/default/src/lowrisc_dv_otbn_sim_0.1/tb.sv,270): (time 5045702 PS) Assertion tb.MatchingStatus_A has failed
  xmsim: *E,ASRTST (/home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/default/src/lowrisc_dv_otbn_model_agent_0.1/otbn_model_if.sv,137): (time 5045702 PS) Assertion tb.model_if.NoModelErrs has failed
  UVM_ERROR @   5045702 ps: (tb.sv:270) [ASSERT FAILED] MatchingStatus_A
  UVM_INFO @   5045702 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---
3.otbn_escalate.1417624640
Line 93, in log /home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/3.otbn_escalate/latest/run.log

  xmsim: *E,ASRTST (/home/greg/work/opentitan_area/opentitan/scratch/master/otbn-sim-xcelium/default/src/lowrisc_dv_otbn_sim_0.1/tb.sv,270): (time 2205650 PS) Assertion tb.MatchingStatus_A has failed
  UVM_ERROR @   2205650 ps: (tb.sv:270) [ASSERT FAILED] MatchingStatus_A
  UVM_INFO @   2205650 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER]
  --- UVM Report catcher Summary ---
... and 16 more failures.

prim_lc_sync causes a fault in the lc_rma_req MUBI signal, the incoming signal switches from off to on, and the outgoing signal (to OTBN) has an invalid MUBI value for a single cycle before switching to on. This triggers a fatal alert. The invalid value is due to the CDC instrumentation causing a delay in one of the bits but not the other. The life cycle controller explicitly states this synchronisation is sufficient (https://opentitan.org/book/hw/ip/lc_ctrl/doc/theory_of_operation.html#control-signal-propagation), though concern it isn't and this is a genuine CDC issue (https://github.com/lowRISC/opentitan/issues/19044)

This is definitely needed before we can claim V3 closure but probably isn't the highest priority for the M5 milestone. Bumping to M7 accordingly.


standard flag for private page

I was browsing through discussions to create a page only accessible from URL (not on site map, index, and not visible on RSS)
I found this discussion, last post by @bep in 2016, I was wondering if a standard way of doing this had been added.
My wish would be to be able to share pages for review only before making public, so a public = true/false working almost like drafts
https://discourse.gohugo.io/t/how-can-i-create-a-private-post/4583/4

There isn't a standard added.
If all you need is for the page not to be listed and have a few flags to block search engines from indexing, you can do it with params and a few changes to the template. I have that working with the parameter "unlisted". The source code is here: https://github.com/brunoamaral/future-imperfect-DI


Do not add objects to the DataTree

Description
Fixes #2265
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
N/A
Checklist:

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

Explanation of the bug:

Datatree was getting an extra element which evaluated to an empty string for a very short time.
If hinting helper got triggered in this time, it would loop over the dataTree.
If this loop happened within the split-second, it would cause a crash.


docs: python template

Templates for python.
@eldadfux please let me if this general structure is okay and I can do the same for the other languages.

After adding all the templates, please add a section about them in the main readme, under "contributing". This would help encourage contributors to follow the same standard.

Sure @eldadfux  👍 will do


Passing the VSCode display language to webview.

We can detect the vscode display language using vscode.env.language. When we try to load any page in vscode webview it is still displaying the page in english even though my vscode.env.language is French.
How can we have this vscode display language passed to webview so that webview browser considers the display language and renders page in french language.
Basically we want the navigator.language field to have the vscode env language.

See also  #206547

/duplicate of #207071

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


Dependency "python3" not found

I'm trying to install this library on Ubuntu 16.04, but I can't seem to sort out the dependencies. I've managed to locate the correct packages for most of the deps, e.g. libudev-dev for udev (are these documented anywhere?), but now I'm stuck at Python 3. When I clone the project from Github, make a new dir builddir and run meson builddir --prefix=/usr/ as specified in the README, I get the following error message:
Meson encountered an error in file meson.build, line 525, column 0:
Dependency "python3" not found

I have installed Python 3 through Anaconda:
$ python --version
Python 3.6.3 :: Anaconda, Inc.

Can anyone please help me out?

I agree it's a bit confusing. Python3 is not dependency, but the development files for it. Try the package python3-dev. This should do the trick!

Oops, I don't know how I missed that after adding "-dev" to almost all other dependencies... That did indeed do the trick! Should I update the README with the names of the dependencies I had to install (and do a PR)?

Glad it worked out for you! In the coming days I will try to update the documentation (READMEs and Wiki), especially the parts for developers.

@SebastianPfliegel: Now that we're on the subject, is there any way someone with not much low-level programming experience (i.e. very rudementary C/C++) could contribute to this project? I have two gaming mice I could theoretically add support for: a SteelSeries Rival (original version) and a Roccat Kova. I'd love to get involved, but I have no idea how to reverse-engineer an input communication protocol or generate a device file.
Also, I realize this is probably not the best place to ask this question. Should this go on the input-tools mailing list instead?

I'm a C/C++-noob myself. I try to contribute to this project myself to gain some C-skills and to improve the gaming experience on Linux.
Writing a device file is the easiest part. The device files are listed here: https://github.com/libratbag/libratbag/tree/master/data/devices/
Your file for the Roccat Kova could look like this:
[Device]
Name=Roccat Kova
DeviceMatch=usb:MYUSB
Driver=roccat
Svg=roccat-kone-xtd.svg

With lsusb you can find the identifier of the mouse. Issue #421 answers my questions regarding debugging and the device files. Hope some of the answers will help you, too. Once you're stuck just open another issue and ask your questions.

Awesome, that is exactly my motivation for wanting to contribute. Thanks for the tips! I'll look into it as soon as I can.
So the issue tracker is the best place for any communication about this project?

I'd say so. @whot, @bentiss: correct me if I'm wrong.

So the issue tracker is the best place for any communication about this project?

Yes, definitively. We can not guarantee a prompt answer (most of the devs are side tracked at the moment), but this is where we can discuss things. Do not hesitate to also send a PR, even in a bad shape. Just add the tag WIP - do not merge and this will tell us that you don't want the code to be merged but discussed.
Regarding the README, our main problem is that we tend to forget to update it when dependencies change. However, the circle.yml file is a the safe place where all the building dependencies are listed: it's our CI script, and if we forget to update it, the tests will fail :)
Ideally, the README should point to this file so people can have a look themself (or there can be some automatic import from one file to the other)

Sounds great. I'm very impressed with the response time so far, but don't worry, I know how it feels to be side tracked. I'll be very happy if I will have contributed a single line before the end of the year. ;)

@lackodan I wrote the driver for the two steelseries mice already supported (rival 310 and kinzu v2). I can work with you to add support for the rival if you wish.


pin the cross in the ci (Closes: #3673)

At least, it fixes this issue :)
Next, workaround of https://github.com/mozilla/grcov/issues/849


The triggerWorkflowAndWait action does not correctly link to the triggered workflow

Problem
The triggerWorkflowAndWait action lists the ID of the triggered workflow, but not an html link to the workflow running:

This makes it harder to follow along what's happening.
Why this is important
This is a QOL improvement for our deployers.
Solution
Include the HTML url for the workflow run in the log output in addition to the workflow run ID

cc @Expensify/mobile-deployers if anyone wants this simple QOL improvement.

I'll take it!


Support Private windows or Private tabs

I have no opinion on the value of the "Private browsing" product feature, but it does raise require particular architectural features.  This is relevant to #44 in particular, since the profile service needs to know when certain windows (or tabs) are private, and should have different views of the profile data.

In terms of actually implementing this, it sounded low priority for the first 3 months, but definitely should consider the architectural concerns now

I thought about various ways to prevent writing certain data to db when in PB mode:

an option passed into various UAS routes (like noPersist when calling pages/page or /visits/visit but not /stars/star). UAS client decides when to pass that in.
configured at a global level on UAS and then UAS knows not to write certain things to db but UAS client calls everything as normal (it knows stars are OK to write but history or page locations are not)
Bypass UAS completely in certain cases and just don’t call certain when the UA client knows it’s in PB mode (i.e. don’t call /visits/visit at all from the UAS client).  This would be the easiest in some ways as to not bake any assumptions into UAS, but we rely on return values for those routes when creating sessions and pages, for instance.

Also need to have a separate cookie jar (one per PB window or shared across all PB windows?)

Notes from Slack:
The UAC is an API for the window. It happens to talk to the UAS sometimes. So have one PBUAC for each private window, and a regular UAC for each regular window.
The PBUAC would be mostly read-only: it would star pages, but not persistently record history.

The PBUAC would be mostly read-only: it would star pages, but not persistently record history.

For situations where sessions / pages are created, would the client return similar looking objects as what we would have gotten from the UAS (with unique IDs and any other metadata)?

Another thing to consider: we need to ignore any PB activity in the session restore system

Two options:

Needing to return some kind of valid object might be a smell. If the front-end code is inspecting the return values from the UAC, perhaps it shouldn't — it should be safe to just pile up null or 0 everywhere. They're kinda opaque tokens that only exist to feed back into the API, and given that the API does't do anything…
Otherwise, the UAC can/should feel free to model whatever domain concepts the front-end needs. E.g., in-memory sessions denoted by negative integers, or whatever.


revalidate() on usePagesSWR does not work

I double-checked, I can not revalidate the SWRs when using useSWRPages().
Steps to reproduce are a bit long but I can provide a non-working example if needed.

Object returned from useSWRPages has pageSWRs property which contains all triggered SWRs.
You can use it to revalidate.
const {
    pageSWRs
  } = useSWRPages(…)

pageSWRs.forEach((swr) => swr.revalidate())

The new pagination API has launched: https://swr.vercel.app/docs/pagination. Feel free to reopen if you are still encountering an issue!


Update LTI, ICR policy to most recent BoE standards

This should include:

Central Bank LTI limits should be updated to the current 4.5, 15% over, thus differing from the private bank policy.
Computation of the fraction of mortgages over the LTI limit should be made on a 4 quarters rolling basis, as the current policy states, not every month, as currently coded.
Stressed interest rates for ICR calculations should be updated according to current values (see here)

One would also need to explain this properly in the paper. For example, explain that limits are only enforced at the end of each quarter.

Mostly solved by b934f5a814b9e9de9cdac4e47a1d3728570d269c. New updates might be introduced later on as part of a general update of the Central Bank parameter values.


Updated validations.py python script

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

added changes to validations.py to check for names that do not being with a character.


Validate RBD date based on the presence of the date field

Context
The time field is not relevant to this validation.

Changes proposed in this pull request
Scopes the RBD validation to the date field only. Time related validations are independent of this.

Guidance to review

Link to Trello card
https://trello.com/c/Oh01ViLI/4116-not-showing-interview-date-error-when-there-is-an-interview-time-error-on-the-schedule-interview-screen

Things to check

[x] This code does not rely on migrations in the same Pull Request
[x] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[x] API release notes have been updated if necessary
[x] Required environment variables have been updated added to the Azure KeyVault

Just to note, we still need to do the "date is before today" case of the card


Update inheritance.md

The first word after a colon should not be capitalised.
Summary
One of the titles feature a capitalised word after a colon- this should not be the case

@Jack2104
Our official style guide recommends capitalizing the word that follows a colon when used in a title or heading.
I'll close this.


Scope of Performance Profiling

Hi,
Does DeepView also work for inference on multi-gpu systems?
Thanks,
Tanvi

Hello @tanvisharma
Thank you for for question. For now the profiling is mostly for training, but doing profiling for inference is in our roadmap.


Feature/allow separate and parameters & Fix Relation with Or

There are no tests for this (but it does work) and this PR is more for discussion.
This address issue #42 by allowing users to append __and and __or; all the __and will group together and the __ors are self explanatory. So you can do:

url?columnOne__and=1&columnTwo__and&columnThree__or

It also fixes #38 which is a duplicate of PR #39 but I'm not sure #39 works.

Hmmmm...I'll look at the test that failed.
Anyone know, though, why the external coverage from external is not available, or no code coverage driver is available? Is that because of the failed unit test?

Bah!
I'll need to fiddle all the tests because I just realised that this change causes all the queries to look like they're nested and so a bunch of assertions are wrong.
So my diagnosis is:

The tests are wrong;
The code is correct.

I say this on the basis I have this in production, as such :)


Unable to connect to PachD

What happened?:
$ pachctl version
COMPONENT           VERSION
pachctl             2.8.4
could not connect to pachd at "grpc://localhost:8081": context deadline exceeded

What you expected to happen?:
COMPONENT           VERSION
pachctl             2.8.4
pachd               2.8.4

How to reproduce it (as minimally and precisely as possible)?:
Anything else we need to know?:
Environment?:

Kubernetes version (use kubectl version):

 $kubectl version
Client Version: v1.28.3
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.3

Pachyderm CLI and pachd server version (use pachctl version):

$ pachctl version
COMPONENT           VERSION
pachctl             2.8.4
could not connect to pachd at "grpc://localhost:8081": context deadline exceeded

Cloud provider (e.g. aws, azure, gke) or local deployment (e.g. minikube vs dockerized k8s):

minikube

$ kubectl get pods
NAME                                         READY   STATUS    RESTARTS      AGE
console-5bf6fb544d-5gtsr                     1/1     Running   1 (93m ago)   95m
etcd-0                                       1/1     Running   1 (93m ago)   95m
pachd-7f8598469-l99r7                        1/1     Running   1 (93m ago)   95m
pachyderm-kube-event-tail-5db949bbdf-8c8pw   1/1     Running   1 (93m ago)   95m
pachyderm-loki-0                             1/1     Running   1 (93m ago)   95m
pachyderm-promtail-th84w                     1/1     Running   1 (93m ago)   95m
pachyderm-proxy-774f6947f-66j8q              1/1     Running   1 (93m ago)   95m
pg-bouncer-64bbf777b8-4mv7f                  1/1     Running   1 (93m ago)   95m
postgres-0                                   1/1     Running   1 (93m ago)   95m

If you deployed with helm, the values you used (helm get values pachyderm):
OS (e.g. from /etc/os-release): Ubuntu 22.04
Others:
I checked "http://localhost:80" before installing  PachD.

Did you run minikube tunnel? Also check which port the pachyderm-proxy service is using with kubectl get service by default it should be 80 I believe.

Thanks @BOsterbuhr .  I solved.


Base homebrew/brew Docker image on ubuntu:20.04

Add a new image homebrew/ubuntu16.04 for building Linux bottles.
Tag the most recent stable release of each image as latest.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

16.04 was April 2016 , so 5 year support is April 2021 right?

@MikeMcQuaid wrote…

What was the old version and what are the consequences of this?

Homebrew/brew was based on Ubuntu 16.04. The new image Homebrew/ubuntu16.04 is based on Ubuntu 16.04. Effectively Homebrew/brew has been renamed to Homebrew/ubuntu16.04. We will continue to use Homebrew/ubuntu16.04 for bottling.
There is no consequence for Homebrew maintainers, except that we’ll change image: homebrew/brew to image: homebrew/ubuntu16.04 in our GitHub Actions configuration.
There are two advantages for users who are using homebrew/brew. This image will now be be based on Ubuntu 20.04 rather than Ubuntu 16.04 The latest tag will now be the most recent stable release of Homebrew, not the bleeding edge master.
homebrew/ubuntu16.04 has two symbolic tags. latest is the most recent stable release. master is, well, the master branch.

@sjackman All sounds great/sensible to me.


Show message sender name in the LHN

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
Break down in numbered steps

Send a message in some room
On other device/account which has access to the room check the LHN
Verify the message sent from the other account has the display name preceding the message

Expected Result:
Describe what you think should've happened

We should shown the display name of the person who sent the message as we do for group messages

Actual Result:
The name of the person is missing

Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number:
Reproducible in staging?:
Reproducible in production?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Issue reported by: @shawnborton
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1678200268817529
View all open jobs on GitHub

Triggered auto assignment to @sonialiap (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Job added to Upwork: https://www.upwork.com/jobs/~01650d4b35eb3af650

Hi, I'm Ana from Callstack and I would like to work on this issue

📣 @BeeMargarida! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Investigating this, since running locally it's working as intended but in staging the problem can be replicated

Proposal
Please re-state the problem that we are trying to solve in this issue.
In room chats there's a possibility that the preview of the last message appears without the user's name. This behavior only happens when that user details are not currently saved as the details the user has access to (in Onyx).
What is the root cause of that problem?
If the last message's user details are not available in personalDetails, no name will be shown in the LHN, only the message content.
There's more context in this slack thread
What changes do you think we should make in order to solve the problem?
The line of code that gets the value of the last user detail is the one below, and after that the last message text is built.
const lastActorDetails = personalDetails[report.lastActorEmail] || null;

let lastMessageText = hasMultipleParticipants && lastActorDetails && (lastActorDetails.login !== currentUserLogin.email)
    ? `${lastActorDetails.displayName}: `
    : '';

In addition to this check, we could also utilize the information in the lastReportAction to fetch the last user details if there's no info in the personalDetails. This information is available by accessing lastReportActions[report.reportID].person[0].text (is it possible to have more than one person in this array?).
A possible solution would be
let lastActorDetails = personalDetails[report.lastActorEmail] || null;
if (!lastActorDetails && lastReportActions[report.reportID]) {
   const lastActorDisplayName = lodashGet(lastReportActions[report.reportID], 'person[0].text');
   lastActorDetails = lastActorDisplayName ? {displayName: lastActorDisplayName, login: lastReportActions[report.reportID].actorEmail} : null;
}

let lastMessageText = hasMultipleParticipants && lastActorDetails && (lastActorDetails.login !== currentUserLogin.email)
    ? `${lastActorDetails.displayName}: `
    : '';

What alternative solutions did you explore? (Optional)
--

SidebarUtils is responsible for giving LHN options. (this is optimized for LHN)
OptionListUtils gives options for all other pages.

There's differences between the code in OptionsListUtils and SidebarUtils, specifically in the fallback logic if there's no information in personalDetails about the last actor. In this piece of code below responsible for building the personalDetailMap, it fallbacks to the login for the display name, for example showing the email. I can check that this happen if I try to invite an account i've not interacted previously, it only shows the email and not the display name chosen.
Should we apply this logic in the SidebarUtils?
https://github.com/Expensify/App/blob/b08bf4883d9fdf0624dcd86798933743f4b31161/src/libs/OptionsListUtils.js#L107-L113
I have not been able to reproduce the behaviour mentioned in the issue this in chats. Every time I invite some account I've not interacted with to a chat with other accounts in the same situation, the other accounts already show the display name of this new account. I can see in the logs that they receive an update for personal details when the user is invited.
Can this possibly be a situation where this update was not made previously on invite?

Hmm, Thanks for the clarification. I think we will have to wait to confirm that.

Please let me know the resolution to this confirmation.

That's what I imagined. #15711 (comment)

I've been adding accounts to a workspace and then writing a message in the #announce channel from the new account. However, all other accounts that have not interacted with the new account previously see the display name correctly, so I'm not sure this is 100% the reproduction edge case.

I think when you add them to the policy, you are the admin of the policy so you will get a DM created with all the new members you add. So you might have to try to log out of the admin account and log in to one of those members who dont have DM with the other workspace members and then observe if the name is in the LHN of the announce room

You're right, I needed to create a new workspace and add two members that did not have DM between them. With this I can replicate the behaviour. However, if I then add another one to the group after (that the others haven't DMed with), the problematic behaviour stops and the display names appear for all of them.

It might be that the personal details got loaded in the mean time. Maybe we could then try do a fallback kind of behaviour where in case we cannot get the name from the personalDetails we can look at the reportAction actor name.
Does that make sense?
Is there any other concerns left?
Also feel free to create a new thread in open-source channel to maybe speed up the discussion :)

Let me know once you confirm

not overdue, Rajat is on it 🙌

Just FYI, I'll be OOO Mar 17-25

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.88-2 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/15895

If no regressions arise, payment will be issued on 2023-03-31. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@parasharrajat / @mountiny] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@parasharrajat / @mountiny] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@parasharrajat / @mountiny] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@sonialiap] Determine if we should create a regression test for this bug.
[ ] [@parasharrajat] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ] [@sonialiap] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Proposal
Please re-state the problem that we are trying to solve in this issue.
Issue mentioned here: https://expensify.slack.com/archives/C049HHMV9SM/p1679682026812889
It's a regression of the fix implemented for this issue, so I add this proposal here.
When deleting a workspace, the #admin channel preview shows the user name without any content where it should show the name of the workspace.
What is the root cause of that problem?
The logic was recently changed to show the last action user details if the last report action type is not CREATED. In cases where the chat is closed, the last action type is CLOSED but the last text is not defined, which causes the current behaviour now.
What changes do you think we should make in order to solve the problem?
The proposed solution would be to only run the fallback logic of getting the last actor details if the last action type is not closed or created.
const actionCreatedOrClosed = [CONST.REPORT.ACTIONS.TYPE.CREATED, CONST.REPORT.ACTIONS.TYPE.CLOSED];
const lastReportAction = lastReportActions[report.reportID];
const isLastReportActionValid = lastReportAction && !actionCreatedOrClosed.includes(lastReportAction.actionName);
if (!lastActorDetails && isLastReportActionValid) {
    const lastActorDisplayName = lodashGet(lastReportAction, 'person[0].text');
    lastActorDetails = lastActorDisplayName ? {
        displayName: lastActorDisplayName,
        login: report.lastActorEmail,
    } : null;
}

What alternative solutions did you explore? (Optional)
N/A

Great, @BeeMargarida lets get a PR up and we can polish the details with the different types as Rajat mentioned there

Great, @BeeMargarida lets get a PR up and we can polish the details with the different types as Rajat mentioned there

On it!

PR being reviewed

@sonialiap, @parasharrajat, @BeeMargarida, @mountiny Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

Merged

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.3.0-2 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/16606

If no regressions arise, payment will be issued on 2023-04-24. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@parasharrajat / @mountiny] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@parasharrajat / @mountiny] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@parasharrajat / @mountiny] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@sonialiap] Determine if we should create a regression test for this bug.
[ ] [@parasharrajat] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ] [@sonialiap] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

@parasharrajat are there any regression tests to add here?

I think that works, thanks @parasharrajat

@sonialiap I think this is all good ot be paid out

@parasharrajat paid $1000
regression test steps GH https://github.com/Expensify/Expensify/issues/283047


[colm] one output only per run of the program

Generating multiple outputs from multiplel inputs makes writing makefiles more difficult. Move to a model where we run colm (or some other program) multiple times, once for each output file.
Could either

roll up multiple outputs of colm into some pack (tarball?) then use separate rules to unpack them.
invoke colm multiple times ... the most costly thing (generating a parser) should only happen once.

Probably 1 above is the most simple approach. Colm runs once, but is careful to pack into multiple output files. An external program, or some run of colm unpacks them one by one.

Liking the pack solution. Can be built into colm as a feature, considering that it is common to want to generate multiple files from a run of colm program in other settings. For example, in a code generation system you might make many header, code and makefiles.

Can use a simple file format containing alternating blocks with a name, specifying data to write to a named file. Later they can be extracted.

Testing this with e8152c296aa6fa9cee01104a95837756f4bf90fd.

Might want to make a wrapper for the colm program to hide the mess of testing this out with tar.

Need to do this inside colm before we can close the ticket.

Contrary to previous comment, will close this for now and leave the movement of packing functionality into the colm binary for a future release. Such a feature can easily expose bugs and it would be better to leave that for a longer dev cycle. The wrapper works great and will suffice for now.


Commenting out CodeCommit from deploy.sh and Encrypting SNS

Description of changes: As stated in the title, this should do two things.  The first is to comment out AWS CodeCommit from deploy.sh.  In my opinion, this is a low risk change as most existing deployments should be using the update.sh script instead.  Leaving them in as comments so those that can use AWS CodeCommit for their initial deployment still have access to the commands.
Second, encrypting the SNS topic using the AWS Managed KMS key for SNS.  This is a security best practice and only required a single addition to the CloudFormation template.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for this @danluera. Can you separate this into 2 PRs ? One for the SNS encryption and the other for commenting out codecommit.
Also, for the codecommit PR, can you also update the documentation with the guidance you have mentioned above ?
I'll merge as soon as it is done.
Thanks


Instructions to build only sdk/storage/azure-storage-blobs and it's dependencies

Query/Question
I am planning to use azure sdk for cpp in a resource constrained device. I only want azure storage blob upload feature.
I do not want azure keyvault or azure-storage-queues or any other module. What options should I pass while build to achieve this?
Why is this not a Bug or a feature Request?
This is merely a request for instructions to serve a specific use case
Setup (please complete the following information if applicable):
Doesn't seem applicable. I feel this can apply to all setups/ build environments.
For Example  azure-iot-sdk-c (https://github.com/Azure/azure-iot-sdk-c/blob/LTS_07_2022_Ref02/CMakeLists.txt)
provides options to only compile specific modules that are required.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Query Added
[x] Setup information Added

@nishanth-hon Do you build from source or install via vcpkg?


[Enhancement Request] Add Existence Verification for Tables in OnlineDDL Drop Statements

Background
Currently, when OnlineDDL is enabled, users are able to successfully submit a drop statement for a table that does not exist. This behavior poses a potential issue and should be addressed.
Proposal
Our proposal is to implement table existence verification within the drop statement process. This can be achieved by incorporating the verification logic in VTGate. By doing so, we can prevent the execution of drop statements for tables that do not exist, ensuring the integrity of the database.
Expected Behaviour
mysql> show tables from m1;
+--------------+
| Tables_in_m1 |
+--------------+
| t1           |
| t2           |
+--------------+
2 rows in set (0.00 sec)

mysql> drop table t3;
ERROR 1051 (42S02): Unknown table 'm1.t3'
mysql>
mysql>
mysql> drop table if exists t3;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> drop table t2;
Query OK, 0 rows affected (0.00 sec)

mysql> drop table if exists t2;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> drop table if exists t1;
Query OK, 0 rows affected (0.01 sec)

There is another bug related to this one: altering a non-existent table will block all subsequent online-ddl tasks.
As shown in the figure below, altering a table that does not exist will cause all subsequent ddl tasks to be blocked.
You can see that there are only test_table and test_table2 tables in the current database and test_table3 does not exist, but you can perform alter operations on it.

You can see that alter test_table3 is queued.

Then alter test_table2, you can see that this ddl is also queued.


Footer enhancement proposal #39

Footer enhanced  #39 , @subhadipbhowmik is there any way to increase level before merge for this task because i had work very hard

send your details @subhadipbhowmik


Use enums for cluster controller metrics

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

@kkraune Please review and merge.


adding jpza to org

This change is

/assign @jlewi

Have you already contributed to Kubeflow?
We typically ask folks to contribute before joining the GitHub org since the primary reason to join is help contribute (e.g. be able to trigger tests, be assigned issues) etc...

Commit immanent

Can you link to the PR?

Bah, not ready yet. Will reopen after PR is submitted


Releases: 0.14.2 release notes and announcement

Announcement is just boilerplate and some slightly rearranged text from the release notes.
Preview:

ACK, thanks!


Repo pre setting: run in parallel - 96

[Auto generated]
Number: [#96]

github-gitlab-webhook-server: Closing issue for PR: Repo pre setting: run in parallel.
PR was closed.


Open file by using drag and drop

MarkPad does not have feature which allow to open a file by drag-and-drop into MarkPad.
I am willing to implement this feature, however I will appreciate any advice that would help me resolving this problem, AKA where is good spot to place code.
Thanks
-- Soltys

The shell would probably be the best spot.

This has been merged in.


DATAJDBC-400 - Remove Identifier from callbacks and deprecate it in events also containing an entity

See: https://jira.spring.io/browse/DATAJDBC-400

That's merged and polished now.


feat : added cycle sort

Read the guidelines carefully. make sure you follow and star the repository!


Optimize snippet()

Motivation
rustfmt makes heavy use of snippet() to fetch a piece of snippet from the original file. It returns String, even though we do not modify the returned value. It is preferable to return &str to avoid allocations on heap.
Pros
We get about 15% speed up against a large code base. The following is a quick experiment result that runs cargo fmt --all against rustc:
env

OS: Linux 4.13.16
rustc: rustc 1.24.0-nightly (1956d5535 2017-12-03)
CPU: Intel(R) Core(TM) i3-4150 CPU @ 3.50GHz
RAM: 8GB

Result

version
time [s] (an average of 10 attempts)

master (0432d4db35cee640ca96460f4ebc4baad3891d6d)
9.77

PR (a5b5ef078bd835f68a1e2b8eb5f63d0797e4e0e8)
8.47

Cons
This PR introduces unsafe code in rustfmt (specifically in impl SnippetProducer):

transmute &Option<Rc<String>> into *const Rc<String>.
dereference *const.

Thank you for the reviews! The last two commits were not supposed to be in this PR, should have been put in another PR. My apologies for the confusion.
I removed the last two commits and updated the PR to get rid of unsafe code.

@sinkuu Thanks for your review!
Updated with @sinkuu's review reflected.

@nrc Thanks again, updated with the review reflected.

Thanks for all the changes, and thanks for the PR - it's a great perf improvement!


Command returns newline

Hi, I'm using this on macOS and it used to work fine, but has stopped working since my MacBook came back from Apple Support.
Now, whenever I pipe anything to ipt, it will do nothing, but print an empty line, like shown in this capture
As also shown in the asciinema capture, running with -d prints Error: Prompts can not be meaningfully rendered in non-TTY environments and exits.
Node Version: v13.9.0
macOS Vesrion: 10.15.3 (19D76)
ipt version: 3.0.1

Hi @rjmunhoz thanks for the report! Managed to catch it, ended up tracking it to a regression in a patch release of one of the dependencies: https://github.com/SBoudrias/Inquirer.js/pull/891
For now I released a v3.0.2 in which it fixes the version of that specific dependency to a prior working version, that should fix all problems 😊

Thanks!


Speed up build times

I suggest you to use a custom base image, prebuilt with all dependancies to vastly improve build speed

it's strickly developed around heroku , also it template where anyone want to host there own instance they should fork repo modify docker like adding removing base apt packages (thats why stick to ubuntu rather than alpine ) and vscode plugins to create there own custom coding env


Add link to Settings Panel in offline mode

Offline UI

Android Q Devices

Pre-Q Devices

@manuelvicnt now that #790 landed, this can be rebased and landed right?


Questions about customizing the 3d model ?

Hi! First let me say how impressive your work is ... I tip my hat to your skills!
I am part of a non profit organization starting up for the purpose of advancing development and promoting the Ottodiy Robot Community. we are interested in the utilization of otto-simulator within another project and potentially changing the 3d model used.
I am not familiar enough with the Gym Interface mentioned on the website ... is this the same as gymlibrary.dev? where might we find information about how to add or change the "otto.mesh.bin" or hints at how it was constructed?
Thank You Again for the fun work you do!

Hello and Thank You.
I have asked for a specific otto model on the Discord Channel, because I wanted to make this simulation look almost exactly the same as the Otto on my desk.
I have loaded the 3d print files in blender and simplified it a bit. Mostly just removed the surfaces that are not visible or too detailed for this simulation demo.
Back at the days when openai-gym (now called gymnasium) was popular I made simulations in bulletphysics and exposed a similar interface to this one. Usually it just means to support reset() step() observation_space and action_space and a score.
I am not sure if you are interested in the actual physics simulation or just the visualization part.
Those two can be separated.
I have exported otto.mesh.bin (raw binary vertex data) from blender. I also exported the collision shapes that approximate otto and the constraints which hinge together the parts.
I would love to help, please reach out in email or on discord.

I would love to help, please reach out in email or on discord.

Thank you for your quick response. I am composing a email with more details about our organization and projects. I look forward to corresponding with you soon.

Hello and Thank You.
I have asked for a specific otto model on the Discord Channel, because I wanted to make this simulation look almost exactly the same as the Otto on my desk. I have loaded the 3d print files in blender and simplified it a bit. Mostly just removed the surfaces that are not visible or too detailed for this simulation demo.
Back at the days when openai-gym (now called gymnasium) was popular I made simulations in bulletphysics and exposed a similar interface to this one. Usually it just means to support reset() step() observation_space and action_space and a score.
I am not sure if you are interested in the actual physics simulation or just the visualization part. Those two can be separated.
I have exported otto.mesh.bin (raw binary vertex data) from blender. I also exported the collision shapes that approximate otto and the constraints which hinge together the parts.
I would love to help, please reach out in email or on discord.

Hi, is there any list of commands to test the editor? It looks pretty good! But I don't see how is possible to control the Otto. By changing the numbers is possible to change the offset of the movement but I cannot figure out how to make moves like forward, backward, etc.

Currently the observation space is empty, because I did not need the distance from the HC-SR04.
The action space is four angles for the step motors.
https://szabolcsdombi.com/otto-simulator/editor/
The simulation timestep is 1.0/300.0 seconds. So in the editor above, for each render frame there are 5 substeps simulated.
This is just a sample how the simulation can be used from python. It could have had a different interface.

To make moves you need to feed in the right angles per frame. For example in play mode with a few sines otto can walk forward. Keep Pressing number 4 and 5 on your keyboard here:
https://szabolcsdombi.com/otto-simulator/play/
the animations are simple sine waves and are blended together with mix/add similar to blender NLA tracks.


[WIP] Create a custom memory allocator that uses execution profiles to create custom pools

This is just a half-baked idea at the moment.

See the sizes of objects that a code-object needed
(Maybe) check the existing arenas to see what size pools are available with space
Pre-allocated custom pools for the sizes captured on the second compile phase

terrible idea


HTML5 web export on mobile - keyboard native won't appear for line edit node

Is there a way to fix this? The text input / edit won't work on mobile because mobile native keyboard won't popup :(

Duplicate of https://github.com/godotengine/godot/issues/32680


Add rel="me" to personal profile links

This is likely good form in general, but will in particular aid Mastodon account validation.

Turns out I had already added support for "rel" as a link property a long time ago.


Interactive account creation for mainnet, testnet and emulator

Closes #537
Description
This PR implements the account creation interactive flow for mainnet, testnet and emulator networks. It also covers the encryption of keys for mainnet case. It also provides password prompts when running other commands with the encrypted keys.
The flow is as follows, you choose the network, if the chosen network is testnet then the faucet website is opened, if it's mainnet the flow port is opened, after you complete the required steps in browser to create an account, the CLI listens for new account creation event and stores the account in configuration. In the case of mainnet it offers you an option to encrypt.
Some screens:

DOD:

[x] Implemneted
[x] Tested
[ ] Released

For contributor use:

[ ] Targeted PR against master branch
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work
[ ] Code follows the standards mentioned here
[ ] Updated relevant documentation
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Added appropriate labels

For env variables, we will have the option whether or not to store the private key in .env file (as shown below).

If user doesn't want to store in .env file, user will need to run  export PRIVATE_KEY_{address}="{private key}" so that env variable is loaded up.
If user wants to use .env file, the .env file will be created (if it doesn't exist) and the env variable will be added in the .env file, as shown below. (Private key env variable will be shown in log output regardless of whether or not user chooses to save in .env file)

The resulting flow.json is shown below

"accounts": {
		"1": {
			"address": "8e7bcf2294bd120e",
			"key": "8ac271230f78ad9d375c9203c250bc67ef07fd8d49e80ea5013c42f5889f7a14"
		},
		"Tom": {
			"address": "02e59aec9ff63f06",
			"key": "$PRIVATE_KEY_02E59AEC9FF63F06"
		}
	},

Left comments on the specific things. This is a general comment on the output. It looks a bit crowded and messy, there's a lot of inconsistency in spacing and indenting that makes this screen hard to glance.
🟢 What name would you like to give this new account?
Enter name: Foo
✔ Local Emulator
⚠ This command will perform the following:

- Generate a new ECDSA P-256 public and private key pair

- Create a new account on Local Emulator and pair the public key with the new account

- Save the newly created account configuration to flow.json

✔ CONTINUE
⚠ Generating public and private keys for Foo
✅ Successfully generated public and private keys
✔ CONTINUE
⚠ Creating the account on Local Emulator with generated keys

Please note, that the newly created account will only be available until you keep the emulator service up and running, if you restart the emulator service all accounts will be reset. If you want to persist accounts between restarts you must use the '--persist' flag when starting the flow emulator.

 ✅ Successfully created account on Local Emulator
✔ CONTINUE

 ⚠ Saving created account in flow.json
✅ Successfully saved account in flow.json

------------------------
🟢 Account creation summary:

 ✅ Generated a new ECDSA P-256 key pair

 ✅ Created a new account on Local Emulator and paired the public key with the new account

 	Account name: Foo

 	Address: 0x01cf0e2f2f715450

 ✅ Saved the newly created account configuration to flow.json

Here's a better example how the screen could look (the ticks and logs after each bullet point would be added as they are created).
What would you like to name the new account: Foo

Select the network:
✔ Local Emulator

This command needs to perform the actions (press <ENTER> to continue):
- Generate a new ECDSA P-256 public and private key pair
   ✅ Keys generated, public key: '0x12312312312312312312412412'
- Create a new account on Local Emulator and pair the public key with the new account
   ✅ Account created, address: '0x424528171245' with a name: 'Foo'
- Save the newly created account configuration to flow.json
   ✅ Account saved to 'flow.json'

Please note, that the newly created account will only be available until you keep the emulator service up and running,
if you restart the emulator service all accounts will be reset. If you want to persist accounts between restarts
you must use the '--persist' flag when starting the flow emulator.

So we removed the encryption altogether? I thought we would leave it just to extract the account into a separate file. Any thoughts on this?

Another general note/question is: since we dropped the encryption, I feel we should always add that newly created file to gitignore, it shouldn't be an option, because if the user has git (which I would say would need to be checked programmatically) then I don't see a case where they would want their accounts being committed.

@srinjoyc if accounts are created using flow port they don't have enough funds to even send transactions. Shouldn't they be funded?
Also @psiemens during testing I noticed something really weird. The method that creates an account from the network, sometimes (maybe 10% of times) fails the check that the account only has one key. Sometimes that method returns bunch of public keys, the ones added are pretty random, but if you take a look on the network manually it's only one key on the account. I have a suspicion it might be some bug on AN. I plan to investigate.

Looks good to me overall.
That public key check bug is strange. It sounds like a data consistency issue coming from the AN… did you get a chance to investigate?

Yep investigated and fixed. It was in fact a bug in CLI as seen here: https://github.com/onflow/flow-cli/pull/538/commits/71f9fd66df477e76fbd216e8afddff9b19b06501
The problem was that since get address was used before only on a transaction that made a new account it didn't matter which address it returned so it did that on all events in that tx, whereas now we monitor more events and it's important that after we get the right event we extract address from that event not on all event range.


Unintended Sass division in root font

The following line in sanitize.scss:
font: if(variable-exists(root-font-size), $root-font-size, 100%)/#{if(variable-exists(root-line-height), $root-line-height, 1.5)} if(variable-exists(root-font-family), $root-font-family, sans-serif);

is being compiled to:
font: 66.66667% sans-serif

instead of:
font: 100%/1.5 sans-serif;

This only occurs after upgrading node-sass from 3.4.2 to 3.5.1. I don't know whether this is an intentional change in the compiler or a regression in LibSass 3.3.5.

Thanks @ciju !

Will there be a patch-release soon which incorporates this fix?

@ciju could you cut a patch release with this fix included? thanks


vendor packages should not be indexed or documented

https://pkg.go.dev/std
https://godocs.io/std

https://github.com/abhinav/doc2go/pull/180

Agreed!


Overflowing graph + wrapped node text

I was trying to generate these mermaid flowcharts when I found that the nodes don't get resized properly in order to show all of the text - badly cropped text follows:

mermaid
graph TD;
coords("(2N,M) particle coordinates")-->dist_mat(Distance matrix D);
coords -- PCA --> one_d("(2N, 1) One Dimensional Projection")
one_d -- sort --> approx_soln(Approximate Pairing)
dist_mat --> obj(Approximate target value)
approx_soln --> obj

When trying to fix this, I also found that making the graph go from left to right causes it to overflow:

mermaid
graph LR;
coords("(2N,M) particle coordinates")-->dist_mat(Distance matrix D);
coords -- PCA --> one_d("(2N, 1) One Dimensional Projection")
one_d -- sort --> approx_soln(Approximate Pairing)
dist_mat --> obj(Approximate target value)
approx_soln --> obj

These issues don't occur when rendering the mermaid graphs elsewhere (eg VSCode, on Gitlab) so it shouldn't be an issue with native mermaid.

Hi, that would like a css problem (in that case that might really connected to the plugin).
Are you using Read the Docs Theme? Do you have any specific css?
What happens if you use the Material theme?

Yes I am using the Read The Docs theme with no extra css - the same issue also occurs if I use the Material theme:

I am not sure exactly what happens, thought it seems to me a css problem.
Perhaps, the best thing would be to ask the question directly to the mermaid issue list, showing what you get in the final html/css?