User needs to tap twice on dropdown

hi, we've found in the app that when the dropdown is displayed - the user then needs to tap twice (minimally) for the tap gesture to be recognised. Are there any suggestions on how we can fix this?

Do you render the option row yourself or use the default render.

+1 This is what I thought disabling the fade-in animation would fix

We really need this fixed as soon as possible. I'll give animated=false a try today in mean time

@ajonno
Still an issue when animation closed?

let me double check stay tuned..

my tests on device seem to indicate that animated={false}   makes taps work on first try.

unf. this is still a problem and we had to backlog it. picked it up again now and trying to resolve. setting animation=false isnt making any difference re our tests on device. we can confirm that it is specifically 2 taps.
(we are using a bound function on renderRow= .. )
1st tap does nothing, 2nd tap is recognised.

ok have figured it out. For our use case, we need to have keyboardShoudPersistTaps="always" . This ensures, that the first tap on a row in the (react-native-modal-dropdown) ListView is recognised and handled. We'll submit a change/pull request shortly, greatly appreciate if you can review asap and merge. Thanks!

@ajonno
Great. I'm ready and thank you.

my pleasure! i just tried a fresh install via yarn (yarn add react-native-modal-dropdown) but the change isn't there. do you need to bump the version number to 0.4.4 ?

Has this been fixed and released? https://www.npmjs.com/package/react-native-modal-dropdown lists 0.4.3 as latest

@ajonno @DanAndreasson
Available now via npm.

brilliant many thanks

still seeing this issue if I render my own component :/ even after setting animated = {false} and keyboardShouldPersistTaps = 'always'

Close the issue?

Hi, i'm not sure whether it's the same problem, but i have a page with multiple dropdowns, and if one of them is expanded i have to tap twice to open another one, first tap will close the current dropdown, second will expand the other one. I'm using the default renderRow, tried both
animated={false}
and
keyboardShouldPersistTaps="always"

It is still happening to me with 0.5.0.

@Dror-Bar
Hey, I am having the issue with having to double click and the dropdown is in a textInput, same as you. How did you fix it?
Thanks

Passing keyboardShoudPersistTaps="always" in component works for me


Error no such file or directory /dist/oc_or

Discussed in https://github.com/SubGlitch1/OSRipper/discussions/6

Originally posted by Trusthoodies April  2, 2022
I get the error on different linux systems.
The error is: No such file or directory: /Home/OSRipper/ocr_or
i cloned the github in my linux system

can you please tell me which options you used and copy+paste the exact error. Thank you

Thanks for the reply! I got the same error as psycho2712. He also started a discussion 5 daya ago. It doesnt matter wich option i choose.

hey, thank you for your detailed report. this seems to be the same issue as this https://github.com/SubGlitch1/OSRipper/issues/3
this error arises because originally i have made this program to be run on macOS which has a different way of compiling than linux. I have fixed it i think it should work not. Please clone again and let me know

It worked! thank you very much!.

Now i have another problem, i filled in the right ip address and port but i don't see anything if i run it on my other laptop in the same network. Do you know what this can be? and does it support nrok?

u must have selected the replication and trojanisation option. That is only available for macos machines for now. Please deselect that option, generate a new one and let me know how it goes

Do you mean the obfuscate option? i didnt select that, im using a windows machine for the target. im using option 4 the encrypted tcp.

Do you mean the obfuscate option? i didnt select that, im using a windows machine for the target. im using option 4 the encrypted tcp. it doesnt work
hahahahah i understand now. I have recently added a antivm detector which lowers the vt score. it seems to detect your windows machine as a vm (which is propably is) i will disable this for now and make it optional later.

Thank you!

https://github.com/SubGlitch1/OSRipper/commit/7de8867c083bd52124f737f1054151c9b92d6786
here u got brother.
Let me know how it goes

Thank you for the fast reply!  unfortunately he doesn't yet. I have not selected the obfuscate option. I also wanted to test the bind option and it doesn't work either.

This is very strange as it works for me. I will setup a virtual windows machine and test.

Thanks! Did you test it on a vm?

It still doesnt work for me

Do you maybe have discord or something?

Thanks! Did you test it on a vm?

i am busy with a project for university right now which is due tomorow. After tomorow however i plan on heavily developing this so do not worry

Thanks! Goodluck with your project!

hey brother. I have just properly thought about this. If you generate on linux that means that you cannot compile an .exe so that means u must be running it on python on the windows host. That machine probably does not have the dependencies and the program is therefore not running. If you choose to compile it the dependencies will be in the backdoor itself.

So you tink i need to run this on a Windows machine and then it will work?

yeah just compile it. You can also try it on linux. But obv you have yo compile it on the same OS as the target system

Thanks i will give it a try!

Thanks i will give it a try!

pls let me know. Also to answer your question no, I have stopped using discord after getting banned 6 times in a row.

The obfuscate funtion doesnt work on windows, i got the error OSRipper-0.2.1/dist/ocr_or doesnt exist

hey bro thank you for ur patience. I have partitioned my PC and am now running a windows instance. I will make fix this and notify you here when it is done. Thank you for your help. i do appreciate it

The obfuscate funtion doesnt work on windows, i got the error OSRipper-0.2.1/dist/ocr_or doesnt exist

this commit might have fixed it brother

I tested it this morning on my Windows pc but i got this error:

Thanks! i will test it today! Is the OSRipper also compitable with NROK?

Thanks! i will test it today! Is the OSRipper also compitable with NROK?

i am developing version 2.3 rn. I will probably integrate tor hidden services because it is more anonymous and it does not require port forwarding

you need to add it to path.
https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/
just put the metasploit directory here

Hello, Thanks for you help! i came alot further. But now when i open it on my other Windows client i get the following "Error"
I made the .py file to exe with auto-py-to-exe

And it is stuck on sending stage.

why are you compiling it manually?

osripper has a option for that you need to use that.

Which option is that? I dont see thst option, im sorry if i sound dumb but i can t see that option.

dont worry my friend it happens to the best of us. this is the option
'Do you want to compile the script into a binary'
Just choose y here

this should have solved your issue i will close now


Add a stack template for the simple/advanced project starting points

I often want to start a new stacklock2nix project, but find myself copying-and-pasting from a previous example.
It would be convenient to use stack new and stack's templates ( https://github.com/commercialhaskell/stack-templates ) to get an starting point.
Trivia: It seems like stack-templates might not be accepting submissions though ( https://github.com/commercialhaskell/stack-templates/pull/121 ) so not sure if this is a dead-end.

Maybe a better alternative is a nix template that can be cloned via nix flakes?

Yeah, that sounds like a good idea!  I've thought of doing so, but haven't gotten around to it yet.
I don't personally use stack templates of Nix flake templates much myself, but I think other people definitely do.  I imagine people in the Nix ecosystem will be more familiar with nix flake templates, but I don't have a strong opinion here.
I'm also not quite sure what goes in to creating or maintaining a Nix flake template, but if someone wanted to send a PR adding one (or at least explain in detail what I need to do to add one), I'd happily merge it.
A few things I've seen:

There are a few Haskell flake templates available: https://github.com/NixOS/templates.  It probably wouldn't be crazy to add one for stacklock2nix (although maintaining it in a separate repo might be annoying).
Here's an example Haskell Nix library that provides a flake template: https://haskell.flake.page/start and https://github.com/srid/haskell-flake.  Something like this would probably be easy to add to the stacklock2nix repo.

$ stack new
Usage: stack new PACKAGE_NAME [--bare] [TEMPLATE_NAME] [-p|--param KEY:VALUE]
                 [DIR(S)] [--omit-packages] [--force] [--ignore-subdirs]
                 [--setup-info-yaml URL] [--snapshot-location-base URL] [--help]
  Create a new project from a template. Run `stack templates' to see available
  templates. Will also initialise if there is no stack.yaml file. Note: you can
  also specify a local file or a remote URL as a template; or force an
  initialisation.

Available options:
  PACKAGE_NAME             A valid package name.
  --bare                   Do not create a subdirectory for the project
  TEMPLATE_NAME            Name of a template - can take the form
                           [[service:]username/]template with optional service
                           name (github, gitlab, or bitbucket) and username for
                           the service; or, a local filename such as foo.hsfiles
                           or ~/foo; or, a full URL such as
                           https://example.com/foo.hsfiles.
...

It looks like Stack templates can be on an arbitrary github repo, or just any URL.  That might be pretty convenient for us as well.
Not sure whether more users would prefer a Nix Flake template, or a Stack template.

yeah; i've definitely used the url-based stack templates before; but i think a nix template might make the most sense idiomatically here, because in theory one may not even have a system-installed stack ...

there's also this - https://github.com/cookiecutter/cookiecutter - but i've never personally used it before.


Expand test coverage in the web-sockets/socketHandler.js file

https://coveralls.io/builds/4658528 Looks like it is covered about 86%...
Locally you can get this number by running npm test. That creates an output to console and the more useful coverage directory. In the coverage directory (run it with a static server like http-server) you can drill into the coverage in the browser and see exactly what lines are not tested currently.

@kcneagle this one is a little more complicated then the other but it's also writing additional tests that cover edges that the existing ones miss.

Done https://github.com/ansble/monument/pull/470


Adding bit manipulation intrinsics:

I could add the bit manipulation intrinsics from the bitintr library to this one. I have two questions:

[ ] IIUC the intrinsics here should be marked with #[target_feature] and be unsafe, that is, they are guaranteed to generate the right CPU instructions on the targets that support a feature. Portability is left to third-party crates, is this correct?
[ ] Given the organization in this crate, I would be adding the following modules (do they make sense?):

x86::{bmi1, bmi2, abm, tbm}
arm::{v5, v6, v7, v8}

[ ] Should the crate be renamed to something else?

@gnzlbg is this issue mostly done now?

Yes, this is finished.


glances: <IP_ADDRESS> -> <IP_ADDRESS>

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for glances is: "Cross-platform curses-based monitoring tool"
meta.homepage for glances is: "https://nicolargo.github.io/glances/"
meta.changelog for glances is: "https://github.com/nicolargo/glances/blob/v<IP_ADDRESS>/NEWS.rst"
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found <IP_ADDRESS> with grep in /nix/store/0r0mhfg3p7iv9ghxr8nwvsk3rgn4acsb-glances-<IP_ADDRESS>
found <IP_ADDRESS> in filename of file in /nix/store/0r0mhfg3p7iv9ghxr8nwvsk3rgn4acsb-glances-<IP_ADDRESS>

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
glances

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/0r0mhfg3p7iv9ghxr8nwvsk3rgn4acsb-glances-<IP_ADDRESS> \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A glances https://github.com/r-ryantm/nixpkgs/archive/bfcd7eb6eb9bfb916d32009b1f17990ff6bfe95d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/0r0mhfg3p7iv9ghxr8nwvsk3rgn4acsb-glances-<IP_ADDRESS>
ls -la /nix/store/0r0mhfg3p7iv9ghxr8nwvsk3rgn4acsb-glances-<IP_ADDRESS>/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

glances

Maintainer pings
cc @jonringer @primeos @k0ral for testing.

This version does not exist. The latest version is https://github.com/nicolargo/glances/releases/tag/v<IP_ADDRESS>.

Looks like tags with the wrong version got accidentally pushed. I was already confused by the RSS feed:

Anyway, I'll close this in favor of https://github.com/NixOS/nixpkgs/pull/168911.


replace existing NIZK proofs with range proofs?

0-or-1 on selection (disjunctive) vs. range proof?

is it more efficient to use range proofs everywhere or better to keep the 0-or-1 disjunctive proofs when what we want is a range of [0, 1]?
software engineering: it's preferable to use range proofs everywhere and eliminate disjunctive proofs

no placeholders means we definitely need range proofs for contest limits
presumably, for constant proofs, the overhead of range proofs is not desirable

Spec p. 20 ("verification 4") walks through range proof verification

Im going to hold off touching anything from ChaumPedersen.kt until you have stabilized code.
I earlier did some stuff with

@param hashHeader Optional additional values to include in the start of the challenge computation hash.
@param hashFooter Optional additional values to include in the end of the challenge computation hash.

to try to make general interfaces. esp influenced by the attached doc. not sure if new changes affect that.
youre welcome to redo or refactor any of that, as you see fit. Willing to review if you want.

electionguard_proofs.pdf

I'm looking forward to tackling this part of the implementation. Hopefully over the weekend.

Done!


Debian/Ubuntu Repository: unmet dependencies

When trying to install Jitsi Desktop, I get
The following packages have unmet dependencies:
 jitsi : Depends: liblibjitsi-jni (< 1.1-22-g5c9346c5-20.04~focal.1) but 1.1-23-g86401561-20.04~focal is to be installed

Steps to Reproduce for Ubuntu 20.04 LTS (focal)
sudo apt install libcanberra-gtk-module libavcodec-extra
sudo curl -fsSL https://nexus.ingo.ch/jitsi-desktop-unstable/jitsi-desktop-key.asc | sudo apt-key add -
echo "deb [arch=$(dpkg --print-architecture)] http://nexus.ingo.ch/jitsi-desktop-unstable $(lsb_release -cs)/" | sudo tee /etc/apt/sources.list.d/jitsi-desktop.list > /dev/null
sudo apt update
sudo apt install jitsi

Steps to Reproduce for Ubuntu 22.04 LTS (jammy) or newer
sudo apt install libcanberra-gtk-module libavcodec-extra
sudo wget -qO /etc/apt/keyrings/jitsi-desktop.gpg https://nexus.ingo.ch/jitsi-desktop-unstable/jitsi-desktop-key.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/jitsi-desktop.gpg] http://nexus.ingo.ch/jitsi-desktop-unstable jammy/" | sudo tee /etc/apt/sources.list.d/jitsi-desktop.list > /dev/null
sudo apt update
sudo apt install jitsi

Hm, sorry about that. I need to find a better way to publish newer libjitsi versions to an APT repo. Seems the only way is to have distinct repos for each library, and then only migrate the ones referenced by Jitsi Desktop to a combined unstable and release repo.

r2.14.695 should solve the immediate problem, but it'll pop up again when updating libjitsi.

Mhm. Build 695 is a lower number than the previous 721. Was that intended?
Perhaps that is the reason, it still does not work. Anyway, it does not work either, if I go for
sudo apt install jisti=2.14.695.*

Therefore, I think the issue is something else:
APT seems to look for a .1 at the end of the version string. For example, if I go for
apt policy *jitsi*

all candidates are there. Furthermore, I am able to install via
sudo apt install libcanberra-gtk-module libavcodec-extra
sudo apt install libjitsi-jni=2.14.695.*
sudo apt install jitsi=2.14.695.*

better way to publish newer libjitsi versions to an APT repo

APT should be able to handle that, or? My current bet, I do not know for sure, it has problems to match version strings. To test my hypothesis, could you create a Depends which does not include those maximum versions with .1 at the end?

695 vs. 721: Actually, 721 shouldn't have ended up in the repo... that was a build from the branch that fixed all the installer builds. The equivalent build from branch master was 693. I need to clean the repo so that 721 disappears.
The .1 is so that patch releases could be built. The version constraint is strictly smaller than x.y.z-githash-distroDate~distroCodename**.1** and the packages are all x.y.z-githash-distroDate~distroCodename. So this should work.
What's with the libcanberra-gtk-module? I haven't seen that yet. Are you using a non-Gnome Ubuntu flavor?

[issue] will pop up again when updating libjitsi

Seems really to work not automatically …

What's with the libcanberra-gtk-module?

I am on vanilla Ubuntu 20.04 LTS. While looking at the console output, I get an warning related to that. Jitsi Desktop works without it. I am just going or it, to avoid that message. Shall I investigate it? The other package libavcodec-extra is to enable the audio-codec AMR-WB. But you know that.

I guess I'll create separate Apt repositories for jitsi-lgpl-dependencies and libjitsi, similar to a ppa. Then copy the specific package version required by Jitsi into Jitsi's Apt repo. Not sure when I get to it though.


On Safari, top menu is all crowded together [WARIS]

ASSIGNED TO WARIS

ZenHub Information
This information is updated automatically. To modify it, please use ZenHub.

@leadersheir has this been resolved?

No, I couldn't take this because of compatibility issues with safari. I'm on linux and I'm a bit too busy to make it work with workarounds. Means I cannot take this on.


AmazonSecurityTokenServiceClient Client.AssumeRoleAsync(Role) throwing the exception "Unable to get IAM security credentials from EC2 Instance Metadata Service."

Description
My employers network security team has advised us that we can no longer use an IAM User or AccessKey/SecretKey
keypairs (prod or nonprod) to obtain credentials for AWS S3 Glacier and S3 services which my application uses.
This included not allowing the use of an encrypted shared credentials profile (which had been working well for me)
I have been advised to use Assume Role  (AssumeRoleAsync()) instead, but it's giving me a fairly generic error ("Unable to get IAM security credentials from EC2 Instance Metadata Service.")
Reproduction Steps
Exception thrown when executing AssumeRoleAsync()
'''
Glacial assume role error (Exception):
Unable to get IAM security credentials from EC2 Instance Metadata Service.
Stack:
at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.FetchCredentials()
at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.GetCredentials()
at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.GetCredentialsAsync()
at Amazon.Runtime.Internal.CredentialsRetriever.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.MetricsHandler.InvokeAsync[T](IExecutionContext executionContext)
at Glacial.Program.DoAssumeRoleG(AmazonSecurityTokenServiceClient Client)
in C:\Users\rheada01\Source\Repos\glacial-archiver\Glacial\Program.cs:line 519
Inner ex:  (none)
RoleArn: arn:aws:iam::{redact}:role/Glacial-Archiver-Nonprod
RoleSessionName: GlacialArchiverGSession-08-2021-105627
'''
Code snippet:
'''C#
/// Get temporary credentials using AssumeRoleAsync()
/// As I am no longer allowed to use an IAM user or public/private keypairs (even from an
/// encrypted shared credentials profile) I am back to trying to get AssumeRoleAsync() to work
/// (without success so far)
private static async Task AssumeGlacierRoll()
{
        GRoleFail = false;

        AssumeGRoleReq = new AssumeRoleRequest
        {
            //Parameters below are stored in a configuration file we read at runtime (DoSetup())
            RoleArn = GlacierRoleArn,                   // The arn for the role I want to assume
            RoleSessionName = GlacierRoleSessionName,   // A unique session name (name-mm-yyyy-hhmnss)
            DurationSeconds = 14400                     // Time in seconds before temp credintials expire
        };

        // Get a security token service client to work with AssumeRoleAsync()
        AmazonSecurityTokenServiceClient Client = new AmazonSecurityTokenServiceClient(RegionEP);

        // While the following code looks clunky, it's the only way I found to be able to use
        // try/catch with an async method in DoAssumeRoleG()
        Task RG = DoAssumeRoleG(Client);
        RG.Wait(); // Force sync

        if (GRoleFail)
        {
            Logger(GRoleFailMess + " RoleArn: " + GlacierRoleArn +
                " RoleSessionName: " + GlacierRoleSessionName, 3);
        }
        else
        {
            AssumedGRoleUser = AssumedGRoleResp.AssumedRoleUser;
            GRoleCredentials = AssumedGRoleResp.Credentials;
        }
    }

    private static async Task DoAssumeRoleG(AmazonSecurityTokenServiceClient Client)
    {
        GRoleFail = false;
        try
        {
            AssumedGRoleResp = await Task.Run(() => Client.AssumeRoleAsync(AssumeGRoleReq));
        }
        catch (ExpiredTokenException e1)
        {
            GRoleFail = true;
            GRoleFailMess = "Glacial assume role error (ExpiredTokenException): " + e1.Message;
        }
        catch (MalformedPolicyDocumentException e2)
        {
            GRoleFail = true;
            GRoleFailMess = "Glacial assume role error (MalformedPolicyDocumentException): " + e2.Message;
        }
        catch (PackedPolicyTooLargeException e3)
        {
            GRoleFail = true;
            GRoleFailMess = "Glacial assume role error (PackedPolicyTooLargeException): " + e3.Message;
        }
        catch (RegionDisabledException e4)
        {
            GRoleFail = true;
            GRoleFailMess = "Glacial assume role error (RegionDisabledException): " + e4.Message;
        }
        catch (Exception ex)
        {
            GRoleFail = true;
            GRoleFailMess = "Glacial assume role error (Exception): " + ex.Message +
                " Stack: " + ex.StackTrace + " Inner ex: " + ex.InnerException;
        }
    }

'''
Logs

'Glacial.exe' (CoreCLR: DefaultDomain): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Users\rheada01\Source\Repos\glacial-archiver\Glacial\bin\Debug\netcoreapp3.1\Glacial.dll'. Symbols loaded.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Runtime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Threading.Tasks.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Collections.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Step into: Stepping over non-user code 'Glacial.Program.Main'
Step into: Stepping over non-user code 'Glacial.Program.d__43..ctor'
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Users\rheada01\Source\Repos\glacial-archiver\Glacial\bin\Debug\netcoreapp3.1\AWSSDK.SecurityToken.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Users\rheada01\Source\Repos\glacial-archiver\Glacial\bin\Debug\netcoreapp3.1\AWSSDK.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\netstandard.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Users\rheada01\Source\Repos\glacial-archiver\Glacial\bin\Debug\netcoreapp3.1\AWSSDK.Glacier.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Net.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Users\rheada01\Source\Repos\glacial-archiver\Glacial\bin\Debug\netcoreapp3.1\AWSSDK.S3.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Console.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Users\rheada01\Source\Repos\glacial-archiver\Glacial\bin\Debug\netcoreapp3.1\System.Configuration.ConfigurationManager.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Collections.Specialized.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Runtime.Extensions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Threading.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Private.Uri.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.IO.FileSystem.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Xml.ReaderWriter.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Private.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Runtime.InteropServices.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Net.WebClient.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.ComponentModel.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Threading.Thread.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Memory.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Security.Cryptography.Algorithms.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Text.Encoding.Extensions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.ComponentModel.TypeConverter.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.ObjectModel.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Linq.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Drawing.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Users\rheada01\Source\Repos\glacial-archiver\Glacial\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.1\Microsoft.Data.SqlClient.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Data.Common.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Transactions.Local.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Diagnostics.DiagnosticSource.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Collections.Concurrent.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Diagnostics.Tracing.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Threading.Timer.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Resources.ResourceManager.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Threading.ThreadPool.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Security.Cryptography.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Buffers.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Text.Encoding.CodePages.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\Microsoft.Win32.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Diagnostics.Process.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.ComponentModel.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Text.RegularExpressions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Diagnostics.TraceSource.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Net.Http.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Runtime.InteropServices.RuntimeInformation.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Net.Security.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Security.Cryptography.X509Certificates.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Net.Requests.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Net.Sockets.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Threading.Overlapped.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Net.NameResolution.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Exception thrown: 'Amazon.Runtime.AmazonServiceException' in System.Private.CoreLib.dll
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Diagnostics.StackTrace.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Reflection.Metadata.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Collections.Immutable.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.IO.MemoryMappedFiles.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Glacial.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.18\System.Diagnostics.Debug.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
The program '[16948] Glacial.exe' has exited with code 1 (0x1).
Environment

SDK Version: AWSSDK.Core (<IP_ADDRESS>), AWSSDK.SecurityToken (<IP_ADDRESS>)
Package Version: <IP_ADDRESS>
OS Info: Microsoft Windows Server 2016 Standard (1607)
Build Environment: Microsoft Visual Studio Professional 2019 (Version 16.10.4)
Targeted .NET Platform:  .NET Core 3.1 Console Application

Resolution

[ ] :wave: I can/would-like-to implement a fix for this problem myself

This is a :bug: bug-report

Hi @Lurchicus,
Good morning.
Just for your reference, Credential and profile resolution details about the credential search order in AWS SDK for .NET.
Could you please share if you are running your application locally or on an EC2 instance?
If running locally, your machine is not an EC2 instance and hence it's failing with the mentioned error (assuming the credentials are not found at the locations mentioned in link above).
If running on EC2 instance, kindly create an IAM role and attach it to your instance on which you are running the .NET code (IAM Role: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). Also, make sure that you can reach the metadata URL http://<IP_ADDRESS>/latest/meta-data/ from within the instance (also refer https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html).
Hope this helps.
Thanks,
Ashish

Hi Ashish,
I am not using an EC2 instance so I'm running locally (via my laptop when debugging on an on-prem Windows Server when in production).
I guess what I really need to do is find out how to go from a local server to AWS S3 Glacier/AWS S3.
Previously I had been using an encrypted shared profile...
chain.TryGetAWSCredentials("basic_profile", out awsCredentials);

This had been working fine for my application but I was advised by our network security team that I have to change my application to use Assume Role to obtain temporary credentials. I am no longer allowed to use an IAM User or the AccessKey/SecretKey keypair.
Thank you
Dan Rhea

Hi Ashish,
I am not using an EC2 instance so I'm running locally (via my laptop when debugging on an on-prem Windows Server when in production).
I guess what I really need to do is find out how to go from a local server to AWS S3 Glacier/AWS S3.
Previously I had been using an encrypted shared profile...
chain.TryGetAWSCredentials("basic_profile", out awsCredentials);

This had been working fine for my application but I was advised by our network security team that I have to change my application to use Assume Role to obtain temporary credentials. I am no longer allowed to use an IAM User or the AccessKey/SecretKey keypair.
Thank you
Dan Rhea

@Lurchicus Thanks for your response. Since this is not a bug in the SDK, I would change this issue to guidance. One option could be that your network security team could provide you with some interface to generate temporary session credentials which you could use in AWS environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN) or shared credential file. Not sure what guidance we could provide here, please advise if we should close this issue.

Hi Ashish,
I have been advised that I am not allowed to use AWS environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN) or shared credential file. I was previously using a shared credential file.
So is it simply not possible to access AWS with AWS SDK.NET from a non-EC2 instance Windows Server except using the methods I've been told I cannot use? I have questioned this internally and I keep being directed to use Assume Role.
Thank you

Hi Ashish,
I have been advised that I am not allowed to use AWS environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN) or shared credential file. I was previously using a shared credential file.
So is it simply not possible to access AWS with AWS SDK.NET from a non-EC2 instance Windows Server except using the methods I've been told I cannot use? I have questioned this internally and I keep being directed to use Assume Role.
Thank you

@Lurchicus I'm afraid, no. As a workaround, your security team could provide you an API endpoint internal to your organization to fetch credentials which you could use in the service client constructor overload to specify credentials.

Hi Ashish,
I am already on my organizations internal network (via VPN when debugging from my laptop). The Windows Server is part of our internal network as well.
It looks like the security restrictions I've been told to comply with will prevent me from being able to access AWS S3 or AWS S3 Glacier from our Windows Servers going forward.
It looks like our automated Windows archiving tools are getting an early end of life, unless I can get a security exception to go back to using an encrypted shared credentials file.
Thank you for your assistance

Leaving this open for one more round.


OCM tutorial seems incomplete

The step that is supposed to demonstrate Accessing the share seems to be incomplete. It ends with Accessing the list of shares and the tutorial does not show how Marie can get access to the "Example file" text that Einstein uploaded.

The sending side does have ocdav enabled and there is a dataprovider service which I guess must be the "Data server" to which the file gets uploaded.

Hm
root@e4722163a802:/etc/revad# /reva/cmd/reva/reva -host localhost:19000 -insecure
reva-cli 9567525 (rev-9567525)
Please use `exit` or `Ctrl-D` to exit this program.
>> login basic
username: einstein
password: OK
>> mkdir testdir
error: code=CODE_INTERNAL msg="gateway could not find space for ref=<nil>:gateway: grpc failed with code CODE_INTERNAL" support_trace="adc842f406dca456cafa00098c251e60"
>>

Maybe the tutorial is not even working with the latest revad versions, or maybe this error is due to something that's specific to the ocm-test-suite image and config. I'll try running it with the exact config from examples/ocmd

docker run -d --network=testnet --name=ocmd-server-1.docker -e HOST=ocmd-server-1 revad
docker run -d --network=testnet --name=ocmd-server-2.docker -e HOST=ocmd-server-2 revad
docker exec -it ocmd-server-1.docker /reva/cmd/reva/reva -insecure -host=localhost:19000

Working on this in https://github.com/cs3org/ocm-test-suite/tree/revad-edge-testing since I want to use the exact filenames as the tutorial and users/providers.demo.json have been edited in the main branch of the ocm-test-suite.

-> https://github.com/cs3org/reva/issues/3365

-> https://github.com/cs3org/ocm-test-suite/issues/63

Note: The upload should be done to some path under /home/ and you need to
mkdir -p /var/tmp/reva/data/einstein/home
on the revad server first.
In the tutorial it says to mkdir /home/my-folder first, will try if that also works.

No, that step fails if /var/tmp/reva/data/einstein/home doesn't exist:
>> mkdir /home/my-folder
error: code=CODE_NOT_FOUND msg="path not found when creating container" support_trace="ffd1f60b92a7582c0e490252ad34c367"

Testing this how with Nextcloud->Reva->Reva->Nextcloud configuration.

>> ocm-share-create -grantee marie -idp https://revanc2.docker /home/my-folder
error: code=CODE_INTERNAL msg="error fetching remote user details" support_trace="34ea066ee6384723a7b5937a58518fdd"
>> ocm-find-accepted-users
+----------+-------------------------+------+-------------+
| OPAQUEID | IDP                     | MAIL | DISPLAYNAME |
+----------+-------------------------+------+-------------+
| marie    | https://revanc2.docker/ |      | marie       |
+----------+-------------------------+------+-------------+
>> ocm-share-create -grantee marie -idp https://revanc2.docker/ /home/my-folder
error: code=CODE_INTERNAL msg="error creating share" support_trace="45fa6ae85774650b3987605eaf538ae4"
>>

2022-11-04 14:40:46.32 INF ../../reva/pkg/ocm/share/manager/nextcloud/nextcloud.go:214 > am.do response 201 {"id":{"opaque_id":null},"resource_id":{"opaque_id":"fileid-\/einstein\/files\/my-folder"},"permissions":{"permissions":{"add_grant":false,"create_container":false,"delete":false,"get_path":false,"get_quota":false,"initiate_file_download":false,"initiate_file_upload":false}},"grantee":{"type":1,"id":{"opaque_id":"marie","idp":"https:\/\/revanc2.docker\/"}},"owner":{"id":{"opaque_id":"einstein","idp":"https:\/\/revanc2.docker\/"}},"creator":{"id":{"opaque_id":"einstein","idp":"https:\/\/revanc2.docker\/"}},"ctime":{"seconds":0},"mtime":{"seconds":0}} pid=7 pkg=rgrpc traceid=74c9fa86e7270732e92daf34e0d16c26
2022-11-04 14:40:46.622 ERR ../../reva/internal/grpc/services/ocmshareprovider/ocmshareprovider.go:181 > error creating share error="error sending OCM POST: sender: error sending create ocm core share post request: 500 Internal Server Error: {\n  \"code\": \"SERVER_ERROR\",\n  \"message\": \"grpc create ocm core share request failed\"\n}" pid=7 pkg=rgrpc traceid=74c9fa86e7270732e92daf34e0d16c26

Improved error message:
>> ocm-share-create -grantee marie -idp https://revanc2.docker/ /home/my-folder
error: code=CODE_INTERNAL msg="error creating share: error sending OCM POST: sender: error from https://revanc2.docker/ocm/: 500 Internal Server Error: {\n  \"code\": \"SERVER_ERROR\",\n  \"message\": \"grpc create ocm core share request failed\"\n}" support_trace="72ee4eb0f21d2c75cf9a407f2a099622"

Debugging this more in https://github.com/pondersource/sciencemesh-php/issues/102
Once that is working we can also show it in the ocmd tutorial.


Unable to use C# 8 using statements

Not sure if this belongs here as a matter of compiler configuration or if this is an issue with roslyn...
However, I am unable to compile a simple .csx with the latest dotnet-script using using statements. I have run into this when trying to convert a simple console app using only C# 9 top-level statements in Program.cs to a .csx script.
The following script only works without using using or await using:
using System.IO;
using System.Text;

var data = Encoding.UTF8.GetBytes("test\n");
await using var file = File.OpenWrite("test.txt");
await file.WriteAsync(data, 0, data.Length);
await file.FlushAsync();
file.Close();

C:\repos\script-using-repro>dotnet tool update -g dotnet-script
Tool 'dotnet-script' was reinstalled with the latest stable version (version '1.0.1').

C:\repos\script-using-repro>dotnet script test.csx
C:\repos\script-using-repro\test.csx(5,7): error CS1519: Invalid token 'using' in class, record, struct, or interface member declaration
C:\repos\script-using-repro\test.csx(5,17): error CS1002: ; expected
C:\repos\script-using-repro\test.csx(5,17): error CS0103: The name 'file' does not exist in the current context
C:\repos\script-using-repro\test.csx(6,7): error CS0103: The name 'file' does not exist in the current context
C:\repos\script-using-repro\test.csx(7,7): error CS0103: The name 'file' does not exist in the current context
C:\repos\script-using-repro\test.csx(8,1): error CS0103: The name 'file' does not exist in the current context

Unfortunately this is a limitation of Roslyn. You cannot use using statements as global script variables.
Top level CSX variables are compiled into fields of the script class at runtime.
This typically is opaque to the user and acts as "global variable". However, it doesn't work with using declarations, because you cannot have a using on a field.
On the other hand, this works:
var data = Encoding.UTF8.GetBytes("test\n");

{
    await using var file = File.OpenWrite("test.txt");
    await file.WriteAsync(data, 0, data.Length);
    await file.FlushAsync();
    file.Close();
}

since you have an artifical scope and file is now really a local not a field on the script class.
PS. System.IO and System.Text are automatically available in the script context 🙂

Thanks for the info and workaround!


Can I use this for the live ESPN Draft?

Sport
All
Summary
Hey all,
Can i use this during the live ESPN draft? will that reflect as players make changes if I call fetch again?

Unfortunately you cannot. Currently ESPN uses different APIs for the live draft so the data won't reflect correctly until afterwards.
I tried looking into it last year and was not able to get it working live.

Dang, thanks for the quick response!

You beat me to the punch Travis. This is very cool either way.

So I know this is kind of last minute, but I got something working for live snake drafts on ESPN and I take your current roster, and the remaining available players and feed it to ChatGPT through an API call: https://github.com/ianfinley89/espn-ffassistant
It's pretty brittle however because I'm using selenium and general XPATHs so if anything changes on ESPNs side, it will break.

Nice, thats a cool use cases using ChatGPT an selenium!

Thanks! I used the espn-api to get the initial list of available players as well as the total teams. I'm not sure how to get the league scoring attributes though (i.e PPR, vs STD, vs custom)

You should be able to get it in the league class settings field that has scoring_type defined!

So I know this is kind of last minute, but I got something working for live snake drafts on ESPN and I take your current roster, and the remaining available players and feed it to ChatGPT through an API call: https://github.com/ianfinley89/espn-ffassistant

That's pretty cool. I made a similar thing, but get the players with a browser extension. Those are sent to a local http server. GPT is given the files on the "$draft_pick-20" players, gives you an overview.
https://github.com/Zinkelburger/Fantasy-Football-Tool


Allow .env to exist outside of working directory

Hey @PhilippBaschke!
As mentioned in the docs, the ACF key can be read from an .env file, as long as the .env and composer.json files are in the same directory. However, I'm working on a project where .env and composer.json are in different directories. The composer.json file is in the root directory, and the .env file is in a subdirectory, like this:
root_directory/
├── composer.json
├── subdirectory/
│   ├── .env

When the loadDotEnv function checks for .env in the current working directory, it doesn't find the .env file in the subdirectory, and my ACF key isn't read.
https://github.com/PhilippBaschke/acf-pro-installer/blob/772cec99c6ef8bc67ba6768419014cc60d141b27/src/ACFProInstaller/Plugin.php#L243-L249
I'd like to make it possible to specify the path that's passed to the Dotenv constructor on line 246. Does that sound like a feature you'd consider merging?
Thanks for all the hard work you've put into this plugin!
– James

I'd love this to be added too.
My .env is in conf directory one level above my root directory

I'd love this to be added too.
My .env is in conf directory one level above my root directory

@atticus7 As this Composer plugin has not received an update for 5 years you should not depend on it. I am maintaining a package that gives you the same functionality as this one but also offering configurable .env file locations: https://github.com/ffraenz/private-composer-installer

@atticus7 As this Composer plugin has not received an update for 5 years you should not depend on it. I am maintaining a package that gives you the same functionality as this one but also offering configurable .env file locations: https://github.com/ffraenz/private-composer-installer


Issue with split when running this lib as dependency of node-sass

This works fine in MAC environment but fails in windows. I have no clue whether it has anything to do with the parent inheriting this library. How can i check the same?
Here's my code while trying to generate SASS.
This appears to occur only on windows though.
const fs = require( 'fs-extra' );
const glob = require( 'glob-fs' )( {gitignore: true} );
const chalk = require( 'chalk' );
const sassImport = require( 'node-sass-import' );
const sass = require( 'node-sass' );
const buildenv = ( function () {
    if ( process.argv[ 2 ] === 'production' ) {
        return true;
    }
} )();

glob.readdirStream( './src/sass/*.scss', {} )
    .on( 'data', function ( file ) {
        sass.render( {
            file: file.relative,
            outFile: file.name + '.css',
            //includePaths: [ 'lib/', 'mod/' ],
            outputStyle: 'compressed',
            sourceMap: buildenv ? true : false
        }, ( error, result ) => {
            if ( error ) {
                console.log( chalk.white.bgRed.bold( 'Sass Compliation' ) );
                console.log( chalk.white.bold( error.formatted ) );
            } else {
                fs.outputFile( './build/css/' + file.name + '.css', result.css, err => {
                    if ( err ) {
                        console.log( chalk.white.bgRed.bold( 'Error writing css file!' ) );
                    } else {
                        console.log( chalk.white.bgGreen.bold( 'Sass Compiled ' + file.basename ) );

                    }
                } );
            }
        } );

    } );

Here's the log generated on running in verbose mode.
C:\Users\akshayr2\Desktop\fq-test\node_modules\glob-fs\node_modules\micromatch\l
ib\utils.js:66
    return fp.split('\\').join('/');
             ^

TypeError: Cannot read property 'split' of undefined
    at Object.unixify (C:\Users\akshayr2\Desktop\fq-test\node_modules\glob-fs\no
de_modules\micromatch\lib\utils.js:66:14)
    at Function.matcher (C:\Users\akshayr2\Desktop\fq-test\node_modules\glob-fs\
node_modules\micromatch\index.js:288:19)
    at module.exports (C:\Users\akshayr2\Desktop\fq-test\node_modules\glob-fs\mi
ddleware\include.js:19:10)
    at Object.include (C:\Users\akshayr2\Desktop\fq-test\node_modules\glob-fs\in
dex.js:196:14)
    at Object.setPattern (C:\Users\akshayr2\Desktop\fq-test\node_modules\glob-fs
\index.js:124:10)
    at Object.readdirStream (C:\Users\akshayr2\Desktop\fq-test\node_modules\glob
-fs\lib\readers.js:92:12)
    at Object.<anonymous> (C:\Users\akshayr2\Desktop\fq-test\bin\tasks\sass.js:1
2:6)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)

npm verb lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
npm verb lifecycle<EMAIL_ADDRESS>PATH: C:\Program Files\nodejs\node_m
odules\npm\bin\node-gyp-bin;C:\Users\akshayr2\Desktop\fq-test\node_modules\.bin;
C:\Python27\;C:\Python27\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\Syste
m32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\nodejs\;C:
\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Program Files\Git\min
gw64\bin;C:\Program Files\Git\usr\bin;C:\Ruby23\bin;C:\Users\akshayr2\AppData\Ro
aming\npm
npm verb lifecycle<EMAIL_ADDRESS>CWD: C:\Users\akshayr2\Desktop\fq-te
st
npm info lifecycle<EMAIL_ADDRESS>Failed to exec sass script
npm verb stack Error<EMAIL_ADDRESS>sass: `node ./bin/tasks/sass && node ./
bin/tasks/postcss`
npm verb stack Exit status 1
npm verb stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_mod
ules\npm\lib\utils\lifecycle.js:255:16)
npm verb stack     at emitTwo (events.js:106:13)
npm verb stack     at EventEmitter.emit (events.js:191:7)
npm verb stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_mod
ules\npm\lib\utils\spawn.js:40:14)
npm verb stack     at emitTwo (events.js:106:13)
npm verb stack     at ChildProcess.emit (events.js:191:7)
npm verb stack     at maybeClose (internal/child_process.js:877:16)
npm verb stack     at Process.ChildProcess._handle.onexit (internal/child_proces
s.js:226:5)
npm verb pkgid<EMAIL_ADDRESS>npm verb cwd C:\Users\akshayr2\Desktop\fq-test
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\
node_modules\\npm\\bin\\npm-cli.js" "run" "sass" "--verbose"
npm ERR! node v6.9.2
npm ERR! npm  v3.10.9
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>sass: `node ./bin/tasks/sass && node ./bin/tasks/pos
tcss`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>sass script 'node ./bin/tasks/sass &&
node ./bin/tasks/postcss'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the fq-corporate package,

npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./bin/tasks/sass && node ./bin/tasks/postcss
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs fq-corporate
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls fq-corporate
npm ERR! There is likely additional logging output above.
npm verb exit [ 1, true ]

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\akshayr2\Desktop\fq-test\npm-debug.log

this is probably an issue for glob-fs, since it uses an outdated version of micromatch. We're refactoring glob-fs because of windows issues. I recommend using node-glob until that refactor is finished.

just noticed you forked micromatch, that's awesome! just wanted to make sure you noticed the dev branch with the latest changes. There are more than 36,000 unit tests on that branch.

closing since this isn't a micromatch issue


Unexpected change to capitalization

Something strange I came across:

Variant 1173-1328-2160 had a mana needed field with "{1} each extra turn"
I saved its status as "Restore." (I made no other changes.)
I did some backend variant searches trying to find similar formatted combos, e.g. ' mana:"each extra turn" ' or ' pre:"each extra turn" ' and other variations, unsuccessfully.
I returned to that variant and the mana needed field was now capitalized: "{1} EACH EXTRA TURN"

I am not sure what caused this, let me know if you'd like me to try and reproduce it.

It's a bug, thanks for spotting it. Back in the day when mana needed didn't allow english text it was safe to capitalize it. I'll fix it and remove capitalization.


Regarding the gpssim.bin file

Hello,
I have generated the gpssim.bin file like
./gps-sdr-sim -b 8 -e brdc3540.14n -l 30.286502,120.032669,100 -s 4000000
but when this file is given to the gnss sdr software it doesnot show the navigation plot. like below
please give me a solution for this.
%%%%%%%%%%
=============================================================*
| Channel | PRN |   Frequency   |  Doppler  | Code Offset | Status |
=============================================================*
|       1 |  17 |  2.59399e+02 |     259   |      3690   |     T  |
|       2 |  10 |  2.80762e+03 |    2808   |      3240   |     T  |
|       3 |   6 |  5.34058e+02 |     534   |      1324   |     T  |
|       4 |  20 |  2.80762e+03 |    2808   |      2181   |     T  |
|       5 |  28 |  2.88391e+03 |    2884   |       454   |     T  |
|       6 |   3 |  3.08228e+03 |    3082   |       474   |     T  |
|       7 |   2 |  1.81580e+03 |    1816   |      2608   |     T  |
|       8 |  23 |  1.08337e+03 |    1083   |      3352   |     T  |
=============================================================*
Tracking started at 29-Jan-2020 13:31:02
Tracking is over (elapsed time 00:04:05)
Saving Acq & Tracking results to file "trackingResults.mat"
Calculating navigation solutions...
Could not find valid preambles in channel 1!
Could not find valid preambles in channel 2!
Could not find valid preambles in channel 3!
Could not find valid preambles in channel 4!
Could not find valid preambles in channel 5!
Could not find valid preambles in channel 6!
Could not find valid preambles in channel 7!
Could not find valid preambles in channel 8!
Too few satellites with ephemeris data for postion calculations. Exiting!
Processing is complete for this data block
Ploting results...
plotNavigation: No navigation data to plot.
Post processing of the signal is over.**

Hello komal,
Were you able to solve this issue?
Please share the steps if you found any resolve.
Thanks,
Rishabh Jain


Backport case insensitivity note for security schemes to 3.0.4

We added a note about case insensitivity in v3.1.1 (see #2644 ), add it to 3.0.4 as well.

Are we considering this a clarification because it was already implied by the spec but not clear?  Or would this require tools to change to support case-insensitivity?

Yes, I consider that it would be assumed to be case-insensitive, but that adding a note to say so was useful. I'm also happy to not backport this if it seems at all risky!

@lornajane that works for me!

I'm not sure what to do here, if we make additional changes, rather than just backporting - do I then need to followup forward-port the additions to the 3.1.1 spec where the original note about case sensitivity was added?
Personally, I think this can merge without the additions to bring the two specs into sync - but I'd need another approval for that. Opinions and reviews welcome!


Remove ISnapshotResolver from Razor

ISnapshotResolver is really just a collection of methods that operate on IProjectSnapshotManager. Given that, its existence has also seemed a bit contrived. Even stranger, ISnapshotResolver is responsible the miscellaneous files project in the language server.
This change ensures that the miscellaneous files project is added to the IProejctSnapshotManager when the project manager is created. Then, it transforms all of the ISnapshotResolver methods into extension methods on IProjectSnapshotManager.

I just realized that I completely forgot to rename the SnapshotResolverTest to something like, IProjectSnapshotManagerExtensionsTest. Will do that before merging.


[AMBARI-24364] - Mpack Instance Manager Not Listing Versions Correctly

What changes were proposed in this pull request?
After merge, mpack_manager, execution_command and some other python module codes are broken
How was this patch tested?

UT test
Manually e2e test

The corresponding zookeeper code review:
https://github.com/hortonworks/zookeeper-PDR/pull/7
@jonathan-hurley @adoroszlai @ncole @swapanshridhar @jayush  Please review the code and let me know your thoughts. Thanks.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3375/
Test FAILed.
Test FAILured.

@jonathan-hurley @swapanshridhar Please also do a quick review for https://github.com/hortonworks/zookeeper-PDR/pull/7,
Just two line of code review. I need to merge both PRs at the same time. Thanks.

@scottduan my concern right now is that there's a lot of work being put on the python code. For example:
instance_name=mpack_instance_name, module_name=module_name,
zk_log_dir = ""
if zk_log_dirs:
  zk_log_dir = zk_log_dirs[0]
zk_pid_dirs = get_component_rundir_path...

Can we do this in the helper so that we don't have to pollute all of the Python code?

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3397/
Test FAILed.
Test FAILured.

@jonathan-hurley I have updated the code and at this time I assume there is only one single mpack instance, so the mpack_manager_helper only return single path for config_dir, log_dir and run_dir.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/3437/
Test FAILed.
Test FAILured.

Checked the db:
ambari=> select * from hostcomponentstate;
id | host_comp_desired_state_id | cluster_id |  component_name  |  component_type  | mpack_version |   version   | current_state | last_live_state | host_id | service_group_id | service_id | upgrade_st
ate
----+----------------------------+------------+------------------+------------------+---------------+-------------+---------------+-----------------+---------+------------------+------------+-----------
2 |                          2 |          2 | ZOOKEEPER_CLIENT | ZOOKEEPER_CLIENT | 1.0.0-b607    | <IP_ADDRESS>-b42 | INSTALLED     | INSTALLED       |       1 |                2 |          2 | NONE
1 |                          1 |          2 | ZOOKEEPER_SERVER | ZOOKEEPER_SERVER | 1.0.0-b607    | <IP_ADDRESS>-b42 | STARTED       | STARTED         |       1 |                2 |          3 | NONE
(2 rows)
ambari=>
All versions fields are populated.


修改base_dir后，watch进程未生效

我将base_dir修改为W:/memos后，watch进程日志显示仍然在使用原来的~/.memos路径。

database中存储的路径仍然是老的路径，因此只改配置文件似乎没有用

If you changed the base_dir do you copy the database.db to the new location? If that is true, it means the original configuration in the database is also moved to the new location.  Use command memos lib ls to show current Folders.

After I changed the base_dir, I also moved database.db to the new location. But watch process still uses the old path. I checked the folders table in database and found that the path is still the old path.

If there aren’t many files, you can just copy the screenshots to the new location and reindex.


InvalidContentEntryDataError: Reference to users invalid - Entry does not exist

I encountered an issue while running pnpm dev with Astro v5.0.0-beta.5 in the second time running (without change anything in the code) . The process fails with an InvalidContentEntryDataError. The error message states that there is an issue with the content schema, specifically that there is a reference to a non-existent user entry (Entry 1819835).
Steps to Reproduce:

Run the command pnpm dev in the project directory.
Observe the error outputting InvalidContentEntryDataError.

Actual Behavior:
The command fails with the following error message:
pages → 15740 data does not match collection schema.
author: Reference to users invalid. Entry 1819835 does not exist.
Additional Context:

Local development server URL: http://localhost:4321/
Using Astro v5.0.0-beta.5
More information on content schemas: https://docs.astro.build/en/guides/content-collections/
Error reference: https://docs.astro.build/en/reference/errors/invalid-content-entry-data-error/

Please let me know if further information is needed to resolve this issue. Thank you.

Thanks for the issue @EBFcode!
Does deleting the .astro/ directory in the project root and re-running pnpm dev work?

Yeah! It works.
I did this:
Started a new project from scratch pnpm create astro --template delucis/dewp/examples/blog-starter
pnpm dev
##Terminal:
`

<EMAIL_ADDRESS>dev /Users//[Dev-Astro]/Test/testing-wp
astro dev

19:09:27 [types] Generated 1ms
astro  v5.0.0-beta.5 ready in 125 ms
┃ Local    http://localhost:4321/
┃ Network  use --host to expose
▶ This is a  beta  prerelease build!
Report issues here: https://astro.build/issues
19:09:27 [content] Syncing content
19:09:27 [content] Content config changed
19:09:27 [content] Astro version changed
19:09:27 [content] Clearing content store
The collection "site-settings" does not exist. Please ensure it is defined in your content config.
19:09:46 [ERROR] Cannot read properties of undefined (reading 'data')
Stack trace:
at /Users//[Dev-Astro]/Test/testing-wp/node_modules/.pnpm/dewp@0.0.4_astro@5.0.0-beta.5/node_modules/dewp/content-utils.ts:9:15
[...] See full stack trace in the browser, or rerun with --verbose.
19:09:49 [content] Synced content
19:09:49 watching for file changes...
19:09:52 [200] / 2696ms
19:09:52 [200] / 2321ms
19:09:58 [200] /blog 34ms
19:10:03 [200] /blog/wordpress-community-creates-1000-block-themes-in-1000-days/ 10ms
19:10:05 [200] /blog 38ms
19:10:07 [200] /blog/protect-private-conversations/ 15ms
19:10:08 [200] /blog 38ms
19:10:10 [200] / 12ms
19:10:11 [200] /blog 48ms
19:10:12 [200] / 15ms
^C%                                                                                `
Then I stop the run and started again:

<EMAIL_ADDRESS>dev /Users/j/[Dev-Astro]/Test/testing-wp
astro dev

19:10:20 [types] Generated 0ms
astro  v5.0.0-beta.5 ready in 96 ms
┃ Local    http://localhost:4321/
┃ Network  use --host to expose
▶ This is a  beta  prerelease build!
Report issues here: https://astro.build/issues
19:10:21 [content] Syncing content
19:10:24 [200] / 11ms
[InvalidContentEntryDataError] pages → 15740 data does not match collection schema.
author: Reference to users invalid. Entry 1819835 does not exist.
Hint:
See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.
Error reference:
https://docs.astro.build/en/reference/errors/invalid-content-entry-data-error/
Stack trace:
at getEntryDataAndImages (file:///Users/j/[Dev-Astro]/Test/testing-wp/node_modules/.pnpm/astro@5.0.0-beta.5_typescript@5.6.3/node_modules/astro/dist/content/utils.js:158:26)
at async Object.load (/Users/j/[Dev-Astro]/Test/testing-wp/node_modules/.pnpm/dewp@0.0.4_astro@5.0.0-beta.5/node_modules/dewp/loaders.ts:51:22)
at async #doSync (file:///Users/jh/[Dev-Astro]/Test/testing-wp/node_modules/.pnpm/astro@5.0.0-beta.5_typescript@5.6.3/node_modules/astro/dist/content/content-layer.js:131:5)
 ELIFECYCLE  Command failed with exit code 1.

 ### I deleted the .astro/ and started again and it works (again) but if I stop and start again it is broken again.

I also noticed the method of wpCollections>makeLoader>fetchAll call many times when starting up this project.

I deleted the .astro/ and started again and it works (again) but if I stop and start again it is broken again.

Thanks for confirming @EBFcode. It seems that Astro’s caching logic is not working correctly ending up with bad state between runs. We’ll probably need to open an issue upstream.


Make minimal game duration to treat game as ranked configurable, lower default 180 -> 90

Fixes #214.
Relevant discussion in
https://discord.com/channels/549281623154229250/855772061095559179/1210540660604538951
Basically, some 1v1 games do legitimately conclude before 3:00, notably 2:33 is a reported today timing to shut down a comm drop. Also tick/rover rushes. This keeps coming up on the discord. 90s should be pretty optimal. And if it isn't, well, it's now configurable so we can just change the duration :)
Tested to not blow up the site, not tested in-game yet.

Tested to work. I played two matches on the integration server, resigned at 60s in one of them, resigned at 120s in the other. Both show up in https://server5.beyondallreason.info/teiserver/admin/matches/user/44674 (which does not take ratings into account), only the latter shows up in https://server5.beyondallreason.info/teiserver/admin/users/ratings/44674 (which does).


Add json feed for zines

How does this pull request make you feel (in animated GIF format)?

What are the relevant GitHub issues?
n/a
What does this pull request do?
We started getting 500s for URLs that look like this:
https://crimethinc.com/zines.json

I went back through the git history to August of
2021 (ca65aed) to see if this was a
recent regression. It seems that we never had JSON feed support for tools
in the first place.
This PR adds support for Zines/stickers/posters. Journals and videos will need separate PRs
How should this be manually tested?

https://pipeline-to-add-json-fe-vwn0qd.herokuapp.com/zines.json
https://pipeline-to-add-json-fe-vwn0qd.herokuapp.com/stickers.json
https://pipeline-to-add-json-fe-vwn0qd.herokuapp.com/posters.json

Is there any background context you want to provide for reviewers?
To add JSON support for tools, This PR does 3 things:

Add a json index template
modify the tool controller's namespace method to support json
swallows ActiveStorage issues on development and staging environments

details about 2 and 3 are below

  2. use controller_path for tool namespacing
When a request for an HTML page comes in, request.path looks like
this:
[2] pry(#<StickersController>)> request.path
=> "/stickers"

The existing code then strips off the leading / and just returns
the tool name (stickers in this example)
An issues occurs when we get a JSON request. That is because
request.path will look like this:
[1] pry(#<StickersController>)> request.path
=> "stickers.json"

The existing code will then incorrectly return stickers.json as the tool
namespace, which cause downstream issues
replacing the code with controller_path will return the controllers
name the same regardless of format, so this will hopefully have fewer
issues.
Note: Because we have this tools abstraction, I am not 100% sure
that the controller_path will always be the same as the expected
tool. I couldn't find an instance of this currently, but it doesn't
seem impossible

3. swallows ActiveStorage issues on development and staging environments
in development/staging we often download production data and load
it into our local database to facilitate development and
debugging. This causes an error with image and resources that are
uploaded via ActiveStorage. We get the below error whenever trying
to generate an image url:
 ActionView::Template::Error (undefined method `signed_id' for nil:NilClass):

This is because the development/staging ActiveStorage tables don't
(and cannot) match up with the actual ActiveStorage storage used
in these environments (e.g. the staging env points to aa different
AWS instance than the production env)
This is a bit of a stop-gap until we figure out a better way of
handling this issue.
I re-throw the error in production to prevent us from swallowing legit
errors

Amazing!


Correction for raw affiliation CBGP, INRA, CIRAD, IRD, Montpellier SupAgro, Univ Montpellier, Montpellier, France

Correction needed for raw affiliation CBGP, INRA, CIRAD, IRD, Montpellier SupAgro, Univ Montpellier, Montpellier, France
raw_affiliation_name: CBGP, INRA, CIRAD, IRD, Montpellier SupAgro, Univ Montpellier, Montpellier, France
new_rors: 05kpkpg04;051escj72;05q3vnk25;03rnk6m14;05h7ddb14
previous_rors: 05kpkpg04;051escj72;05q3vnk25;03rnk6m14
works_examples: W2965843832;W2996827511
contact: 57a7adfef0ae5ed5826f617276bf442b:25a7d1616b6d90e4a0ebbfb30d0d689072df @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-18. The new affiliations should be visible within the next 7 days.


Read and write the content of the mount

I was able to use the plugin to mount my pv locally. The files belong the root user. Even though I mounted everything as root, I am not able to create or delete files.
Should this be possible, or is this module just a mounter for a read only filesystem?
drwxr-xr-x  1 root root    287 Jun 21 22:19 ./
drwxr-xr-x 23 root root   4096 Jun  7 16:11 ../
-rw-r--r--  1 root root      2 Jun 21 22:10 automations.yaml
root@r:/mnt# rm -rf *
rm: cannot remove 'automations.yaml': Permission denied

Hey @ddrachau.
Thanks for the report. No it shouldn't be only for read-only filesystem. I'm able to successfully modify files on a locally mounted fs.
First of all which is the operating system you're using for mount?
Can you also share more details about the PV/PVC?
For start kubectl describe pvc <the one you try to use> would be useful.
Is this PVC already mounted by other POD or something with RWX access or unmounted RWO?

Hey thanks for the reply, I am currently deep in the analysis and appreciate any support :)
I am trying to mount it from an Ubuntu system. Mount is successful, I can cat files, but not touch or remove any files.
The spawned pod is the only one claiming the PVC. I uninstalled the application helm to modify the pv before deploying the application again.
Name:          home-assistant-home-assistant-0
Namespace:     home-assistant
StorageClass:  p
Status:        Bound
Volume:        pvc-83a18b9f-d75c-4660-88af-e0110d0935c9
Annotations:   pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      5Gi
Access Modes:  RWO
VolumeMode:    Filesystem
Used By:       volume-exposer-ibgtr
Events:

My mount point is /home/daniel/mnt
drwxrwxr-x  2 daniel daniel 4096 Jun 21 22:51 mnt/
After running k pv-mounter mount home-assistant home-assistant-home-assistant-0 mnt the files are mounted in the mnt folder but they belong to the user and group 0 - but even root is not able to work there
drwxr-xr-x  1 root   root    287 Jun 21 22:19 mnt/

Ok maybe for start let's try to check if it is problem with SSHFS or just permissions within the cluster.
Are you able to make write operations on it from volume-ezposer-ibgtr pod?
You can check it by kube execing into it.
kubectl exec -it volume-exposer-ibgtr -- /bin/sh
touch /volume/whatever
Does it work?

No, it's not working from the pod either. :(
ve@volume-exposer-vaa9y:/volume$ ls -aln
total 176
drwxr-xr-x 7 0 0    287 Jun 21 20:19 .
drwxr-xr-x 1 0 0     28 Jun 22 18:54 ..
-rw-r--r-- 1 0 0      8 Jun 21 20:10 .HA_VERSION
drwxr-xr-x 2 0 0      6 Jun 21 20:10 .cloud
drwxr-xr-x 2 0 0   4096 Jun 21 20:19 .storage
-rw-r--r-- 1 0 0      2 Jun 21 20:10 automations.yaml
drwxr-xr-x 4 0 0     38 Jun 21 20:10 blueprints
-rw-r--r-- 1 0 0    265 Jun 21 20:10 configuration.yaml
drwxr-xr-x 2 0 0      6 Jun 21 20:10 deps
-rw-r--r-- 1 0 0      0 Jun 21 20:10 home-assistant.log
-rw-r--r-- 1 0 0      0 Jun 21 20:10 home-assistant.log.1
-rw-r--r-- 1 0 0 159744 Jun 21 20:19 home-assistant_v2.db
-rw-r--r-- 1 0 0      0 Jun 21 20:10 scenes.yaml
-rw-r--r-- 1 0 0      0 Jun 21 20:10 scripts.yaml
-rw-r--r-- 1 0 0    161 Jun 21 20:10 secrets.yaml
drwxr-xr-x 2 0 0      6 Jun 21 20:10 tts
ve@volume-exposer-vaa9y:/volume$ touch test
touch: cannot touch 'test': Permission denied

Ok so at least it's not the problem with SSHFS.
Can you share full output of the following commands?
kubectl describe pvc home-assistant-home-assistant-0
kubectl describe pv pvc-83a18b9f-d75c-4660-88af-e0110d0935c9

The pod user is 've' and the mounted pv at /volume belongs to root, could this be a problem?
kubectl describe pvc home-assistant-home-assistant-0 -n home-assistant
Name:          home-assistant-home-assistant-0
Namespace:     home-assistant
StorageClass:  proxmox-data-xfs
Status:        Bound
Volume:        pvc-83a18b9f-d75c-4660-88af-e0110d0935c9
Labels:        app.kubernetes.io/instance=home-assistant
app.kubernetes.io/name=home-assistant
Annotations:   pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
volume.beta.kubernetes.io/storage-provisioner: csi.proxmox.sinextra.dev
volume.kubernetes.io/selected-node: t
volume.kubernetes.io/storage-provisioner: csi.proxmox.sinextra.dev
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      5Gi
Access Modes:  RWO
VolumeMode:    Filesystem
Used By:       volume-exposer-vaa9y
Events:
kubectl describe pv pvc-83a18b9f-d75c-4660-88af-e0110d0935c9
Name:              pvc-83a18b9f-d75c-4660-88af-e0110d0935c9
Labels:
Annotations:       pv.kubernetes.io/provisioned-by: csi.proxmox.sinextra.dev
volume.kubernetes.io/provisioner-deletion-secret-name:
volume.kubernetes.io/provisioner-deletion-secret-namespace:
Finalizers:        [kubernetes.io/pv-protection external-attacher/csi-proxmox-sinextra-dev]
StorageClass:      proxmox-data-xfs
Status:            Bound
Claim:             home-assistant/home-assistant-home-assistant-0
Reclaim Policy:    Retain
Access Modes:      RWO
VolumeMode:        Filesystem
Capacity:          5Gi
Node Affinity:
Required Terms:
Term 0:        topology.kubernetes.io/zone in [p]
topology.kubernetes.io/region in [l]
Message:
Source:
Type:              CSI (a Container Storage Interface (CSI) volume source)
Driver:            csi.proxmox.sinextra.dev
FSType:            xfs
VolumeHandle:      l/p/local-lvm/vm-9999-pvc-83a18b9f-d75c-4660-88af-e0110d0935c9
ReadOnly:          false
VolumeAttributes:      storage=local-lvm
storage.kubernetes.io/csiProvisionerIdentity=1718192305411-36-csi.proxmox.sinextra.dev
Events:

Well yeah this could be a problem. But to be honest once k8s allowed to mount it to someone it should allow to modify it too. To be honest I'm not sure. But definitely is you're not able to read volume from other POD it's a problem.
I tried to limit containers/pods created by pv-mounter as much as possible. Maybe in your case it's too much.
Hard to say without knowledge about other stuff that might be limited on your cluster.
We can do another exercise. Are you able to mount that volume from any other container?
Let's say from netshoot one.
https://github.com/nicolaka/netshoot

Mount and write to it.

Yeah, this ugly debug template does the trick. The pods user is root and that one can touch, rm etc.
apiVersion: v1
kind: Pod
metadata:
name: my-debug-pod
namespace: home-assistant
spec:
containers:
- name: my-container
image: praqma/network-multitool
volumeMounts:
- mountPath: /app/folder
name: volume
volumes:
- name: volume
persistentVolumeClaim:
claimName: home-assistant-home-assistant-0
could you make the user/userid in the volume-export customizable oder permit root if wanted? :)

I can do it probably. But I'm also happy to accept PRs ;)

And to be honest I'm really concerned why you have to switch to root to be able to mount that volume. Perhaps some design decisions in your setup are simply bad. In my case it works without switching to root.

I would be happy to assist with a PR but I am not comfortable to enhance this code and not sure how to test it.
I can mount my volume, but the user is not allowed to modify it.
What's about your permissions in the PVs you edit? Are they more open, so the pe user can edit it? I suppose the helm setup was a bit lazy to do this all by root.

Can you share that helm chart so I could experiment with it?

Of course, I picked a bit older version, so I can migrate my older files, once they are copied to the pv :) I might be that the most recent version is more elegant with regards to the permissions, but I don't think it changed.
https://artifacthub.io/packages/helm/helm-hass/home-assistant/0.2.33
Thanks for your effort!

I've just installed that chart and confirmed it mounts read-only fs.
It's because that config directory has rwxr-xr-x permissions.
You can workaround that by changing it:
kubectl exec -it ha-home-assistant-0 -- /bin/sh
chmod o+w .
Then is should get mounted writable. I tested it.
Anyway I will also think about adding some --root option to mount volumes as root but can't promise when that's gonna happen ;)

yeah thanks for your support and analysis. Other write permissions should do the trick, but the files will belong to the ve user (whatever id that is). I am not sure if this could lead to problems in the applications. With root, I could chown the files to the appropriate uid and gid :-)

Well root will be able to read those files anyway.
I spent some time today trying to implement --needs-root option but it's not trivial change.
In fact in the past I spent a lot of time to try to get rid need for root ;)
But I've got some ideas how to do it. It's just not my priority.

Almost there. I mean I'm there but need to do some cleanup and documentation.
[☸ lab:selfhosted] [ needs-root][🐹 v1.22.4]
❯ ~/pv-mounter ./bin/pv-mounter mount selfhosted ha-home-assistant-ha-home-assistant-0 foo
Pod volume-exposer-proxy-jitgi created successfully
Adding ephemeral container volume-exposer-ephemeral-o1v4l to pod ha-home-assistant-0 with volume name ha-home-assistant
Successfully added ephemeral container volume-exposer-ephemeral-o1v4l to pod ha-home-assistant-0
Forwarding from <IP_ADDRESS>:4808 -> 2137
Forwarding from [::1]:4808 -> 2137
Handling connection for 4808
PVC ha-home-assistant-ha-home-assistant-0 mounted successfully to foo

[☸ lab:selfhosted] [ needs-root][🐹 v1.22.4][⏱ 14s]
❯ ~/pv-mounter echo dupa > foo/dupa
zsh: permission denied: foo/dupa

[☸ lab:selfhosted] [ needs-root][🐹 v1.22.4]
❯ ~/pv-mounter ./bin/pv-mounter clean selfhosted ha-home-assistant-ha-home-assistant-0 foo
Unmounted foo successfully
Port-forward process for pod volume-exposer-proxy-jitgi killed successfully
Ephemeral container name is volume-exposer-ephemeral-o1v4l
Process in ephemeral container killed successfully in pod ha-home-assistant-0
Proxy pod volume-exposer-proxy-jitgi deleted successfully

[☸ lab:selfhosted] [ needs-root][🐹 v1.22.4][⏱ 2s]
❯ ~/pv-mounter ./bin/pv-mounter mount --needs-root selfhosted ha-home-assistant-ha-home-assistant-0 foo
Pod volume-exposer-proxy-e27fa created successfully
Adding ephemeral container volume-exposer-ephemeral-maf7r to pod ha-home-assistant-0 with volume name ha-home-assistant
Successfully added ephemeral container volume-exposer-ephemeral-maf7r to pod ha-home-assistant-0
Forwarding from <IP_ADDRESS>:19809 -> 2137
Forwarding from [::1]:19809 -> 2137
Handling connection for 19809
PVC ha-home-assistant-ha-home-assistant-0 mounted successfully to foo

[☸ lab:selfhosted] [ needs-root][🐹 v1.22.4][⏱ 11s]
❯ ~/pv-mounter echo dupa > foo/dupa

Version 0.7.0 allows to mount as root.

@ddrachau Can you confirm it works for you?

Can you add your solution to the FAQ section?
Cause I'm not going to modify someones namespaces' labels. I really try to keep my tool as less intrusive as possible but your case with the solution might be helpful for others. Would be great to get PR with info how you dealt with it.

I guess that means no.

Hey sorry, thanks for the reminder, I'll work on it


Point cloud performance optimization

Optimized point cloud generation by pre-processing const part of transformation flow and applying SSE intrinsic(x86 arch).
The mesurments (millisec):
| base | optimized
-- | -- | --
win 10 intel core i5-5300U 2.30GHz * 4  | 25.13| 11.14
linux Ubuntu 16.4  intel core i7-6700 CPU 3.40GHz * 8 | 10.437 | 6.05

Overall, looks good 👍


Set up theme application help

Dear cunhapaulo, thank you so much for your excellent job for making the slides more beautiful! I use Marp for academic slides writing.
However, some issues happened when I try to apply the default themes. I've pull a help here: https://github.com/marp-team/marp/discussions/115
Would you like to help?
I am really interested in the project but I am a novice on coding... Thank you!

Dear cunhapaulo it is now resolved... Thank you so much and please find the issue on https://github.com/orgs/marp-team/discussions/115


[Feature] Redirect common 'bang' directly inside the app

For now when I use '!gm' inside duckduckgo, my browser is opened (I use an external browser) with the duckduckgo url. Then the browser gets redirected to a Google maps url, which is opened with Maps according to my settings.
It would be awesome if the !gm search was converted inside the DuckDuckGo app into a Google Maps url, which could be directly opened with the corresponding app. That would avoid launching the browser for nothing.
This could be extended to frequent bang shortcuts.

For common 'bang', Shall we have a SnackBar at Bottom which have an option to open the App.

On Clicking "Open" will open Google Maps App.
If its ok, I will work it on for most common bangs and I will send a PR.

It sounds like the reason that's happening is because you're using an external browser. Is that right? Does this happen for the default case? /cc @moollaza @alohaas

@maheswaranapk thanks for posting this suggestion!
I have never used an external browser, but I just tried and I see now that the DDG send the link to Chrome which then recognizes the Maps URL and opens the native app.
Without the external browser option enabled, !gm shows a web result for Google Maps, within the DDG App browser.
It sounds like identifying if URLs can be resolved by a local app would be useful regardless of whether or not you have the app set to use an external browser. If the user does I image we'd just send them directly to that app, and if they don't I think prompting them to open the result in the native app would be great.
@nilnilnil would that be feasible?

I usually use Firefox or Chrome but I also tested with the embedded browser and it also open Google maps inside the browser (inside the Duckduckgo app this time). I'd prefer '!m' to allow me to search inside the Google Maps app directly.

I think this would be reasonable as a setting, but not default. If the setting was set, we could have the system fire the intent instead of opening the browser internally.
This would have to consider the external browser setting too.
@fgei @sreilly what do you think?

yes, I agree that an option would be nice.
we could make something like an "Use External App" setting, and if it is enabled we check if we can resolve the intent with another app and launch it

@maheswaranapk is that something you're interested in working on?

@nilnilnil  Yes, Having "Use External App" Option in Settings is a good Choice.

hey @maheswaranapk I wanted to see if you still planned on finishing this up - we really appreciate your contribution and want to see this go live. We're closing up old PRs and issues in the next week, so let me know if I should leave this open for you!
If you'd rather work on something new, we'd like to invite you to our new forum to preview how we're improving programming-related searches. There are a lot of important tasks up for grabs that we'd like your help with, so feel free to and jump in.

hey @edgesince84, I had done something but I failed to send the PR. Please keep this issue open and I will send an PR during this weekend.

thanks @maheswaranapk!  glad to see you tackling this some more 😄


LGPL-3.0: Neither Year, nor author name, nor program name, nor description can be added as arguments

Nothing is replaced when generating a (L)GPL license. Any information has to be filled in manually afterwards.

My bad. I re-read the license terms and realized that all placeholders only relates to the actual source files.