Copying fails/disabled after 2nd copy iteration

First copy works fine (I am using this in conjunction with torque's aae-export (https://gist.github.com/torque/6453947) with Blender!
Exporting the data the first time around works well (i.e. copying it), but the second time around it fails with the following error generated by the export script.

The Windows clipboard is disabled from this point on until Blender!/pyperclip is closed. I am unable to copy or paste anything as there seems to be "no" clipboard for Windows to make use of anymore.
Im using Windows 7 Professional x64, pyperclip 1.5.8, and Blender 2.7.3

Fixed this by removing all pyperclip related functions from the aae-export script.
On Line 26 remove ', pyperclip'
and on line 158 remove 'pyperclip.copy(clipboard)'


MRG, MAINT: Tweak CIs

Permit operators to start newlines in addition to at the end of lines (we have ~575 of these in master) so that we can transition to or at least allow the "new" (as of 2016) way of writing code, as discussed here
Fix or ignore a few style errors in conf.py
Run make flake on the entire codebase not just select folders
Switch to conda for VTK (#7939)
Fix CircleCI failures related to numpydoc seen here

Closes #7939
NumpyDoc will still cause a failure, I think it needs to be fixed at the NumpyDoc end...

Fixed VTK9 rendering on macOS by disabling depth peeling and anti-aliasing. The remaining bug on my macOS system is that the widget controls do not work because there is a 2x mismatch between their render position and the click position needed to control them. We'll have to see if this is fixable at the PyVista end, or if this is an underlying VTK bug (my money is on the latter).

The remaining bug on my macOS system is that the widget controls do not work because there is a 2x mismatch between their render position and the click position needed to control them. We'll have to see if this is fixable at the PyVista end, or if this is an underlying VTK bug (my money is on the latter).

This suggests that there's something off with the conversion between retina pixels and displayed points

it's because numpydoc does not parse docstring of std lib?

See above -- I think it's because numpydoc passes the stdlib definition unchanged, then autodoc sees the -> in the docstring and assumes that anything after that is only a :class: (hence an autodoc/autosummary bug)

would it make sense to wait for autodoc/autosummary to fix the bug?

Maybe, but in the meantime all CircleCI builds will fail. I guess we could roll back numpydoc in the meantime, but no idea how long the autodoc fix will take.

Personally I don't see why the dict_ class is so bad, it just adds one more entry in the MRO...

ok fair enough
let's proceed and see in a few weeks/months if we can undo this after a fix
upstream

I agree with @agramfort that it is kind of ugly, but I think it's okay for now :)

I believe this also begs the question if / whether we should switch to conda-forge packages anyway:
$ conda search vtk |grep pkgs/main
vtk                            8.1.0 py27h04d9db9_201  pkgs/main
vtk                            8.1.0 py27h87a2a2b_201  pkgs/main
vtk                            8.1.0 py35h04d9db9_201  pkgs/main
vtk                            8.1.0 py35h87a2a2b_201  pkgs/main
vtk                            8.1.0 py36h04d9db9_201  pkgs/main
vtk                            8.1.0 py36h87a2a2b_201  pkgs/main
vtk                            8.1.1 py27ha9eb873_204  pkgs/main
vtk                            8.1.1 py27hce9f6a2_204  pkgs/main
vtk                            8.1.1 py36ha9eb873_204  pkgs/main
vtk                            8.1.1 py36hce9f6a2_204  pkgs/main
vtk                            8.2.0 py27h9bafd54_200  pkgs/main
vtk                            8.2.0 py36h9bafd54_200  pkgs/main
vtk                            8.2.0 py37h9bafd54_200  pkgs/main

@larsoner feel free to revert 237e3e1, just want to see if this works…

@hoechenberger I think it follows the news on https://github.com/pyvista/pyvistaqt/pull/16#issuecomment-651149656 and https://github.com/pyvista/pyvistaqt/issues/15#issuecomment-651227725
Fetching vtk 9.0.1 on PyPi for every OS could solve the problem.

Fetching vtk 9.0.1 on PyPi for every OS could solve the problem.

Ok so we only need to pin VTK to >=9.0.1?

For MacOS at least, yes

The failures of the notebook job are note related, see https://github.com/mne-tools/mne-python/pull/7944

The Windows 3.7 conda job on Azure complains that pytest is not a command. It's not installed?

try:
python -m pytest
see https://docs.pytest.org/en/stable/usage.html

The command failing is often an indicator that the install still failed (but didn't error out for some reason)

I pushed again, it seems there was indeed an error in the installation.

Still not happy:
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "d:\a\1\s\conda\lib\site-packages\conda\exceptions.py", line 1079, in __call__
        return func(*args, **kwargs)
      File "d:\a\1\s\conda\lib\site-packages\conda_env\cli\main.py", line 80, in do_call
        exit_code = getattr(module, func_name)(args, parser)
      File "d:\a\1\s\conda\lib\site-packages\conda_env\cli\main_update.py", line 68, in execute
        directory=os.getcwd())
      File "d:\a\1\s\conda\lib\site-packages\conda_env\specs\__init__.py", line 40, in detect
        if spec.can_handle():
      File "d:\a\1\s\conda\lib\site-packages\conda_env\specs\yaml_file.py", line 18, in can_handle
        self._environment = env.from_file(self.filename)
      File "d:\a\1\s\conda\lib\site-packages\conda_env\env.py", line 151, in from_file
        return from_yaml(yamlstr, filename=filename)
      File "d:\a\1\s\conda\lib\site-packages\conda_env\env.py", line 136, in from_yaml
        data = yaml_load_standard(yamlstr)
      File "d:\a\1\s\conda\lib\site-packages\conda\common\serialize.py", line 76, in yaml_load_standard
        return yaml.load(string, Loader=yaml.Loader, version="1.2")
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\main.py", line 640, in load
        return loader._constructor.get_single_data()  # type: ignore
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\constructor.py", line 102, in get_single_data
        node = self.composer.get_single_node()
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 75, in get_single_node
        document = self.compose_document()
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 96, in compose_document
        node = self.compose_node(None, None)
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 132, in compose_node
        node = self.compose_mapping_node(anchor)
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 194, in compose_mapping_node
        item_value = self.compose_node(node, item_key)
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 130, in compose_node
        node = self.compose_sequence_node(anchor)
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 163, in compose_sequence_node
        node.value.append(self.compose_node(node, index))
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 132, in compose_node
        node = self.compose_mapping_node(anchor)
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 194, in compose_mapping_node
        item_value = self.compose_node(node, item_key)
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 130, in compose_node
        node = self.compose_sequence_node(anchor)
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\composer.py", line 162, in compose_sequence_node
        while not self.parser.check_event(SequenceEndEvent):
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\parser.py", line 144, in check_event
        self.current_event = self.state()
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\parser.py", line 519, in parse_indentless_sequence_entry
        token.move_comment(self.scanner.peek_token())
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\scanner.py", line 173, in peek_token
        self.fetch_more_tokens()
      File "d:\a\1\s\conda\lib\site-packages\ruamel_yaml\scanner.py", line 310, in fetch_more_tokens
        % utf8(ch), self.reader.get_mark())
    ruamel_yaml.scanner.ScannerError: while scanning for the next token
    found character '\t' that cannot start any token
      in "<unicode string>", line 35, column 44:
         ... 0.1; platform_system == "Darwin"
                                             ^ (line: 35)

There is a tab in the file XD

how do we proceed? we have 2 PRs that are red but collectively could be green?

I branched out in https://github.com/mne-tools/mne-python/pull/7944. If it makes things easier, I can integrate it in here?

ok for me

thx a lot @larsoner and @GuillaumeFavelier !


[BUG] "ambiguous argument 'origin/master'" error on 'doom update'

Describe the issue
straight branch 8f01abeb commit, doom update error:

  .
  .
  .
  . 12%
  .
  .
  .
  . 18%
  . 24%
  . 29%
  . 35%
  . 41%
  . 47%
  . 53%
  . 59%
Output:
/dev/null

There was an unexpected error:
error (error)
Wrong type argument: listp, "There were errors:

ensime: ((error Failed to run "git"; see buffer straight-process) fatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git  [...] -- [...]')"

System information

emacs   version    26.2
doom    version    2.0.9
        build      HEAD -> straight, origin/straight 8f01abeb

Just this once, you'll need to delete ~/.emacs.d/.local/straight/repo/straight.el and run doom refresh. I changed the recipe for straight, and as of yet, Doom's package manager can't quite handle changes in recipe for packages yet, much less for core packages like straight.el.

Mine is not ~/.emacs.d/.local/straight/repo/straight.el, it is ~/.emacs.d/.local/straight/repos/straight.el/.
I deleted it, and doom refresh, and then doom update, still report error.

Can confirm, deleting .local completely still doesn't solve the problem.

The problem seems to be that ensime/ensime-emacs doesn't have a master branch.

The fault has been resolved, thank you for everything.


Update strict documentation to clarify default value

Currently, strict defaults to true: https://github.com/isaacs/node-glob/blob/b2aa29bc066de1593d78864158e6a1adafd06e3c/common.js#L67
As undefined !== false is true. This makes sense, but it isn't clear in the documentation where "All options are false by default, unless otherwise noted."
Fixes https://github.com/isaacs/node-glob/issues/298

No longer relevant in v9.

@isaacs thanks. And really great work on version 9! 🙏


issues with sleep function

hi , testing sleep function
import os 'os'
sleeptime = 4000
while true:
os.sleep(sleeptime)
resp =  fetchUrl( url )
print resp
delay is not working , no matter of sleeptime value
May doing something wrong ?
thanks !

Are you on windows by chance, it's currently a no-op on Windows. I'll add that soon.

yes it was on Windows .
Testing and working on Linux , I'll continue on this OS .
thanks !

This was just added for Windows. Feel free to report any issues in a net ticket.


Feat: Implement the functions in the ValidateAccount library.

Description
Implement the internal validate_account function in the AccountUtils library.
File: src/utils/validate_account.cairo.
Function signature:
    /// Validates an account.
    /// # Arguments
    /// `account` - Account to validate.
    fn validate_account(account: ContractAddress);

Implement the internal validate_receiver function in the ValidateAccount library.
File: src/utils/validate_account.cairo.
Function signature:
    /// Validates a receiver.
    /// # Arguments
    /// * `receiver` - Account to validate.
    fn validate_receiver(receiver: ContractAddress);

Acceptance criteria

Function is implemented and well commented.
Associated unit tests (nominal and failure) are implemented and passing.

Resources

validateAccount function in GMX repo
validateReceiver function in GMX repo

i can do this one

Assigned 🔥


Scroll/Cursor Mode for ?fast see/delete <STARTING_INDEX> <BACK/FWD>

MAKE AN ITERATIVE PROCESS to show all fasts from first to last, starting with <STARTING_INDEX>, moving either <BACK/FWD>.
SKIP trying to getUserConfirmation() after each "scroll" - makes it less friendly.
When they are finished seeing or if the fast they are looking at is the fast they want to see/delete (after deletion ask if they want to continue scrolling!)
Consider using messageDataCollectFirst() for speed.

Use discord-pagination for this!

Accomplished indirectly with pagination


abapgit does not create ICF node of webdynpro application in ABAP2XLSX

After installing ABAP2XLSX ZDEMO_EXCEL_WDA01 does not work
After  debugging found WebDynpro needs a ICF Node /sap/bc/webdynpro/sap/zdemo_excel_wda01
which abapgit does not create
Deletion and regeneration of application creates ICF node

Duplicate of https://github.com/abapGit/abapGit/issues/5064.
SICF is a tricky object since it has system-specific tadir entries (objects keys). I mentioned a few other issues with it in https://github.com/abapGit/abapGit/issues/5064#issuecomment-954742820

Thanks!
ABAP2XLSX team did some workaround.
I am back to learning SAP; issues make me stronger on SICF & Debugging.
Proverb 19:21 divine interruptions!
I had great success with DOI (needs SAPGUI)
Had a beautiful spreadsheet with print preference all set
Uploaded and ready in a "blob" table; I just filled up some cells
ABAP2XLS will be useful to me to deliver XLSX via web and
situations where user has no licensed MS-Office installed
Thanks again!


Postgresql+postgresql-admin

added:

separate sections for "persistence" and "external_access" for clarity
visible comments on unencrypted external connections
removed VHost for postgres (which is TCP) -- not for the admin interface (HTTP)
Improved documentation

added:

minDcosVersion: 1.7
packagingVersion: 3.0
Persistent storage (on postgres) AND "external_access" (on both, for automatic VIP on MLB) are both optional and default to FALSE. Added disclaimer about unencrypted connection.

Based on:
postgres:9.6
zhajor/docker-phppgadmin

added:
separate sections for "persistence" and "external_access" for clarity
visible comments on unencrypted external connections
removed VHost for postgres (which is TCP) -- not for the admin interface (HTTP)
Improved documentation


User and Password authentication

Hello, have a method for login with user and password, in a external connection, without use complicate methods? I tried use "CUSTOM_USER" and "PASSWORD" on cried a Docker Compose, but don't have success. i haven't knowledge in docker and external authentication.

I have not tried this and would not recommend exposing this external if not behind a proxy like nginx. There is some guidance on how to do this on the read me.

I have not tried this and would not recommend exposing this external if not behind a proxy like nginx. There is some guidance on how to do this on the read me.

Thanks, i will setting a nginx proxy.

The image used by this project https://github.com/linuxserver/docker-baseimage-kasmvnc already have the authentication feature built-in. Why not reuse it if it's only used via LAN ?
But it's a good practice to use the authentication at the proxy level if exposed on the internet.


[AutoPR keyvault/data-plane] adding nodejs.readme for PR automation

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/2569

Codecov Report

Merging #2083 into restapi_auto_keyvault_preview will not change coverage.
The diff coverage is n/a.

@@                      Coverage Diff                       @@
##           restapi_auto_keyvault_preview    #2083   +/-   ##
==============================================================
  Coverage                          53.06%   53.06%
==============================================================
  Files                               4783     4783
  Lines                             120172   120172
==============================================================
  Hits                               63767    63767
  Misses                             56405    56405

Impacted Files
Coverage Δ

.../azure/keyvault/models/secret_update_parameters.py
100% <ø> (ø)
:arrow_up:

...ure/keyvault/models/x509_certificate_properties.py
100% <ø> (ø)
:arrow_up:

azure-keyvault/azure/keyvault/models/action.py
100% <ø> (ø)
:arrow_up:

...yvault/models/storage_account_create_parameters.py
41.66% <ø> (ø)
:arrow_up:

...azure/keyvault/models/key_operations_parameters.py
100% <ø> (ø)
:arrow_up:

...ure-keyvault/azure/keyvault/models/json_web_key.py
100% <ø> (ø)
:arrow_up:

...eyvault/azure/keyvault/models/issuer_parameters.py
100% <ø> (ø)
:arrow_up:

...ult/azure/keyvault/models/deleted_secret_bundle.py
100% <ø> (ø)
:arrow_up:

azure-keyvault/azure/keyvault/version.py
100% <ø> (ø)
:arrow_up:

...t/models/certificate_operation_update_parameter.py
100% <ø> (ø)
:arrow_up:

... and 73 more

Continue to review full report at Codecov.

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


Bug: unnamed imports are not replaced

I have the following tsconfig:
{
  "compilerOptions": {
    "target": "ES6",
    "module": "ESNext",
    "lib": ["ES6"],
    "moduleResolution": "Node",
    "rootDir": "./src",
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"],
      "@tools/*": ["src/tools/*"],
      "@types/*": ["src/types/*"],
      "@server/*": ["src/server/*"],
      "@routes/*": ["src/routes/*"],
      "@models/*": ["src/models/*"],
      "@schemas/*": ["src/schemas/*"],
      "@constants/*": ["src/constants/*"],
      "@middlewares/*": ["src/middlewares/*"]
    },
    "declaration": true,
    "outDir": "./dist",
    "removeComments": true,
    "declarationDir": "./@types",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "skipLibCheck": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "strictPropertyInitialization": false,
    "typeRoots": ["./src/@types"]
  },
  "exclude": ["./@types", "node_modules"],
  "include": ["./src/**/*"]
}

My entry file is located inside src/main.ts
inside this file I have some imports, them I have the following line:
import<EMAIL_ADDRESS>
after building the project and running resolve-tspaths, it resolves all the imports that have the @ successfully, and I can see that in the dist/ folder, but only this unnamed import import<EMAIL_ADDRESS>is kept unresolved.

Hi @samislam, could you please provide an example repository that shows your folder structure and demonstrates this issue?


Is SpeechServiceConnection_InitialSilenceTimeoutMs  Work on Javascript SDK

I'm currently setting it at 10. It should be 10ms and when I call to my service. it opens the stream to Azure Cognitive and it will close ASAP. Is that the correct behavior we would expect right?
Relate information:
Version: 1.29.0
NodeJs Version: 16

@Yukari-Tryhard Thank you for using JS Speech SDK, and writing this issue up. With an initial silence timeout of 10ms, I would expect an immediate return of an Initial Silence Timeout cancellation from the service, yes. The default for initial silence timeout is service dependent per scenario, but you may see something like 5s for recognizeOnceAsync, 15s for startContinuousRecognitionAsync.

@glharper  thank you for your reply. But the current interaction we have is not like that. We open the stream to Azure and wait but it never closes.
The current implementation of our service is
Some voice service  ----Web socket---> Our middle service ----> Write Stream NodeJS ---> write(data) to sdk.AudioInputStream.createPushStream.
So I believe the write function in Write Stream NodeJS API is always writing something. By default it writes empty bit data.
So I have two questions:

Can you please confirm that it works on your side. so that we know it's our side problem.
If this property is not working do we have other alternative solution for initial silence detection and closing stream. For example Conversation_Initial_Silence_Timeout

@glharper thank you for your reply. But the current interaction we have is not like that. We open the stream to Azure and wait but it never closes.
The current implementation of our service is
Some voice service ----Web socket---> Our middle service ----> Write Stream NodeJS ---> write(data) to sdk.AudioInputStream.createPushStream.
So I believe the write function in Write Stream NodeJS API is always writing something. By default it writes empty bit data.
So I have two questions:

Can you please confirm that it works on your side. so that we know it's our side problem.
If this property is not working do we have other alternative solution for initial silence detection and closing stream. For example Conversation_Initial_Silence_Timeout

The initial silence timeout result will not close the stream. The Speech SDK will keep waiting for speech, and merely pass the initial silence timeout on as a recognized result code. If you want to close the stream on initial silence timeout, you'll have to do so in your own code upon seeing that recognized result.

To keep our open issues list up to date, this item will be closed since it's been inactive and needs more information to proceed. Please file a new issue (and feel free to reference this one) if there's new information we can follow up on. Thank you!


VM Error for generic calls don't propagate

Let A, B be two contracts. A has an instance of B and B has a function that throws (function gothrow(){ throw; }). If this function is called via solidity interface (e.g. b.gothrow()) the error is propagated to the caller (A) and results in an overall throw of the transaction. If the function is called in a generic way (address(b).call(bytes4(sha("gothrow()")));) an error in B is thrown but NOT propagated and the calling function proceeds with its transaction!
I suppose this is not the expected behavior.
An minimal example with truffle/ testrpc and a detailed error description can be found here: https://github.com/mhhf/testrpc_error_propagation

This is best answered by @wanderer. @wanderer: Should the correct behavior be to throw?
@mhhf Have you tested this against geth first to see how it responds?

Hmm, just tested it on morden and it shows the same behavior.
Sorry, should have done it before opening an issue.
Closing this since it's not an testrpc issue .

@mhhf maybe you want to open an issue on ethereum/solidity with two code samples?

@axic: I've talked to chris about this. Not propagating errors by a call statement is the expected behavior: Call returns a boolean indicating if the call was successful or not, mirroring the call opcode. Once have to catch errors manually and propagate them:
if( !address(b).call(bytes4(sha("gothrow()"))) ) throw;


alternative shell discussion

I really like the fact that our modules are mostly shell scripts, as that is the most straightforward way of automating customizations on any Linux system. Even solutions that are not shell-script native, such as Vib with it's Go-based modules, end up frequently just generating RUN statements for Containerfiles.
On the other hand, bash is just fine. Most Linux users know a bit of bash, but not many know enough to fluently read and write all quirky syntaxes, bugs, and features that end up being needed in larger projects like this.
With that, I think it would be worth it to explore the prospects of using another (shell scripting) language for writing (at least some) of our modules.

There are many options for alternative shell scripting languages, but of them all, IMO the most promising is Nushell. It's typed, gives great errors, is very powerful and has very useful and readable helpers built in, and the syntax is clean and modern. Nushell supports reading many data types out of the box, including YAML and JSON, and manipulation of data is made elegant through pipelines.
I think it would be worth it to approach this topic through the following questions:

What would a module written in Nushell look like?

Would it be more readable or easier to maintain?
Would it be enough of an improvement over Bash?
This is where we can get our hands dirty.

How would Nushell be included into our images / image builds?

There isn't any official container as there is with mikefarah/yq, but it wouldn't be that hard for us to maintain one.
Another option would be hardcoding the Github download link in generated Containerfiles.
There is an official Fedora RPM package, but I would avoid non-OS-agnostic methods of installing a program required for the build process. For example, no packages exist yet for Debian/VanillaOS AFAIK.

Can justify or circumvent adding a large, mandatory binary to all images?

The Nushell .tar.gz release is almost 40MB, while yq binaries are only around 3 MB gzipped.
Adding Nushell to all images would make them way bigger, while not providing much better of an experience for end users.
In my view this is the biggest decision to make here. We can't really make the inclusion of Nushell optional if some modules are written in it.
One way to do this more cleanly could be to bind mount a container with the binary with each module's RUN statement, but that would still require the binary to be fetched each time the custom image is built.

Prior art:

All Atomic Studio build scripts are Nushell https://github.com/atomic-studio-org/Atomic-Studio/tree/main/config/scripts

Honestly I really like nushell just because it lets me depend entirely on it, instead of using a bunch of programs and piping stuff through them, like, there is a http builtin that just straight up replaces curl for me, all the nushell primitives just replace jq, yq, or any-other-q, well, idk, its really consistent. It DOES have a bunch of breaking changes for now tho, as it is still in 0.92, but it will get better with time if anyone wants to adopt it in the future.

I think it would be a good idea to write a test module in nushell and see how it goes. Maybe the flatpak installer because it currently needs to be rewritten to support multiple repos. As for how it's packaged, I think its best to maintain a container image. Would it be possible to create a Github action that builds a new image when Nushell creates a Github release?

Yes, it would be possible to make a GitHub Action for that. We should do some test refactorings first, though, and discuss the 40MB. I don't know how much time it would add in the GitHub builders, if it was just a bind-mounted program like the configs are currently. I guess the module repository container image could include a folder for binaries required to run the modules? Maybe we could split to core and extra modules, where the core modules wouldn't require Nushell, and would be simple essential modules, while extra modules would require it and be more complicated.

Honestly I really like nushell just because it lets me depend entirely on it.

I also like how nushell centralizes a lot of currently used tools, to make things easier to maintain & troubleshoot in the future.
As you also said, it has a lot of breaking changes, so bringing it into BlueBuild should be done when the language is stabilized & when it's more thoroughly & successfully used in other projects.
I currently don't know how to write it, but I will definitely learn it in the future!

Yeah, this is certainly not urgent, and we can wait until Nushell 1.0 to do more exploration.

Just found out about https://elv.sh/, which also seems like a contender. Should compare that with nushell. Don't know if anything beats nushells data model, but elvish has a smaller binary.

I find Oils (formerly OilShell) interesting:
https://www.oilshell.org/
I like how it is perfectly compatible with bash & POSIX scripts when using OSH shell mode.
I just changed #!/usr/bin/env bash to #!/usr/bin/env osh in default-flatpaks bash binaries & they work perfectly!
The difference in operation between OSH & bash is that OSH gives you clearer error & debug messages.
There are probably more differences, as I don't know it in detail & I discovered it some days ago, but this feature by itself is amazing.
So I believe that Oils in OSH shell mode can be a direct, minor update from Bash, without throwing Bash knowledge away.
 This one incorporates very nice improvements, like proper error log handling, which avoids occasional bad seterr behavior seen in bash:
https://www.oilshell.org/release/latest/doc/error-handling.html
This is just 1 improvement, there are lots of it, which you can find in Oils docs.
Those are just initial things that I discovered about it, there is more to learn.
Developer's take on nushell vs oils:
https://www.reddit.com/r/ProgrammingLanguages/comments/ddhmj9/comment/f2htup3/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
If you want to try it, Oils is available in brew:
https://formulae.brew.sh/formula/oil#default

We could totally support allowing nushell modules. All it would require is mounting the binary in the path. If they have an image we can pull that contains their bin like yq or cosign does, it would be super simple to support.

I would just like to avoid installing too many binaries that the user wouldn't necessarily want. Currently that list is yq, cosign, and bluebuild.

We probably don't need yq, especially if using a language like Elvish or Nushell, which supports YAML ootb. I'd aim to replace yq with the alternative shell. Many current usages of yq are tasks that jq could probably do easily.

I think a reasonable approach would be to just write the same module in each language, and trying to observe its benefits for the usecase. If there's not enough benefits to outweigh the "cost" of using an alternative shell, we can just keep using bash.

I agree with this idea.
Someday, I can try to rewrite default-flatpaks & unofficial wallpapers module in YSH.
However, I would like to do that when shell language becomes more stable, not now.

Also, this was posted on the ublue discord: https://amber-lang.com/
Wouldn't need to ship an additional binary for the shell, but would still require using external programs for parsing data. I really like ECMAScript, but am unsure whether this language is mature enough for our needs.

Also, this was posted on the ublue discord: https://amber-lang.com/
Wouldn't need to ship an additional binary for the shell, but would still require using external programs for parsing data. I really like ECMAScript, but am unsure whether this language is mature enough for our needs.

This is probably the coolest one I've seen TBH

Also, this was posted on the ublue discord: amber-lang.com
Wouldn't need to ship an additional binary for the shell, but would still require using external programs for parsing data. I really like ECMAScript, but am unsure whether this language is mature enough for our needs.

Looks interesting.
I remember that there are some tries to simplify bash by having a lot of built-in functions, but this goes further by changing syntax too.
I'll definitely follow its development.

Ok, I tried Amber. Here are my findings:

For a programming language that advertises compiling to shell, it's not really a proper shell.

Launching external programs requires surrounding the commands in $$
There are no pipes
All external commands require error catching blocks or being wrapped in an unsafe block

With all its glorious design features, there isn't really a way to parse the JSON command line argument that modules get, making this language pretty much useless for our needs

It feels like Amber was made for webdevs afraid of bash needing to write a simple "build.sh" or "install.sh".
Amber might be useful like NodeJS would be useful for writing scripts, with the additional feature of being able to run anywhere with Bash.

I've also spent quite a bit of time using Nushell and would advocate for it's use as the way to write blue-build modules, over bash.

Okay... I've been spending today on learning the basics of multiple alternative shells while writing a simple script in each one.
I chose to build an oversimplified version of default-flatpaks (specifically one that takes in this syntax, because the module needs a rewrite anyways, and I felt that this case works well for seeing some of the most important parts of each shell regarding our use case (parsing the JSON configuration passed to the script, launching external programs based on said configuration). Additionally, testing Flatpak commands locally is pretty straigthforward and non-destructive.
I tried to make the scripts as similar as possible to make syntax comparison easier, which worked well, as none of the shells I tried were radically different. (except Amber, which I dismissed in my earlier message, of course)
The scripts wouldn't work as BlueBuild modules directly, since they call flatpak commands in the main script, which would have to be done in a separate script in the real world.
The examples are structured such that before the # ------- is code that could run in the build, which would output a configuration file to /usr/share/bluebuild/.e build, which would output a configuration file to /usr/share/bluebuild/. The code after that line is what could run after boot to set up the remotes / repos and Flatpaks. Both of those are of course very simplified for the sake of local testability and readability.
The notify: option does nothing in these examples. It could be used to conditionally do notify-sends, but I left that out for now.
Elvish
Overview:

Code mostly makes sense and is readable, though has some quirks
Syntax is lispy with some C-like elements

The (+ 1 2) syntax might seem foreign to many contributors

Feature-set is between Bash and Nushell, basically everything we need exists
Binary size: 8.8M
Reasonable documentation website without search (googling with site:elv.sh was required)

Have to hunt for some basic things before learning them, basically no discussions online

Good editor support in VSCode
JSON builtin

Specific notes:

Declaring "maps" with a syntax reminiscent of query-strings seems like a very odd choice

Example from frontpage: [&name=a &cmd='apt update']

Quotes are basically never needed for strings, which is interesting but feels weird coming from bash
Separate equality operators for strings and numbers, and a third one for any two values of the same type; why?

default-flatpaks.elv
var default-config = '
{
    "notify": true,
    "scope": "system",
    "repo": {
        "url": "https://dl.flathub.org/repo/flathub.flatpakrepo",
        "name": "flathub",
        "title": "Flathub"
    },
    "install": []
}
'
var config = (echo $default-config $args[0] | jq -s add | from-json) # takes default config, overrides with user configsn)

echo (put $config | to-json) # debug

# -------

# add repo
echo Adding remote: $config[repo][title]
flatpak remote-add --if-not-exists $config[repo][name] $config[repo][url] --title $config[repo][title] --$config[scope]

# install all flatpaks
if (> (count $config[install]) 0) {
    echo Started install of $config[scope] Flatpaks from $config[repo][title]
    var install = $config[install]
    flatpak install --noninteractive --$config[scope] $config[repo][name] $@install # `$@` spreads the list
    echo Finished install of $config[scope] Flatpaks from $config[repo][title]
} else {
    echo "No Flatpaks to install..."
}

$ elvish elvish/default-flatpaks.elv '{"notify":true,"scope":"user","install":["org.gnome.Loupe","org.kde.kdenlive"]}'
{"repo":{"name":"flathub","title":"Flathub","url":"https://dl.flathub.org/repo/flathub.flatpakrepo"},"install":["org.gnome.Loupe","org.kde.kdenlive"],"notify":true,"scope":"user"}
Adding remote: Flathub
Started install of user Flatpaks from Flathub
Skipping: org.gnome.Loupe/x86_64/stable is already installed
Skipping: org.kde.kdenlive/x86_64/stable is already installed
Finished install of user Flatpaks from Flathub

$ elvish elvish/default-flatpaks.elv '{"notify":true,"scope":"user"}'
{"repo":{"name":"flathub","title":"Flathub","url":"https://dl.flathub.org/repo/flathub.flatpakrepo"},"install":[],"notify":true,"scope":"user"}
Adding remote: Flathub
No Flatpaks to install...

$ elvish elvish/default-flatpaks.elv invalid
jq: parse error: Invalid numeric literal at line 13, column 0
Exception: jq exited with 5
  /var/home/e/Zoding/bluebuild/shell-testing/elvish/default-flatpaks.elv:13:47-56: var config = (echo $default-config $args[0] | jq -s add | from-json) # takes default config, overrides with user configsn)

Nushell
Overview:

Code is very readable and makes sense, there is even a type system
Syntax is very C-like or even JS-like, with elements familiar to bash users
Feature-set is unbeatable

Basically more features than we'll ever need

Binary size: 88M

10x from Elvish, mostly due to the huge amount of features
This is my main concern, since including the shell in the final custom image would be really useful for some modules

Very good documentation website with a search, extensive content, and active community
Very good editor support in VSCode
YAML, JSON, etc. builtins

Specific notes:

Have to define a main function when taking arguments, which is pretty nice when there's many of them
Supports merging "records", which makes overriding a default config with the user configs a breeze
Very good error messages
There is talk of instability / frequent breaking changes, but with us using only a subset of Nushell features, maybe that wouldn't affect us that much(?)

default-flatpaks.nu
const defaultConfig = {
    notify: true
    scope: system
    repo: {
        url: "https://dl.flathub.org/repo/flathub.flatpakrepo"
        name: "flathub"
        title: "Flathub"
    }
    install: []
}

def main [configStr: string] {
    let config = $defaultConfig | merge ($configStr | from json) # takes default config, overrides with user configs

    print ($config | to json) # debug

    # -------

    # add repo
    print $"Adding remote: ($config | get repo.title)"
    flatpak remote-add --if-not-exists ($config | get repo.name) ($config | get repo.url) --title ($config | get repo.title) $"--($config | get scope)"

    # install all flatpaks
    if ($config | get install | length) > 0 {
        print $"Started install of ($config | get scope) Flatpaks from ($config | get repo.title)"
        flatpak install --noninteractive $"--($config | get scope)" ($config | get repo.name) ...($config | get install) # `...` spreads the list
        print $"Finished install of ($config | get scope) Flatpaks from ($config | get repo.title)"
    } else {
        print "No Flatpaks to install..."
    }
}

$ nu nushell/default-flatpaks.nu '{"notify":true,"scope":"user","install":["org.gnome.Loupe","org.kde.kdenlive"]}'
{
  "notify": true,
  "scope": "user",
  "repo":
  {
    "url": "https://dl.flathub.org/repo/flathub.flatpakrepo",
    "name": "flathub",
    "title": "Flathub"
  },
  "install":
  [
    "org.gnome.Loupe",
    "org.kde.kdenlive"
  ]
}
Adding remote: Flathub
Started install of user Flatpaks from Flathub
Skipping: org.gnome.Loupe/x86_64/stable is already installed
Skipping: org.kde.kdenlive/x86_64/stable is already installed
Finished install of user Flatpaks from Flathub

$ nu nushell/default-flatpaks.nu '{"notify":true,"scope":"user"}'
{
  "notify": true,
  "scope": "user",
  "repo":
  {
    "url": "https://dl.flathub.org/repo/flathub.flatpakrepo",
    "name": "flathub",
    "title": "Flathub"
  },
  "install": []
}
Adding remote: Flathub
No Flatpaks to install...

$ nu nushell/default-flatpaks.nu invalid
Error: nu::shell::pipeline_mismatch

  × Pipeline mismatch.
    ╭─[/var/home/e/Zoding/bluebuild/shell-testing/nushell/default-flatpaks.nu:13:18]
 12 │ def main [configStr: string] {
 13 │     let config = $defaultConfig | merge ($configStr | from json) # takes default config, overrides with user configs
    ·                  ───────┬──────   ──┬──
    ·                         │           ╰── expected: input, and argument, to be both record or both table
    ·                         ╰── value originates from here
 14 │
    ╰────

Oilshell / Ysh
Overview:

Code feels very much like a Bash Improved with bash quirks cleared up and  new features bolted on in the same framework
C-like "procs" and other code blocks
Feature-set similar to Elvish, though maybe a bit smaller

Finding the json built-in, not to mention of the three "sublanguages" surprised me

Binary size: 2M

This is pretty good taking into account that the same binary includes the bash-compatible OSH and the incrementally improving YSH
Also LOC is apparently pretty small for the scope

Convoluted documentation website; hard to find the page you're looking for

Centerpiece: A Tour of YSH
But there's also a GitHub Wiki
Googling with site:oilshell.org is definitely required for finding documentation of specific features, but that still might not lead to good results

Mediocre / bad editor support in VSCode; outdated syntax highlighting, no extra features
JSON & JSON8 builtins

Specific notes:

Something tells me this project is led by one passionate Unix Philosopher who likes to code and think about code

There's many lighlty documented features and sublanguages, but no effective onboarding

There's actually current & mostly complete versions both in Python and as binaries from C++ (which is what I used here)
Has to be compiled from source, but that is not an obstacle
Adds a new syntax for working with "dicts": $[...], for which I cannot find much documentation for, which is also the only place for calling some builtins such as len() for getting the length of a list, and integrating it with other shell features remains unclear to me
JSON cannot be read into a "dict" in a normal variable declaration, instead json read is kind of passed a reference to a (non-existant) variable which it creates: json read (&config) -> creates config

default-flatpaks.ysh
const default_config = """
{
    "notify": true,
    "scope": "system",
    "repo": {
        "url": "https://dl.flathub.org/repo/flathub.flatpakrepo",
        "name": "flathub",
        "title": "Flathub"
    },
    "install": []
}
"""

echo $default_config $1 | jq -s add | json read (&config) # takes default config, overrides with user configs

= config # debug, `=` used to pretty-print

# -------

# add repo
echo "Adding remote: $[config.repo.title]"
flatpak remote-add --if-not-exists $[config.repo.name] $[config.repo.url] --title $[config.repo.title] --$[config.scope]

# install all flatpaks
if ("$[len(config.install)]" !== "0") { # only hack I could make work for checking if the array is empty
    echo "Started install of $[config.scope] Flatpaks from $[config.repo.title]"
    flatpak install --noninteractive --$[config.scope] $[config.repo.name] @[config.install] # `@` spreads the list
    echo "Finished install of $[config.scope] Flatpaks from $[config.repo.title]"
} else {
    echo "No Flatpaks to install..."
}

$ ysh ./ysh/default-flatpaks.ysh '{"notify":true,"scope":"user","install":["org.gnome.Loupe","org.kde.kdenlive"]}'
(Dict 0x2719)   {"notify":true,"scope":"user","repo":{"url":"https://dl.flathub.org/repo/flathub.flatpakrepo","name":"flathub","title":"Flathub"},"install":["org.gnome.Loupe","org.kde.kdenlive"]}
Adding remote: Flathub
Started install of user Flatpaks from Flathub
Skipping: org.gnome.Loupe/x86_64/stable is already installed
Skipping: org.kde.kdenlive/x86_64/stable is already installed
Finished install of user Flatpaks from Flathub

$ ysh ./ysh/default-flatpaks.ysh '{"notify":true,"scope":"user"}'
(Dict 0x2721)   {"notify":true,"scope":"user","repo":{"url":"https://dl.flathub.org/repo/flathub.flatpakrepo","name":"flathub","title":"Flathub"},"install":[]}
Adding remote: Flathub
No Flatpaks to install...

$ ysh ./ysh/default-flatpaks.ysh invalid
jq: parse error: Invalid numeric literal at line 12, column 0
  echo $default_config $1 | jq -s add | json read (&config) # takes default config, overrides with user configs
                                             ^~~~
./ysh/default-flatpaks.ysh:14: json read: Unexpected EOF while parsing JSON (pos 0-0: '')
  echo $default_config $1 | jq -s add | json read (&config) # takes default config, overrides with user configs
                                        ^~~~
./ysh/default-flatpaks.ysh:14: errexit PID 58194: command.Simple failed with status 1
  echo $default_config $1 | jq -s add | json read (&config) # takes default config, overrides with user configs
                                        ^~~~
./ysh/default-flatpaks.ysh:14: errexit PID 58194: command.Pipeline failed with status 1

pt. 2, not serious contenders, but I still wrote the same script with them
default-flatpaks.bash

writing this seriously made all the other shells look really good
shellcheck-approved

DEFAULT_CONFIG=$(
cat << EOF
{
    "notify": true,
    "scope": "system",
    "repo": {
        "url": "https://dl.flathub.org/repo/flathub.flatpakrepo",
        "name": "flathub",
        "title": "Flathub"
    },
    "install": []
}
EOF
)

CONFIG=$(echo "$DEFAULT_CONFIG" "$1" | jq -s add)

echo "$CONFIG" | jq -r . # pretty-print with `jq`

# -------

# add repo
echo "Adding remote: $(echo "$CONFIG" | jq -r .repo.title)"
flatpak remote-add --if-not-exists "$(echo "$CONFIG" | jq -r .repo.name)" "$(echo "$CONFIG" | jq -r .repo.url)" --title "$(echo "$CONFIG" | jq -r .repo.title)" "--$(echo "$CONFIG" | jq -r .scope)"

# install all flatpaks
if [[ "$(echo "$CONFIG" | jq -r '.install | length')" -gt 0 ]]; then
    echo "Started install of $(echo "$CONFIG" | jq -r .scope) Flatpaks from $(echo "$CONFIG" | jq -r .repo.title)"
    # shellcheck disable=SC2046
    flatpak install --noninteractive "--$(echo "$CONFIG" | jq -r .scope)" "$(echo "$CONFIG" | jq -r .repo.name)" $(echo "$CONFIG" | jq -r '.install | join(" ")') # intentional string splitting
    echo "Finished install of $(echo "$CONFIG" | jq -r .scope) Flatpaks from $(echo "$CONFIG" | jq -r .repo.title)"
else
    echo "No Flatpaks to install..."
fi

$ bash bash/default-flatpaks.bash '{"notify":true,"scope":"user","install":["org.gnome.Loupe","org.kde.kdenlive"]}'
{
  "notify": true,
  "scope": "user",
  "repo": {
    "url": "https://dl.flathub.org/repo/flathub.flatpakrepo",
    "name": "flathub",
    "title": "Flathub"
  },
  "install": [
    "org.gnome.Loupe",
    "org.kde.kdenlive"
  ]
}
Adding remote: Flathub
Started install of user Flatpaks from Flathub
Skipping: org.gnome.Loupe/x86_64/stable is already installed
Skipping: org.kde.kdenlive/x86_64/stable is already installed
Finished install of user Flatpaks from Flathub

$ bash bash/default-flatpaks.bash '{"notify":true,"scope":"user"}'
{
  "notify": true,
  "scope": "user",
  "repo": {
    "url": "https://dl.flathub.org/repo/flathub.flatpakrepo",
    "name": "flathub",
    "title": "Flathub"
  },
  "install": []
}
Adding remote: Flathub
No Flatpaks to install...

$ bash bash/default-flatpaks.bash invalid
jq: parse error: Invalid numeric literal at line 11, column 0
Adding remote:
error: Flatpak system operation ConfigureRemote not allowed for user
No Flatpaks to install...
# comical fail, asks for my password to do whatever the fuck

default-flatpaks.koi

Köi is a minimalistic language, mainly aimed at shell scripting. https://koi-lang.dev/
writing this seriously made all the other shells look worse
sadly an infrequently updated single-maintainer project with sub-100 github stars, minimalist syntax and minimalist documentation, and incomprehensible errors

let defaultConfig = {
    notify: true
    scope: "system"
    repo: {
        url: "https://dl.flathub.org/repo/flathub.flatpakrepo"
        name: "flathub"
        title: "Flathub"
    }
    install: []
}

let config = defaultConfig + args[0].parseJson() # takes default config, overrides with user configs

print(config.toJson()) # debug

# -------

print("Adding remote: {config.repo.title}")
flatpak remote-add --if-not-exists {config.repo.name} {config.repo.url} --title {config.repo.title} --{config.scope}
if (config.install.len() > 0) {
    print("Started install of {config.scope} Flatpaks from {config.repo.title}")
    flatpak install --noninteractive --{config.scope} {config.repo.name} {config.install}
    print("Finished install of {config.scope} Flatpaks from {config.repo.title}")
} else {
    print("No Flatpaks to install...")
}

$ ./koi/koi ./koi/default-flatpaks.koi -- '{"notify":true,"scope":"user","install":["org.gnome.Loupe","org.kde.kdenlive"]}'
{"install":["org.gnome.Loupe","org.kde.kdenlive"],"notify":true,"repo":{"name":"flathub","title":"Flathub","url":"https://dl.flathub.org/repo/flathub.flatpakrepo"},"scope":"user"}
Adding remote: Flathub
Started install of user Flatpaks from Flathub
Skipping: org.gnome.Loupe/x86_64/stable is already installed
Skipping: org.kde.kdenlive/x86_64/stable is already installed
Finished install of user Flatpaks from Flathub

$ ./koi/koi ./koi/default-flatpaks.koi -- '{"notify":true,"scope":"user"}'
{"install":[],"notify":true,"repo":{"name":"flathub","title":"Flathub","url":"https://dl.flathub.org/repo/flathub.flatpakrepo"},"scope":"user"}
Adding remote: Flathub
No Flatpaks to install...

$ ./koi/koi ./koi/default-flatpaks.koi -- invalid
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("expected value", line: 1, column: 1)', src/interp/native.rs:108:47
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Thoughts:

I think YSH and Elvish are great, but

They have some rough edges or warts
The lacking documentation and smaller community makes them harder to use

Based on DX, I would actually only evaluate between the obvious choice, Nushell, and the inobvious choice, NodeJS + zx

The feature-sets could be thought to be similar, though Nushell is definitely nicer as a shell
JS is untyped (but can be extended with TS), while being more widely known
JS is a real programming language, so more is possible, while specific things are harder

JS is also somewhat hated by some

Nushell is smaller than NodeJS, but NodeJS would probably be included by default, making its bundle footprint smaller in the end

Overall, I would lean towards Nushell

Best community support and prior usage in this space (just scroll up this thread)
Best DX and programming that feels like programming compared to other shell languages tested
Good UX too, with fancy errors (custom ones too), ansi builtin for colored output, etc.
Each update always currently ships 5GB of changes anyways (due to upstream issues / unfinisheds), the Nushell binary would only be ~1-2% of that, and could likely be cached as it'd be added early in the build process

We'd have to include Nushell in the image if the intention is to use it in modules that have locally running parts

Coming full circle, after all this, it feels good to know that Nushell is the best pick here and make an informed decision
I don't have enough Nushell experience to know of what sorts of breaking changes there are; with a cursory glance in their changelogs the changes seem minor

@tulilirockz ?
We can always lock to a version and set a reminder to go through the nu changelogs every month or couple months before updating

Next steps; maybe making a nushell-container repo that builds a FROM scratch container with just a specific version of the Nushell binary. Ideally make the builds happen as seldom as possible to make best use of caching in custom image builds.

Next steps; maybe making a nushell-container repo that builds a FROM scratch container with just a specific version of the Nushell binary.

Do they not already supply an image with it? I was thinking of adding it like we do with yq or the bluebuild binary. Creating an image wouldn't be too bad, but I think we should use what's out there first

Do they not already supply an image with it?

Their repo has a Dockerfile with an alpine/musl version, couldn't find the image published anywhere.

Update: https://github.com/blue-build/nushell-image


Fixed down year arrow for rtl layout

The down arrow for the year in RTL was overlapping with the text, just fixed its layout

Can you add a screenshot on how this looks like?

@salmanhoque, please include a screenshot of before and after the fix

This is how it looks. FYI you tagged the wrong guy 😆

If someone has time to fix the build, I can merge this ASAP.

@salmankhann If you can fix the build, I can merge this for you.

Closing due inactivity.


App run as service can't visit wsl directory and files

Windows Version
Microsoft Windows [版本 10.0.19045.3448]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[x] WSL 2
[ ] WSL 1

Kernel Version
No response
Distro Version
No response
Other Software
No response
Repro Steps
Directory.Exists("\wsl.localhost\Ubuntu\etc") or Directory.Exists("\wsl$\Ubuntu\etc")
Expected Behavior
it can visit the direcotry and files
Actual Behavior
it returns not exist when i run my app as service
Diagnostic Logs
No response

and i try set service user as system or current admin user,it all failed

and i try set service user as system or current admin user,it all failed

@lld1995: The right path takes two "", so "\wsl.localhost" in your case. depending on the language you're using you might need to double them ("\\wsl.localhost").

@lld1995: The right path takes two "", so "\wsl.localhost" in your case. depending on the language you're using you might need to double them ("\wsl.localhost").

it both can't visit the directory


Path.Combine throws exception

        return Environment.GetEnvironmentVariable("PATH")
            .Split(';')
            .Select(x => Path.Combine(x, GitExecutable))
            .FirstOrDefault(x => File.Exists(x));

Path.Combine throws exception on path   ""C:\Program Files (x86)\Notepad++\""

Later test shows "C:\Program Files (x86)\Notepad++" is a valid safe path. It must be something else that I did not repro. Still it's safer to fix the bug.

What is the action item on the extension? Do you have a fix for this?

Fixed.


✨ Added support for GitLab as vcs_provider

Overview
This PR introduces support for GitLab and GitLab Self-Hosted as options for the vcs_provider in Control Tower. This enhancement allows users to integrate their GitLab repositories, both cloud-hosted and self-hosted, with Control Tower, expanding the flexibility and usability of the tool.
Changes

Added support for Gitlab as vcs_provider
Added support for Self Hosted Gitlab instance as vcs_provider
Updated README & Examples

Testing
Tested successfully by Sriram

The updates match what I would have proposed.  I am not in a position to test these updates though.

I don't have a root cause for it but it seems that self-managed Gitlab can't automatically trigger ct-aft-account-request CodePipeline when code is pushed to /main. However, the pipeline runs successfully and connects to Gitlab repo when doing manual "release change" for the pipeline so connection itself is working.
To debug I created a second connection from AWS console and noticed it's arn uses format arn:aws:codeconnections instead of AFT created connection's arn:aws:codestar-connections. By replacing this manually created connection to ct-aft-account-request pipeline it gets triggered automatically when code is pushed.
TF's AWS provider doesn't yet support CodeConnections but uses old CodeStar actions to create a connection link.
As a background I've done earlier basically the same modifications to my own fork of AFT for Gitlab self-managed support.

Apart from @ricmerr review comment which needs to be addressed, tested and working for me.

Resolved the name length, let me know if any other changes are needed @jmgrubb or @ricmerr , thank you!

Thanks for the PR, please note that this repo currently does not accept contribution yet. Ref.

Thanks for the discussion everyone. While we will not be accepting pull requests, supporting GitLab as a VCS is on our internal roadmap for 2024.

Thanks for the discussion everyone. While we will not be accepting pull requests, supporting GitLab as a VCS is on our internal roadmap for 2024.

Disappointing how limited the VCS options are, especially when a PR is ready but won't be accepted, considering CodeCommit is now deprecated also...

Hi @vivesan1, it is great news that GitLab support is in the works, do you guys have a time estimate on how it would get released?
We are waiting GitLab support so we can implement AFT for a client that has specific version control requirements.
Thank you,

Thanks for the PR, please note that this repo currently does not accept contribution yet. Ref.

AFT is rendered effectively unusable right now if your only option is/was to use CodeCommit.
This PR (@kenerwin88 kudos to you) shows the work to make it happen is trivial. What is more pressing and being worked on, that this can't be bumped to the front of the roadmap?

Features for AFT are prioritized against all other features for the Control Tower service. Over the last few months, the team has been focused on improving controls deployment, improving scaling in Control Tower, and building integrations with other AWS services.

+1 to wanting this feature.
In the meantime I'm just going to take the code from this PR and use it.
Big ups to @kenerwin88 for adding gitlab support

Features for AFT are prioritized against all other features for the Control Tower service. Over the last few months, the team has been focused on improving controls deployment, improving scaling in Control Tower, and building integrations with other AWS services.

Hi @vivesan1, thank you for the reply and I understand prioritization is a difficult thing, so not knowing a better channel to share, please let me add some of our view as a customer so it hopefully helps in those conversations.
Managing consistent configuration across an Org can be challenging, to cite a concrete example, account blueprints through Service Catalog is not a good option from our experience, because CloudFormation does not support changing account level settings like defaulting IMDSv2 or EBS encryption, etc. (but Terraform has a resource for those).
We think AFT is a great idea, we got excited when we found it because it resembles how teams handle their core infrastructure nowadays, Terraform/Python, GitOps, built-in CI/CD, etc., so we really hope is one of those ideas that sticks.
Back to the importance/priority point, I think adding GitLab and other VCS could greatly help increasing AFT's adoption, the hardest work was already put in by building and releasing the product, so I think these type of items would deserve higher priority if there is strong internal interest to take AFT to the next level.

Hi @vivesan1, I just wanted to take the opportunity to thank you and the team for the quick turnaround on this, GitLab support was recently released under version 1.13.2
We were able to upgrade our client's AFT stack to the latest and integrate with the official code, it all works as expected

Closing now that it's been released as part of 1.13.2.  Thank you all!!


Added default status to loadMore Convert

Required so view loading disapear when load ends

Thank you for your pull requests
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.7.5'


[WIP]feat(admin): integrate admin with jwt

What this PR does:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Codecov Report
Base: 36.33% // Head: 36.45% // Increases project coverage by +0.12% :tada:

Coverage data is based on head (9224df2) compared to base (baaf187).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #574      +/-   ##
==========================================
+ Coverage   36.33%   36.45%   +0.12%
==========================================
  Files         178      178
  Lines       21340    21367      +27
==========================================
+ Hits         7753     7789      +36
+ Misses      12749    12740       -9
  Partials      838      838

Impacted Files
Coverage Δ

pkg/runtime/function/left.go
77.96% <ø> (+9.96%)
:arrow_up:

pkg/runtime/function/power.go
34.83% <ø> (ø)

pkg/runtime/function/rand.go
76.00% <ø> (+9.33%)
:arrow_up:

pkg/runtime/function/rpad.go
78.72% <ø> (+15.30%)
:arrow_up:

pkg/runtime/function/sin.go
66.66% <ø> (+12.82%)
:arrow_up:

pkg/dataset/priority_queue.go
65.34% <0.00%> (+0.99%)
:arrow_up:

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

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


[vm/ffi] Static @NativeCallbacks API

@mkustermann suggested we should have static binding for native callbacks as well, as the dual for the @Native external functions.
We would move the information from Pointer.fromFunction to the declaration site (static functions):
@NativeCallback<void Function()>(
  exportAs: 'setupPrint',
  exceptionalReturn: <...>,
  callbackSemantics: <...>,
)
void setupPrint() {}

void main(){
  final callbackPointer = Pointer.addressOf<void Function()>(setupPrint);
}

Having this more static information would make it in the future possible to compile a Dart aot snapshot in such a way to statically link unresolved symbols from C static libraries to the Dart functions (or rather the FFI callback trampolines for these). The dual to:

https://github.com/dart-lang/sdk/issues/49418

The NativeCallback definition would look something like:
/// Annotation specifying how to bind a Dart function to native code.
///
/// The annotation applies only to static function declarations.
///
/// Example:
///
/// [...]
///
/// NOTE: This is an experimental feature and may change in the future.
@Since('3.1')
class NativeCallback<T> {
  /// If an exception is thrown while calling the function this annotation is on,
  /// the native function will return [exceptionalReturn],
  /// which must be assignable to return type of [T].
  final Object? exceptionalReturn;

  /// The threading semantics when this function is called from native.
  ///
  /// See the documentation on [CallbackSemantics].
  final CallbackSemantics semantics;

  /// The name to be made available to the native linker.
  ///
  /// Defaults to the function name when omitted.
  ///
  /// Example:
  ///
  /// [...]
  ///
  /// Prefer omitting the [symbol] when possible.
  final String? exportAs;

  const Native({
    this.exceptionalReturn,
    this.semantics = CallbackSemantics.alreadyEnteredCorrectIsolate,
    this.exportAs,
  });
}

@Since('3.1')
class CallbackSemantics {
  CallbackSemantics._();

  /// [...]
  static const CallbackSemantics alreadyEnteredCorrectIsolate = ...;

  /// [...]
  static const CallbackSemantics asyncVoid = ...;
}

The exportAs could also be used to generate a C API as proposed earlier by @vegorov in internal doc. This could then be used by our embedders instead of the reflective API currently in use.
This would prevent using the same Dart function as callback with two different settings, but that could be worked around by creating two top level functions with differing @NativeCallback annotations.
The new API would not support closures (which is also prohibited in the current API). But, for closures we likely need some API that would enable us to weakly hold on to an isolate and tell an isolate that a closure can be released.
Related issues:

https://github.com/dart-lang/sdk/issues/51350

If we change to a new API, we would deprecate the old API and not have to introduce a named-arguments-variant.
We could implement the CallbackSemantics as another optional positional argument for the time being.

https://github.com/dart-lang/sdk/issues/50552

The addressOf dual for native functions instead of Dart functions.

cc @liamappelbe, @mkustermann, @mraleph

Syntax suggested in https://github.com/dart-lang/language/pull/3531
// Callback semantics should always be NativeCallable.sharedMemoryMultiThreading
@Export<void Function()>(
  exportAs: 'setupPrint', // optional
  exceptionalReturn: <...>, // only required for types it's currently required for `NativeCallable`s
)
void setupPrint() {}


Converted smartBotResponse.js to typescript

Currently left smartBotResponse.js in the Utils folder so you can refer back to it if needed. Happy to remove the file and commit again if necessary.
Overall types were added on variables and functions where it's clear what the intended type should be. Finally I exported the smartBotResponse func and changed the 'dotenv' import to be consistent with other TS files.

Looks good! Can you remove the .js file as part of this PR though?

Done!


feat: support execution reverted during gas estimation

Closes https://github.com/enzoferey/ethers-error-parser/issues/7.

Codecov Report

Merging #15 (559db52) into main (8c980ce) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #15   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            6         7    +1
  Lines          443       508   +65
  Branches        50        57    +7
=========================================
+ Hits           443       508   +65

Impacted Files
Coverage Δ

lib/__tests__/getParsedEthersError.test.ts
100.00% <100.00%> (ø)

lib/constants.ts
100.00% <100.00%> (ø)

lib/utils/getTopLevelKnownError.ts
100.00% <100.00%> (ø)

lib/utils/getUnpredictableGasLimitError.ts
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


feat: fee estimate ui

Try out this version of the Hiro Wallet - download extension builds.

This PR adds ui work and a new query for fee estimations. While implementing this I tried to do as much refactoring as I could based on our code conventions. I am sure there are things I missed in moved files, so feel free to mark changes I should make even if doesn't pertain to new code for fee estimations. I'd like to address as much as possible with each PR.
Issue #1846
Testing:

Check that all transactions work correctly in the test-app using the new fee estimations
Check that sending STX tokens still works correctly using the new fee estimations
Fee estimations should default (load) to Standard (middle) estimation
Verify that setting a custom fee works above lowest estimation
Verity low fee warning appear on submit of tx with custom fee set lower than lowest estimate
Check that the edit nonce settings drawer still works as expected
Check that the increase fee settings still works as expected

*Note: It is expected that the estimations will only be slightly different. At times on testnet the middle and high estimations were the same for me.

cc/ @kyranjamie @beguene

@markmhx @eugeniadigon what do we want to do in the confirm drawer with the token transfer fee now that we have fee estimations and we've removed the concept of a default client-side fee and editing the fee from the settings? I think we haven't considered this user path? Right now it is 0 so it is showing --. How do we want the user to interact with the new fee estimations and custom input here?

This shares the code where editing the fee was removed (current prod version):

If this isn't possible, here's a simplified version without this concept, in which case we should rely on having deeper context/explanations on the tooltip info: https://www.figma.com/file/VupGh90FJtT0dcBj2Sh7bb/📏Spec?node-id=823%3A13069

On this version, can you explain how the two different tooltips work? Are those two options for what info we could provide?
Also, what is triggering the low fee warning?

For the tooltips, yes, these are two options for the same one. @markmhx Which one do you think is better in this case? https://www.figma.com/file/VupGh90FJtT0dcBj2Sh7bb/📏Spec?node-id=823%3A13069
For the low fee warning, it should at least appear when the user enters a custom fee lower than our 'suggested' low fee. Unless there's a more accurate way to predict when a transaction will fail, but at this point, I'm not sure how can we determine what too low means.

How about a combination approach like this one where we give a bit of guidance and the option to learn more?

Possible (<30% chance)

Likely (~75% chance)
Very likely (>90% chance)

This isn't possible currently -- it's a feature that the endpoint could implement, but it would require more work for it to return accurate probability estimates.

@kyranjamie @beguene I need to address some failing code checks here but I think overall things are working and this can be reviewed. There are lots of files changes. In the end, look for changes related to fee estimations and refactoring all fee states into just feeState and feeRateState. Mostly everything else is pulling out tons of components into their own files and trying to convert to function declarations. Definitely call out anything I might have missed. Thanks!

As an update note on this for QA, just a heads up that the broken integrations tests are bc I needed to add the fee estimations to the SendMax button. I have those fixed locally and will push up the changes after demo/meetings today.

@timstackblock maybe hold on testing this, I think something broke with the custom input when I refactored Formik. I have to run a tech interview, but then going to look at it closer. It was behaving just fine, but now something is off.

@fbwoolf @markmhx Here's the design for the fee estimate in Send (although applied to the latest wallet design), plus the edge case where a user sends their max balance and then change the fee for a higher custom fee, exceeding the total balance.
https://www.figma.com/file/VupGh90FJtT0dcBj2Sh7bb/📏Spec?node-id=1252%3A12960
Is this what we wanted to cover or am I missing something else?

Looks good, and I agree that generic copy here will be more straightforward to implement

Is this what we wanted to cover or am I missing something else?

This looks good, @markmhx just so everyone is on the same page for time, this is moving quite a bit around and an overall redesign of the send form. Just want people to be aware this won't be done and tested all this week. This will be quite a bit of work to move everything around. I would be I can get it code complete this week with all the interviews scheduled, and then testing can start next week. @eugeniadigon are you thinking the asset select is behaving the same as it is currently where a user types in an input to search for the asset? It looks here like it is just a dropdown only?
Great design, I'm not sure we really need to mess with the current error messaging do we? Insufficient balance error already exists.

just so everyone is on the same page for time, this is moving quite a bit around and an overall redesign of the send form. Just want people to be aware this won't be done and tested all this week.

No worries, let's take the time we need to do this right.

I'm not sure we really need to mess with the current error messaging do we? Insufficient balance error already exists.

If so, let's not worry about the error copy for this release. We can improve later as needed.

@fbwoolf as we discussed in a call, the task is to move the fee estimation Ui to the send form and leave is as it is instead of doing a complete refactor of the Send form (which we should do soon because it looks fantastic)

@markmhx @eugeniadigon showing progress here on relocating the fee row and realizing we should add the nonce and memo to the confirmation before sending. Do we need a design for it at this point or can it just be added as a row with the fees for now? I can also create a separate issue for this to be addressed later?

whoops, sorry you'll need to rebase, my bad

@fbwoolf Please do create a separate issue for displaying the nonce and memo in the preview screen as a separate effort. I see in the latest release that we don't display either of those values, so this PR wouldn't introduce a regression. Though it's a good catch for a future enhancement 🙏

@markmhx @eugeniadigon I am updating the fee warning design but am thinking this type should change slightly bc at this point the user is prevented from actually sending the transaction. It seems like the type should indicate they need to adjust the fee and maybe the Preview button should become disabled?

Is it the case that the user is prevented from sending the transaction indeed? I thought it was supposed to just be a warning in the case a user wants to intentionally pay a very low fee, it's in their full consciousness the risk of transaction failing
btw I slightly updated the warning style: https://www.figma.com/file/VupGh90FJtT0dcBj2Sh7bb/📏Spec?node-id=823%3A11916

Is it the case that the user is prevented from sending the transaction? I thought it was supposed to just be a warning in the case a user wants to intentionally pay a very low fee, so it's in their full consciousness the risk of the transaction failing

Right now, the warning is preventing sending the tx but I can change that and let it send with the warning.

btw I slightly updated the warning style: https://www.figma.com/file/VupGh90FJtT0dcBj2Sh7bb/📏Spec?node-id=823%3A11916

Yep, I am just now in the process of updating it. Thanks for feedback!

@kyranjamie hoping we can merge this sooner than later into dev bc it's becoming a pain to rebase. After rebasing I am seeing double txs under Submitted and pending in the list after I increase fee, did you see that before merging or is that a merge conflict I messed up?

Been trying to get these tests to pass locally but not having any luck atm.

Add 2577cbff which fixes this.
Will have a look at the tests.

Had a short conversation today with @markmhx about adding a warning when the user chooses a high fee, to cover the cases where the fee is significantly high and we'd like the user to be in full consciousness of it. Design here:
https://www.figma.com/file/VupGh90FJtT0dcBj2Sh7bb/📏Spec?node-id=1356%3A12852


Order by clause: dynamic parameters ignored?

Hi, All!
OS - Debian Linux 10
DB - PostgreSQL 13.2.
W'd like to create dynamic parameter(s) for the simple query:
-- name: PersonsGet :many
select *
  from persons
 order by @sql_order::text
 limit @sql_limit offset @sql_offset;

@sql_limit and @sql_offset works perfectly
but @sql_order with dynamic parameters seems doesn't work... and always ignored...
For example:

order by [id]
order by [id desc]
order by [name, created_at desc]

Generated code below:

const personsGet = `-- name: PersonsGet :many
select id, salut, first_name, last_name, birthday, gender, status, created_at, updated_at
  from persons
 order by $1::text
 limit $3 offset $2
`

type PersonsGetParams struct {
	SqlOrder  string `json:"sql_order"`
	SqlOffset int32  `json:"sql_offset"`
	SqlLimit  int32  `json:"sql_limit"`
}

func (q *Queries) PersonsGet(ctx context.Context, arg PersonsGetParams) ([]Persons, error) {
	rows, err := q.query(ctx, q.personsGetStmt, personsGet, arg.SqlOrder, arg.SqlOffset, arg.SqlLimit)
	if err != nil {
		return nil, err
	}
	defer rows.Close()
	items := []Persons{}
	for rows.Next() {
		var i Persons
		if err := rows.Scan(
			&i.ID,
			&i.Salut,
			&i.FirstName,
			&i.LastName,
			&i.Birthday,
			&i.Gender,
			&i.Status,
			&i.CreatedAt,
			&i.UpdatedAt,
		); err != nil {
			return nil, err
		}
		items = append(items, i)
	}
	if err := rows.Close(); err != nil {
		return nil, err
	}
	if err := rows.Err(); err != nil {
		return nil, err
	}
	return items, nil
}

Any ideas why?
Any help would be appreciated!

Your problem comes from how requests are prepared:

You can avoid SQL injection by using a CASE in your query:
-- name: PersonsGet :many
select *
from persons
order by case
    when @sql_order = 'first_name' then first_name
    when @sql_order = 'created_at' then created_at
end
limit @sql_limit offset @sql_offset;

ohh. THANK YOU very much!!
BUT
'''
-- name: PersonsGet :many
select *
from persons
order by case
when @sql_order = 'id' then id
when @sql_order = 'first_name' then first_name
when @sql_order = 'last_name' then last_name
when @sql_order = 'birthday' then birthday
when @sql_order = 'gender' then gender
when @sql_order = 'status' then status
when @sql-order = 'created_at' then created_at
when @sql_order = 'updated_at' then updated_at
end
limit @sql_limit offset @sql_offset;
'''
storage/query/persons.sql:1:1: syntax error at or near "order"
Any ideas?

You have a small typo on the 7th when: you wrote @sql-order and not @sql_order. The error message from Postgres parser is not very helpful.
You can use play.sqlc.dev to share your code in issues, it makes it easier for others to reproduce.

You have a small typo on the 7th when: you wrote @sql-order and not @sql_order. The error message from the parser is not very helpful.
You can use play.sqlc.dev to share your code in issues, it makes it easier for others to reproduce.

Ohh, thanx a lot, friend!!! You helped me a lot!!! Again, thanx, thanx, thanx!!! )))

@aitva Thanks for helping out here, really appreciate it.

I am experiencing the following SQL Error when following @aitva's example above:
CASE types text and timestamp with time zone cannot be matched

if the columns I am ordering by are not the same type.
I would think this means that the solution provided by @aitva in this issue, and similarly in https://github.com/kyleconroy/sqlc/issues/830#issuecomment-827489986 does not work.
My intuition is that dynamic ORDER BY clauses are extremely common use case for many applications (any visualization via table likely has sorting by column).
The fact that sqlc does not have an answer to this use case and doesn't provide a way to drop down into raw sql is causing me thinking about using a different solution for my Go Postgres applications (although I have had an extremely positive experience with the library in general).
@kyleconroy is there any way you could provide some guidance here (I apologize in advance if I am missing something obvious), but this is a total deal breaker I would imagine for a large class of applications.

For posterity, there was a lengthy discussion already here.

@kennedyjustin The above query may not work since it is using column names of different types, but you can use a column's ordinal number instead to achieve the same functionality:
select *
from persons
order by case
    when @sql_order = 'first_name' then 1
    when @sql_order = 'created_at' then 2
end
limit @sql_limit offset @sql_offset;

Would satisfy Postgres' type checker

@ryan-berger : what are 1 and 2 in this case?
Do you mean that it's the index of the column?
What if someone changes the column order? It will make the code broken, right?


⚠ Bofrost.be has degraded performance

In 52f69c3, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 988 ms

Resolved: Bofrost.be performance has improved in ee1bb8d after 6 minutes.


Can't finish ./build.sh on arm Mac

After installing all the dependencies and building OpenSSL for iOS, watchOS, tvOS, and macOS I am not able to build tdLIB. When I am running  cd <path to TDLib sources>/example/ios ./build.sh
I am getting this error. Am I getting this error because I have an M1 MAC, or am I doing something incorrectly ?

clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [benchmark/check_tls] Error 1
make[1]: *** [benchmark/CMakeFiles/check_tls.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 33%] Linking CXX executable rmdir
ld: warning: ignoring file ../../../third_party/openssl/macOS/lib/libcrypto.a, missing required architecture arm64 in file ../../../third_party/openssl/macOS/lib/libcrypto.a (1 slices)
[ 33%] Built target rmdir
[ 33%] Linking CXX static library libtdapi.a
[ 33%] Built target tdapi
make: *** [all] Error 2

Yes, this is a possible reason, but it should affect only building for macOS and not other operating systems.
To build TDLib for macOS you can use https://tdlib.github.io/td/build.html. This will generate some required source files and you would be able to use the same source tree to build TDLib for iOS, watchOS and tvOS. You will need to remove macOS from the list of platforms in build.sh and build-openssl.sh and should be able to continue building of the example/ios after that.

Looks like I haven't paid close attention while I was building everything. Cmake can't find OpenSSL, although OpenSSL is installed.
After cloning the library, I am creating native-build directory. And then when I am entering cmake .. I am getting this error:

machinegun@Ismatullas-MacBook-Air native-build % cmake ..
-- Could NOT find ccache (this is NOT an error)
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY)
-- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/lib/libz.tbd
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY)
CMake Warning at CMakeLists.txt:167 (message):
Can't find OpenSSL: stop TDLib building

OpenSSL isn't needed for source code generation. Now you can run native build with cmake --build . and continue to build TDLib for iOS/watchOS/tvOS.

I don't know man... I could not build it. Nevertheless, thank you for your help.


model used?

dear prof @doonny, may I know the inference is done on caffenet or alexnet?

Caffenet is provided in the ModelZoo

thank u


FIX-#5252: Disable notebook tests until access control issues are resolved for modin-test bucket

Signed-off-by: Rehan Durrani<EMAIL_ADDRESS>
What do these changes do?

[x] first commit message and PR title follow format outlined here

NOTE:  If you edit the PR title to match this format, you need to add another commit (even if it's empty) or amend your last commit for the CI job that checks the PR title to pick up the new PR title.

[ ] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[ ] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[ ] signed commit with git commit -s
[ ] Resolves #?
[ ] tests added and passing
[ ] module layout described at docs/development/architecture.rst is up-to-date

Should we add a fix for the places where the bucket is referred to in the docs?

Should we add a fix for the places where the bucket is referred to in the docs?

Maybe some note should be added? Am I correct that other notebooks (e.g., quickstart.ipynb) also don't work for now as those refers to https://modin-test.s3.us-west-1.amazonaws.com/yellow_tripdata_2015-01.csv?

Should we add a fix for the places where the bucket is referred to in the docs?

Maybe some note should be added? Am I correct that other notebooks (e.g., quickstart.ipynb) also don't work for now as those refers to https://modin-test.s3.us-west-1.amazonaws.com/yellow_tripdata_2015-01.csv?

Yep - any notebook referencing those buckets will fail to run - happy to add a note if folks would like, but maybe we should merge this PR first since it's blocking CI on everything else?

but maybe we should merge this PR first since it's blocking CI on everything else?

Yep, that's what I would like to do. I will file a follow-up issue for the long term fix, too.


Better errors for views

Hi,
I was wondering if it is at all possible to have better errors for views. Currently, the error thrown gives the compiled view file as the place where the error occurred. It'd be nice if it would show the actual view file that contains the error. Maybe using php comments in the compiled file to indicate the original view location and use that when an error occurs?

We're open to PRs. :)

Maybe using php comments in the compiled file to indicate the original view location and use that when an error occurs?

No, don't do that.

The stack trace should already show you the view used?

I don't think the Stack Trace does. Or at least not in all cases:

Look in Response.php at line 51.


Fixes #894 - Override shortDescription in TestCase to hide docstring in test logs

ctest -VV -R system_tests_autolinks

Before
test 16
    Start 16: system_tests_autolinks

16: Test command: /home/jdanek/.cache/pypoetry/virtualenvs/skupper-router-7_an9NB3-py3.11/bin/python "/home/jdanek/repos/skupper-router/cmake-build-relwithdebinfo-clang/tests/run.py" "-m" "unittest" "-v" "system_tests_autolinks"
16: Working Directory: /home/jdanek/repos/skupper-router/cmake-build-relwithdebinfo-clang/tests
16: Test timeout computed to be: 600
16: test_auto_link_reattach (system_tests_autolinks.AutoLinkRetryTest.test_auto_link_reattach) ... ok
16: test_01_autolink_attach (system_tests_autolinks.AutolinkTest.test_01_autolink_attach)
16: Create the route-container connection and verify that the appropriate links are attached. ... ok
16: test_03_autolink_sender (system_tests_autolinks.AutolinkTest.test_03_autolink_sender)
16: Create a route-container connection and a normal sender.  Ensure that messages sent on the sender ... ok

[...]

After
test 16
    Start 16: system_tests_autolinks

16: Test command: /home/jdanek/.cache/pypoetry/virtualenvs/skupper-router-7_an9NB3-py3.11/bin/python "/home/jdanek/repos/skupper-router/cmake-build-relwithdebinfo-clang/tests/run.py" "-m" "unittest" "-v" "system_tests_autolinks"
16: Working Directory: /home/jdanek/repos/skupper-router/cmake-build-relwithdebinfo-clang/tests
16: Test timeout computed to be: 600
16: test_auto_link_reattach (system_tests_autolinks.AutoLinkRetryTest.test_auto_link_reattach) ... ok
16: test_01_autolink_attach (system_tests_autolinks.AutolinkTest.test_01_autolink_attach) ... ok
16: test_03_autolink_sender (system_tests_autolinks.AutolinkTest.test_03_autolink_sender) ... ok
16: test_06_manage_autolinks (system_tests_autolinks.AutolinkTest.test_06_manage_autolinks) ... ok

[...]

Codecov Report
Base: 27.52% // Head: 27.52% // No change to project coverage :thumbsup:

Coverage data is based on head (189f2bb) compared to base (6173c88).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #895   +/-   ##
=======================================
  Coverage   27.52%   27.52%
=======================================
  Files         136      136
  Lines       32558    32558
  Branches     5219     5219
=======================================
  Hits         8960     8960
  Misses      22448    22448
  Partials     1150     1150

Flag
Coverage Δ

unittests
27.52% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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

Thanks for doing this


[Accessibility]: ibm-overflow-menu-option incorrect nesting of menuitem role

Detailed description

Describe in detail the issue you're having.

After #2213 was fixed, new accessibility violations are exposed with the use of ibm-overflow-menu-option

Is this a feature request (new component, new icon), a bug, or a general issue?

Accessibility bug

Is this issue related to a specific component?

Overflow menu

What did you expect to happen? What happened instead? What would you like to see changed?

Expect to have no accessibility violations

What browser are you working in?

Chrome

What version of the Carbon Design System are you using?

"carbon-components-angular": "^4.59.17"

What offering/product do you work on? Any pressing ship or release dates we should be aware of?

IBM ADDI
Steps to reproduce the issue

Step one
Step two
Step three
etc.

Additional information

Screenshots or code
Notes

It's possible to workaround this problem using custom menu option instead of ibm-overflow-menu-option
<li class="bx--overflow-menu-options__option">
    <button class="bx--overflow-menu-options__btn">Option 1</button>
</li>

@makandre Could you provide a codesand box with this error? Can't seem to reproduce this in storybook.
<ul> element should only have li elements or the custom element should have a role of listitem from my understanding. Additionally, the menuitem role on the button should be on the host, so that would be ibm-overflow-menu-option.

https://codesandbox.io/s/carbon-components-angular-forked-kvqhl7?file=/src/app/app.component.html
I can't seem to reproduce the same violation either, it has been replaced by this:


Remove duplicate Advanced.md entry

          1 Warning

:warning:
Please provide a changelog summary in the Pull Request description @KrauseFx

  Generated by :no_entry_sign: Danger


[Bug]:  copyright.html Navbar fix

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
On your website's copyright.html page, the navbar's items are displaying extra text below, and they overlap with the heading. To resolve this issue, align the navbar at the top of the website.
Expected behavior
fix the position of navbar and remove the unnecessary text
Add ScreenShots/Videos
https://github.com/user-attachments/assets/8ef31e23-0209-4f6e-8780-8cae299b6fa3
On which device are you experiencing this bug?
Chrome
Record

[X] I have read the Contributing Guidelines
[ ] I'm a IEEE-IGDTUW Open Source Week 2024 contributor
[X] I have starred the repository

@biswajit-sarkar-007 Actually i want to inform u one thing , that the contribution period of kwoc will start from 5 th dec , so any contributions before that timeline will not count towards KWOC , so please try to start contributing after 5th DEC .
& regarding this issues which u have raised prior , don't worry about it , i will review & assign u this issues after the contribution period starts

@apu52  okay

@apu52 okay


ghoti's Read me

Who I am and my grandmother's personal belongings.

Thanks for joining and working on this today!


Factor out fakeTopo from vt/vtgate to vt/topo/test/faketopo

This also renames old faketopo.go to fixture.go (this doesn't display nicely in diff)

This is good, then to test anything that only needs a couple special topo methods one can just use the faketopo. Good stuff.
LGTM


How to customize Fast Scroll Thumb drawable

I was trying to customize fast scroll thumb drawable in several ways like setting style, scrollbarVerticalThumbDrawable, but it is not customized. Since it is not a listview originally, I could not find any proper way to change fast scroll thumb drawable. Could you give me a solution.

Is there a plan in the near by future to enable this property to be changed in runtime via code or should we consider implementing it somehow?


Attach() waits callable function

can you try to pass $events by reference and see if there is a difference


Remove blobstore info from IaaS metadata endpoints

The BOSH agent reads its blobstore settings from the metadata API endpoint (or equivalent) for its VM within the IaaS. If the blobstore settings are not set in the env.bosh.blobstores property, it will fallback to the top-level blobstore property in the metadata.
However, in modern configurations, the Director always sends the blobstore settings as part of the environment hash. Additionally, the Director does redaction of credentials in the environment hash when the signed URLs blobstore feature is enabled. This redaction is not applied to the top-level blobstore property in the metadata because that is generated solely by the CPI.
Rather than updating each CPI to know about the signed URL feature, we are instead removing the blobstore properties from the CPI. This will ensure that Director is the sole point of contact when configuring agent blobstore settings, and ensure that they are always properly redacted.

It should be noted that this is potentially a breaking change for users who are not already sending their blobstore settings via the env hash. At the very least, bosh-deployment is already properly sending it for both the Director settings (provider=local) and for VMs deployed by the director


Missing ability to provide custom overlay

New Issue Checklist

I have read the guidelines for contributing and I understand:

[x] My issue is happening in the latest version of SideMenu.
[x] My issue was not solved in the README.
[x] My issue can not be answered on stackoverflow.com.
[x] My issue is not a request for new functionality that I am unwilling to build and contribute with a pull request.
[x] My issue is reproducible in the demo project.

Issue Description

Is there a way to display custom overlay, like it was done in previous version using
        transition.overlayBlock = {[weak self] () -> UIView? in
            guard let strongSelf = self else { return nil }
            return strongSelf.activeDelegate?.sideMenuOverlay?(menu: strongSelf)
        }

Hi @vkolosovsky,
Currently, that's not explicitly supported although it's easy to incorporate. Two options:

In your SideMenuNavigationController instance, override the viewWillAppear, etc. events to show your overlay.
Create your own SideMenuPresentationStyle that shows your overlay during display.

Hope this helps.

For those coming here looking for the solution, here is the code I used:
class subClass: SideMenuNavigationController {
    var overlayView:UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

        //overlay creation
        overlayView = UIView()
        overlayView.backgroundColor = .shade1
        overlayView.alpha = 0.3
        overlayView.translatesAutoresizingMaskIntoConstraints = false
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        if let viewToInsertIn = presentingViewController?.view
        {
            viewToInsertIn.insertSubview(overlayView, at: viewToInsertIn.subviews.count)
            overlayView.leadingAnchor.constraint(equalTo: viewToInsertIn.leadingAnchor).isActive = true
            overlayView.trailingAnchor.constraint(equalTo: viewToInsertIn.trailingAnchor).isActive = true
            overlayView.topAnchor.constraint(equalTo: viewToInsertIn.topAnchor).isActive = true
            overlayView.bottomAnchor.constraint(equalTo: viewToInsertIn.bottomAnchor).isActive = true
        }

    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        overlayView.removeFromSuperview()
    }
}

@otusweb Your solution doesn't take presenting and dismissing animations into account. Here is a better solution:
import SideMenu
import UIKit

class MenuViewController: SideMenuNavigationController {
    private lazy var overlayView: UIView = {
        let view = UIView()
        view.translatesAutoresizingMaskIntoConstraints = false
        view.backgroundColor = .gray
        view.alpha = 0.0

        return view
    }()

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        showOverlayView()
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        hideOverlayView()
    }
}

extension MenuViewController {
    private func showOverlayView() {
        addOverlayView()

        UIView.animate(withDuration: presentDuration) {
            self.overlayView.alpha = 0.2
        }
    }

    private func hideOverlayView() {
        UIView.animate(withDuration: dismissDuration) {
            self.overlayView.alpha = 0.0
        } completion: { _ in
            self.removeOverlayView()
        }
    }

    private func addOverlayView() {
        guard let view = presentingViewController?.view else { return }
        view.addSubview(overlayView)

        NSLayoutConstraint.activate([
            overlayView.topAnchor.constraint(equalTo: view.topAnchor),
            overlayView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
            overlayView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            overlayView.trailingAnchor.constraint(equalTo: view.trailingAnchor)
        ])
    }

    private func removeOverlayView() {
        overlayView.removeFromSuperview()
    }
}

@jonkykong Thanks for the awesome library :clap:

If only a method sideMenuChanged(progress:CGFloat) was added to  SideMenuNavigationControllerDelegate.


[PR] Template Improve

Describe the bug
A clear and concise description of what the bug is.
The PR template should include a line saying This PR fixes: #
But currently it says Ticket no. which will not be convenient for the new contributors and they might not link their issue no. , so we need to change.
https://github.com/kubescape/kubescape/blob/master/.github/PULL_REQUEST_TEMPLATE.md
Environment
OS: the OS + version you’re running Kubescape on, e.g Ubuntu 22.04 LTS
Version: the version that Kubescape reports when you run kubescape version
Your current version is:

Steps To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Actual Behavior
A clear and concise description of what happened. If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

/assign

I would like to work on this issue.