Support Github credentials in ~/.gitconfig

Github advises to store credentials into git's global configuration file and  I think we should support pulling those credentials from there, if present, possible via the parse-git-config module.

Seems like something we should support, also just curious how may people who use node-core-utils use it?

Sounds like a good idea, but we should figure out how to get this right with our ghauth integration that creates a token for you when you run it for the first time...

User has tokens in ~/.gitconfig or .git/gitconfig: use that and don't care about what permission the token github.token has?
User does not have tokens in ~/.gitconfig or .git/gitconfig: creates one in the prompt and put that in .git/gitconfig? or ~/.gitconfig? what happens if they overwrite that token later?

Also, what are we going to do with the existing ~/.ncurc tokens? Are we going to ignore them? Or let the ~/.gitconfig tokens take precedence? Or the other way around?

Or, the easiest way: we do a major update, simply ignores the token in ~/.ncurc (or warn the user to delete them?), deletes the ghauth code (or provide an alternative tool that allows user to create the tokens while choosing where they want to place it), and only use ~/.gitconfig -> .git/gitconfig

simply ignores the token in ~/.ncurc

I think we can do it manually after prompting the user about it. it should just require us to append
[github]
     user = <user>
     token = <token>

* the spaces are tabs
(That should provide better migration over new config)

I we don't expect more options to be added to .ncurc in the future, it might be best to deprecate it with a warning.
I wouldn't write into git configuration files as that can be tricky. For example, I use a [include] section to include another file in my gitconfig (the one where I store sensitive information like the GitHub token)

For example, I use a [include] section to include another file in my gitconfig

@silverwind think for the heads up for that, i didn't know you could do that :). Instead of writing to file we can just run the cmds using child_process if the user want since the end goal is to provide easier transition.

Running git commands like git config --global github.user user would still write to ~/.gitconfig (even in the presence of includes) and some people (like me) track this file in public source control, so it'd be obivously dangerous to write credentials into it.
I think the only sensible choice is to print a deprecation warning and let the user handle it.
BTW, here's my setup in case you're interested: .gitconfig .gitconfig.local

@silverwind that's why i said "if the user want since" so you as user can choose what to do :)

Ah, prompting the user interactively could work of course.

I wouldn't write into git configuration files as that can be tricky. For example, I use a [include] section to include another file in my gitconfig (the one where I store sensitive information like the GitHub token)

Using an [include] section is interesting, I hadn't heard of that.

Or, the easiest way: we do a major update, simply ignores the token in ~/.ncurc (or warn the user to delete/move them?), deletes the ghauth code (or provide an alternative tool that allows user to create the tokens while choosing where they want to place it)

What's the downside to keeping .ncurc? I'd assume we're likely to need more config info in there at some point.
The "one token" idea makes sense in some contexts, but I have multiple tokens with different scopes, so I'd rather have them in separate files.
How about using the GitHub one if it's there? If it has the wrong permissions (or isn't there) prompt to generate a token, and then give the user the choice of where to put it.

How about using the GitHub one if it's there? If it has the wrong permissions (or isn't there) prompt to generate a token, and then give the user the choice of where to put it.

Good point. We can just transparently add support for using the token in git configuration if it's there. Not sure about the prompting part. I'd expect a user of this tool to be competent to edit some files on their machine, no need for hand-holding.


Update file type typos & code spacings

Proposed changes

The tutorial regarding first smart contract guides to use .js in the hardhat init CLI, yet in the middle of the tutorial it mentions .ts -> fixed typo regarding this
Also shifted the spacings for the hardhat test code so that it aligns :)

Types of changes
Please put an x in the boxes related to your change.

[x] Minor Issues and Typos
[ ] Major Content Contribution
[ ] Others

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to reach out. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[x] I have read the CONTRIBUTING GUIDELINES
[x] I have read the CLA and signed by comment I have read the CLA Document and I hereby sign the CLA in first time contribute
[x] I have added necessary documentation (if appropriate)
[x] Any dependent changes have been merged and published in downstream modules

Related issues

Please leave the issue numbers or links related to this PR here.

Further comments
If this is a relatively large content contribution, kick off the discussion by explaining why you would suggest the content contribution, etc...

looks like I can't edit Labels for this PR
I have left the Pull Request Comment prior to this PR, yet the bot seems to disagree

recheck

@jwcheon Hi, thank you for your contribution.

Please leave a comment shown as "I have read the CLA Document and I hereby sign the CLA" here.
From now on, you don't have to make changes to other languages than English under i18n directory. If it's a part of code snippet, it will be reflected to them through our localization workflow after all.

I have read the CLA Document and I hereby sign the CLA


Feature/Allow OAuth application client secret reset by PATCH [ENG-134] #8919

Purpose
A cleaner way to reset the client secret for an OAuth application via the API would be to PATCH the developer-app resource with the client_secret property set to null. This would be more intuitive that POSTing to a special endpoint and would make the front end simpler.
Note: This uses version 2.13 as the "new version," but there are a bunch of new API versions in currently open PRs and so the version can be adjusted when this PR gets close to being merged.

Changes

Deprecate old ApplicationReset view
allow patching client_secret as null in ApiOAuth2ApplicationDetailSerializer
Tests for deprecated view and new route

QA Notes
This is purely API related, so assuming it'll be tested by spot checking and the front-end team when they use it!

Documentation
It doesn't look like any of the current application API endpoints are currently in the documentation, so no updates needed until we decide to document the applications endpoints.

Side Effects
None anticipated

Ticket
https://openscience.atlassian.net/browse/ENG-134

This was all Erin - just reticketing here to bump the version/modify tests.


[BUG] JS migrate script does not work (using Docker)

Hi there,
I've been following the instructions outlined here. to build this project using JavaScript.
I get stuck when trying to run the migrate script. (I'm using Docker)
npm run migrate -- --hosts <IP_ADDRESS>

Error:
info: Bootstrapping database...
(node:96046) UnhandledPromiseRejectionWarning: ArgumentError: 'localDataCenter' is not defined in Client options and also was not specified in constructor. At least one is required. Available DCs are: [datacenter1]
    at setLocalDc (/home/attila/Documents/stuff/FY23Q1/scylla/care-pet/javascript/node_modules/cassandra-driver/lib/policies/load-balancing.js:860:11)
    at DefaultLoadBalancingPolicy.init (/home/attila/Documents/stuff/FY23Q1/scylla/care-pet/javascript/node_modules/cassandra-driver/lib/policies/load-balancing.js:565:7)
    at /home/attila/Documents/stuff/FY23Q1/scylla/care-pet/javascript/node_modules/cassandra-driver/lib/execution-profile.js:171:55
    at /home/attila/Documents/stuff/FY23Q1/scylla/care-pet/javascript/node_modules/cassandra-driver/lib/promise-utils.js:52:5
    at new Promise (<anonymous>)
    at Object.fromCallback (/home/attila/Documents/stuff/FY23Q1/scylla/care-pet/javascript/node_modules/cassandra-driver/lib/promise-utils.js:51:10)
    at ProfileManager.init (/home/attila/Documents/stuff/FY23Q1/scylla/care-pet/javascript/node_modules/cassandra-driver/lib/execution-profile.js:171:26)
    at Client._connect (/home/attila/Documents/stuff/FY23Q1/scylla/care-pet/javascript/node_modules/cassandra-driver/lib/client.js:515:31)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async getClient (/home/attila/Documents/stuff/FY23Q1/scylla/care-pet/javascript/src/db.js:16:5)
(node:96046) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:96046) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Relevant part (likely):
UnhandledPromiseRejectionWarning: ArgumentError: 'localDataCenter' is not defined in Client options and also was not specified in constructor. At least one is required. Available DCs are: [datacenter1]
Any tips how to fix this? Let me know if you need more info from me!
Thank you!
PS: not related to the bug, but I could imagine this step being part of the setup process so users don't need to run it manually (at least for those who use Docker and not Cloud)

Looks like adding the --datacenter parameter solves this issue:
npm run migrate -- --hosts <IP_ADDRESS> --datacenter datacenter1
info: Bootstrapping database...
info: Creating keyspace...
info: Keyspace created
info: Migrating database...
info: Database migrated

Works for me

Later on in the tutorial, --datacenter is also needed when running the "pet collar simulation ":
npm run sensor -- --hosts <IP_ADDRESS> --measure 5s --buffer-interval 1m --datacenter datacenter1

Fixed and merged!


More sg_vertex_format types

At the moment, there are no 1-element integer vertex formats, only 2+.
Requested types:
SG_VERTEXFORMAT_BYTE
SG_VERTEXFORMAT_UBYTE
SG_VERTEXFORMAT_SHORT
SG_VERTEXFORMAT_USHORT
SG_VERTEXFORMAT_INT
SG_VERTEXFORMAT_UINT

SG_VERTEXFORMAT_BYTEN
SG_VERTEXFORMAT_UBYTEN
SG_VERTEXFORMAT_SHORTN
SG_VERTEXFORMAT_USHORTN
SG_VERTEXFORMAT_INTN
SG_VERTEXFORMAT_UINTN

Several of those type will very likely cause performance problems on various backends and drivers (e.g. any type smaller where the size isn't a multiple of 4). This is an old post of mine, but I doubt that GL drivers can even fix this type of problem: https://floooh.github.io/2013/01/23/a-radeon-fix-and-more.html
And for the "4-byte-mulitple" sizes, a similar problem as with the uniform types exists, I seem to remember similar compatibility problems as with integer uniform types on WebGL and GLES2 which then resulted in the very "conservative" selection of vertex formats in sokol_gfx.h, but I'd need to do new tests to confirm this.
So, basically out of your list, only those would remain:
SG_VERTEXFORMAT_INT
SG_VERTEXFORMAT_UINT
SG_VERTEXFORMAT_INTN
SG_VERTEXFORMAT_UINTN
(the other possible combinations for (U)BYTE and (U)SHORT which result in multiple-of-4 sizes are already supported)

I know the smaller types will be slow for numerous reasons, but I was wanting to reduce the size of my vertices by only storing enough data as required. If I have to use 4 bytes per integer rather than 1 or 2 bytes, then that's the compromise I will have to take for using sokol_gfx.h.

To be more precise, I think/guess it's not so much the size of the datatype, but the stride that's important (again, I might remember wrong, but an "odd" stride which isn't am multiple of four might have problems on other backend APIs too). And if this is true you wouldn't be able to save memory.
What I'm trying to do usually is to pack several things into the the same vertex component (for instance one could pack four "unrelated" 8-bit values into a single UBYTE4 vertex component.


CLI: Stdin input does not implicitly become pipeline input

Currently, stdin input streamed to pwsh from the outside:

does not automatically become pipeline input;

accessing stdin input currently requires constructing a separate pipeline in PowerShell code using $Input

only automatically becomes input to interactive prompts, such as Read-Host calls or the automatic prompts displayed when mandatory arguments are missing.

This has the following implications:
You cannot directly pipe data to PowerShell commands from the outside:
Contrast the following two commands:
# Bash:
# stdin input is "relayed" to the 'wc' utility
$ printf 'one\ntwo' | bash -c 'wc'
2

# PowerShell:
PS> printf 'one\ntwo' | pwsh -noprofile -c 'Measure-Object -Word | % Words'
0 # !! Measure-Object did NOT receive stdin input.

# Explicit reference to $Input in an internal pipeline is required:
PS> printf 'one\ntwo\n' | pwsh -noprofile -c '$Input | Measure-Object -Word | % Words'
2

printf 'one\ntwo\n' | pwsh -noprofile -c 'Measure-Object -Word'
If you're calling an advanced script that binds pipeline input, it cannot be invoked with just -File, because it won't receive pipeline input:
# Create an advanced script that echoes each pipeline input enclosed in [...]
'[CmdletBinding()] param([Parameter(ValueFromPipeline)] $var) process { "[$var]" }' > t.ps1

# Call from either Bash or PowerShell (same behavior).
PS> echo hi | pwsh -noprofile -file t.ps1
[]  # !! t.ps1 did NOT receive stdin input

# The workaround is again non-obvious and cumbersome:
PS> echo hi | pwsh -noprofile -command '$Input | ./t.ps1'
[hi]  # OK

Similarly, if you author a pipeline-binding advanced script as shebang-line-based script on Unix, it cannot receive stdin input directly:
# Create a shebang-line-based script...
@'
#!/usr/bin/env pwsh
[CmdletBinding()] param([Parameter(ValueFromPipeline)] $var) process { "[$var]" }
'@ > foo

# ... and make it executable.
chmod +x foo

# Call from either Bash or PowerShell (same behavior).
PS> 1..2 | ./foo
[]  # !! Pipeline input wasn't bound, not even with pipeline input from PowerShell.

PowerShell's behavior here is at odds with traditional shells and arguably makes the typical use case unnecessarily difficult.
Note: I'm unclear on whether this can be fixed without breaking existing behavior.
The challenge is to know when to provide stdin input via an implied PowerShell pipeline, and when to use stdin input line by line, on demand, to respond to interactive prompts.
E.g., the following currently works - the two distinct Read-Host prompts are "answered" by 1 stdin input line each:
$ 'one\ntwo\n' | pwsh -noprofile -c 'read-host first; get-date;  read-host second'
first: one
one

Monday, April 29, 2019 10:52:04 AM
second: two
two

Environment data
PowerShell Core 6.2.0

I am hit by the same problem, I have to work with the databricks CLI, which has a terrible UX that requires me to pipe stdin to the the native binary and it seems I have to use bash for now as I could not translate the following to PowerShell::
databricks configure --token <<EOF
https://$(databricks_location).azuredatabricks.net
$(databricks-token)
EOF

I've tried piping a string to it
$newline = [System.Environment]::NewLine
"${newline}https://$DatabricksLocationShort.azuredatabricks.net${newline}$DatabricksToken${newline}" | databricks configure --token

with variations of ${newline} or also trying to pipe an array with no luck....

It sounds like you're describing the opposite direction: piping to an external program.
In my experience that usually does work; e.g.:
@'
one
two
three
'@ | bash -c 'cat -n'  # outputs the stdin input lines with line numbers

Thanks for the info.
I decided to use authentication via environment variables on the PowerShell process level instead now because shockingly this is even more secure as the azure databricks cli would store the credentials in  plaintext in  ~/.databrickscfg (accessible only when running as Admin though but still!)

@bergmeister  Can you share code how you are able to authenticate Databricks through Environment variables. I am pretty much struck in this case

@mvalikar You set the DATABRICKS_HOSTand  DATABRICKS_TOKEN environment variables as per docs, I suggest to set them only for the current process for security purposes and clean them up at the end
https://docs.databricks.com/dev-tools/cli/index.html

The same happens when directly calling ps1 which pipes to an external program.
For example, test.sh and test.ps1 have the same content:
python -c "import sys; print(sys.stdin.read(), end='')"

In Bash, when piping to test.sh, the inner python receives from stdin automatically:
$ echo "sometext" | ./test.sh
sometext

On contrary, in PowerShell when piping to test.ps1, the inner python can't receive from stdin and waits for user input.
> echo "sometext" | ./test.ps1
<waiting for user input>

A workaround is to explicitly pipe $input to python in test.ps1.
$input | python -c "import sys; print(sys.stdin.read(), end='')"

Using $input will also break interactive input:
Assume we have test.sh and test.ps1:
python -c "print(input())"

In Bash:
$ ./test.sh
sometext  < input here
sometext

but in PowerShell, it results in failure:
> ./test.ps1
Traceback (most recent call last):
  File "<string>", line 1, in <module>
EOFError: EOF when reading a line

A workaround I can think of is to check if $input is empty:

If $input is not empty, pipe it to python
If $input is empty, don't pipe it to python and leave python to read stdin from TTY

(We need to save $input to another variable $stdin since $input is an enumerator and can be accessed only once.)
$stdin = "$input"
if ($stdin) {
    $stdin | python -c "print(input())"
}
else {
    python -c "print(input())"
}

Can we detect if piping is used from $input?

Use $MyInvocation.ExpectingInput
& { $MyInvocation.ExpectingInput } # -> $false
1 | & { $MyInvocation.ExpectingInput } # -> $true

How can we detect if [...] $input is empty string  (an empty pipe is used)?

If it's OK to collect all input up front:
python -c "print('', end='')" | & { $allLines = @($Input); $allLines.Count -eq 0 }

Otherwise:
# -> $true
python -c "print('', end='')" | & { begin { $emptyInput = $true } process { $emptyInput = $false  } end { $emptyInput }  }

Note that without pipeline input, the process block is also called, namely exactly once.

What if stdin contains binary stream?

PowerShell currently has no support for binary data in its pipelines when communicating with external programs - everything is treated as text - both on sending and receiving - see

#1908

@mklement0, thanks a lot for the insights.
This solution you mentioned doesn't seem to work. It returns True even with empty stdin:
> & { $allLines = @($Input); $allLines.Count -eq 0 }
True
> python -c "print('', end='')" | & { $allLines = @($Input); $allLines.Count -eq 0 }
True
> python -c "print('a', end='')" | & { $allLines = @($Input); $allLines.Count -eq 0 }
False

The other solution also has some unexpected behavior:
> & { begin { $emptyInput = $true } process { $emptyInput = $false  } end { $emptyInput }  }
False
> python -c "print('', end='')" | & { begin { $emptyInput = $true } process { $emptyInput = $false  } end { $emptyInput }  }
True
> python -c "print('a', end='')" | & { begin { $emptyInput = $true } process { $emptyInput = $false  } end { $emptyInput }  }
False

I answered your questions in isolation, You need to combine your logic with $MyInvocation.ExpectingInput as needed, to distinguish the pipeline from the non-pipeline scenarios.
Apart from that, I see no unexpected behavior.  & { $allLines = @($Input); $allLines.Count -eq 0 } is designed to return $true if there is either no input from the pipeline at all or  if that input is empty.
& { begin { $emptyInput = $true } process { $emptyInput = $false  } end { $emptyInput }  } is designed to return $true only if there's pipeline input and it is empty.

I'm running into the same limitation. I'm trying to use PowerShell to write a script to handle the pre-push git hook.
Since I am unable to grab stdin from PowerShell, I am unable to process this data.

pre-push
This hook is called by [git-push[1]](https://git-scm.com/docs/git-push) and can be used to prevent a push from taking place. The hook is called with two parameters which provide the name and location of the destination remote, if a named remote is not being used both values will be the same.

Information about what is to be pushed is provided on the hook’s standard input with lines of the form:

<local ref> SP <local object name> SP <remote ref> SP <remote object name> LF

For instance, if the command git push origin master:foreign were run the hook would receive a line like the following:

refs/heads/master 67890 refs/heads/foreign 12345

although the full object name would be supplied. If the foreign ref does not yet exist the <remote object name> will be the all-zeroes object name. If a ref is to be deleted, the <local ref> will be supplied as (delete) and the <local object name> will be the all-zeroes object name. If the local commit was specified by something other than a name which could be expanded (such as HEAD~, or an object name) it will be supplied as it was originally given.

If this hook exits with a non-zero status, git push will abort without pushing anything. Information about why the push is rejected may be sent to the user by writing to standard error.

Workaround
The only workaround that I've seen, to read StdIn from PowerShell, is to use $Host.UI.ReadLine(), however that has a bug where it results in duplicate output. Also, the ReadLine() method hangs script execution. If you reach the last line of input, and you call ReadLine() again, your script will completely hang.

Yeah, let's just waste all the time and effort that the community has put into reporting bugs and usability issues. Good plan as usual, Microsoft.

@pcgeek86 I had a similar issue while creating a mechanism to handle powershell hooks natively (without git-bash) in git for Windows. The trick is to grab stdin directly and read from it, as shown under the cookbooks heading here https://github.com/fireflycons/git-hook-dispatcher


Memberof not populating

Hello, looks like memberof configuration is not populating under user records. Is that expected or is there anything needed to be done to get that to work?

It works for this LDAP search...
$ ldapsearch -H ldap://localhost:389 \
  -D cn=admin,dc=planetexpress,dc=com \
  -w GoodNewsEveryone \
  -b "ou=people,dc=planetexpress,dc=com" \
  -s sub \
  "(&(uid=professor)(objectClass=inetOrgPerson))" \
  "memberOf"
ldap_initialize( ldap://localhost:389/??base )
filter: (&(uid=professor)(objectClass=inetOrgPerson))
requesting: memberOf
# extended LDIF
#
# LDAPv3
# base <ou=people,dc=planetexpress,dc=com> with scope subtree
# filter: (&(uid=professor)(objectClass=inetOrgPerson))
# requesting: memberOf
#

# Hubert J. Farnsworth, people, planetexpress.com
dn: cn=Hubert J. Farnsworth,ou=people,dc=planetexpress,dc=com
memberOf: cn=admin_staff,ou=people,dc=planetexpress,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

What search filter are you using?

I suppose the issue is a little different. While you can request the attribute with @satterly's ldapsearch the memberOf attribute is never returned for inetOrgPerson for a ldapsearch that is not requesting it. All other fields are.
Trying to add it into https://github.com/rroemhild/docker-test-openldap/blob/master/bootstrap/config/msad.ldif#L19 results in
ldap_modify: Other (e.g., implementation specific) error (80)
        additional info: olcObjectClasses: AttributeType not found: "memberOf"

Hi @nikirago, memberof is an operation attribute and not returned by the server per default. You can return it explicit as in the example from @satterly or add the + sign at the end of your ldapsearch command:
ldapsearch -H ldap://localhost:10389 \
    -D cn=admin,dc=planetexpress,dc=com \
    -w GoodNewsEveryone \
    -b "ou=people,dc=planetexpress,dc=com" \
    -s sub "(&(uid=professor)(objectClass=inetOrgPerson))" +

I'll close this issue. Feel free to re-open it if you still can't get the memberOf attribute.

Hi @nikirago, memberof is an operation attribute and not returned by the server per default. You can return it explicit as in the example from @satterly or add the + sign at the end of your ldapsearch command:
ldapsearch -H ldap://localhost:10389 \
    -D cn=admin,dc=planetexpress,dc=com \
    -w GoodNewsEveryone \
    -b "ou=people,dc=planetexpress,dc=com" \
    -s sub "(&(uid=professor)(objectClass=inetOrgPerson))" +

I'll close this issue. Feel free to re-open it if you still can't get the memberOf attribute.


Using @Html.Formblock for checkboxes not working

I'm liking the HTML Helpers, but ran into an issue in using the Html.FormBlock to render input controls for a boolean value. The code that was rendered worked fine when setting the value from true to false, but did not work when setting it from false to true.
Here are my tags and what they rendered when IsActive is true:
@Html.FormBlock(m => m.Org.IsActive)
rendered
<input type="checkbox" checked="true" name="Org.IsActive" id="Org_IsActive" value="True" data-val="true" data-val-required="The IsActive field is required." class="form-control">
<input type="checkbox" name="Org.IsActive" id="Org_IsActive" value="False" data-val="true" data-val-required="The IsActive field is required." class="form-control">

    <input asp-for="Org.IsActive" class="form-control">

rendered:
<input class="form-control" type="checkbox" checked="checked" data-val="true" data-val-required="The IsActive field is required." id="Org_IsActive" name="Org.IsActive" value="true">
<input class="form-control" type="checkbox" data-val="true" data-val-required="The IsActive field is required." id="Org_IsActive" name="Org.IsActive" value="true">

The differences seem to be

When IsActive is true, checked is set to "true" in the html helper and "checked" in the tag helper.
When IsActive is false, value is set to "true" in the tag helper and "false" in the html helper.

I'm not sure how I can work around this issue without just going back to using tag helpers for boolean fields. Any ideas would be appreciated.
Thanks!
Laurie

What do you mean when you say "set it from true to false"? Like, checking/unchecking the box in the browser?

Yes, that's what I mean. As an clearer example, I created a field IsOnDeansList in the Student class and updated the Create Razor Page to add it. When I used the standard tag helpers, I was able to set the value of the field to true. When I used Html.FormBlock I was not.
I'm attaching the pages I updated to make the example work:
ContosoUniversityDotNetCore-Pages.zip

Well that is odd. Definitely a bug!


Shared Hosting Installer

Hello,
do you offer a zip package or script to install Sphinx on Shared Hosting? Thanks.

Sphinx is a separate project, we don't handle Sphinx releases. I'm not sure how you would support python binaries on a shared web host. Either way this is outside the territory we support, closing this issue.


Option to inject JS in head instead of body

To solve problems such as https://github.com/brillout/vite-plugin-ssr/issues/305.
https://github.com/brillout/vite-plugin-ssr/issues/262 will enable this.

Already done.


Investigate why controller is mutating IAM policy

https://github.com/kubeflow/kubeflow/blob/d43aee19ad8b556273a627ad34367e7e56b5c97e/components/profile-controller/controllers/plugin_iam.go#L128-L182

customer related issue: https://github.com/kubeflow/kubeflow/issues/6166

I think this was the policy which was attached to profile controller to execute the aws iam plugin

@surajkota do we know which policy its attaching to?

@rrrkharse @surajkota  can u guys confirm, to me it looks like that plugin of updating the role policy is optional only if plugin is added in profile.
Take a look at the sample profile https://github.com/kubeflow/kubeflow/blob/master/components/profile-controller/config/samples/profile_v1_aws_iam.yaml#L9

Thanks for the investigation. The links above show how to do it, but I could find documentation on the the user story. Can you help fill in the following blanks:
As a Kubeflow user, I want to ____, so that I can _______. To do this, I need an IAM role attached in the ___, ___, ___ service accounts in a user profile namespace. I can use the AwsIamForServiceAccount plugin in Kubeflow profiles to provide an IAM role in the profile CR. This IAM role needs to be configured with _____ permissions and needs to have a trust policy for the ______ namespaces and  _______ service accounts. For this plugin to work, the profile-controller-service-account needs to be annotated with an IAM role with the permissions as described in this policy
We need more information about what this IAM role can be used for, what permissions does this role need etc. e.g.: which service accounts does this role get attached to? notebooks? pipeline runs? etc.

plugin documentation: https://github.com/kubeflow/kubeflow/tree/d43aee19ad8b556273a627ad34367e7e56b5c97e/components/profile-controller
A complete sample of profile: https://github.com/kubeflow/kubeflow/blob/d43aee19ad8b556273a627ad34367e7e56b5c97e/components/profile-controller/config/samples/profile_v1beta1_profile.yaml
should  gcpServiceAccount replace by AwsIamForServiceAccount .

we need to test it for all kubeflow component.

This was related to AwsIamForServiceAccount plugin in profiles https://awslabs.github.io/kubeflow-manifests/docs/component-guides/profiles/#profile-plugins. Investigation is complete and feature is released now


config operation timeout,cost:5002 ms,op:GET,dataId:store.flush-disk-mode

service
/usr/bin/env bash /Volumes/CodeFile/GitHub/1346735074/cloud-alibaba/service-start/seata-service/seata-service-start.sh
18:32:07,669 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
18:32:07,670 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
18:32:07,671 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/Volumes/CodeFile/GitHub/1346735074/cloud-alibaba/service-start/seata-service/seata-server-0.5.1/conf/logback.xml]
18:32:07,671 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs multiple times on the classpath.
18:32:07,671 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [file:/Volumes/CodeFile/GitHub/1346735074/cloud-alibaba/service-start/seata-service/seata-server-0.5.1/conf/logback.xml]
18:32:07,671 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [jar:file:/Volumes/CodeFile/GitHub/1346735074/cloud-alibaba/service-start/seata-service/seata-server-0.5.1/lib/seata-server-0.5.1.jar!/logback.xml]
18:32:07,795 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
18:32:07,802 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/Volumes/CodeFile/GitHub/1346735074/cloud-alibaba/service-start/seata-service/seata-server-0.5.1/conf/logback.xml]
18:32:07,802 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 1 minutes
18:32:07,806 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
18:32:07,808 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [stdout]
18:32:07,872 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
18:32:07,875 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [seata-default]
18:32:07,883 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1948471365 - Archive files will be limited to [2048 MB] each.
18:32:07,885 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1948471365 - No compression will be used
18:32:07,886 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1948471365 - Will use the pattern /Users/purgeyao/logs/seata/seata-server.log.%d{yyyy-MM-dd}.%i for the active file
18:32:07,888 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@618b19ad - The date pattern is 'yyyy-MM-dd' from file name pattern '/Users/purgeyao/logs/seata/seata-server.log.%d{yyyy-MM-dd}.%i'.
18:32:07,888 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@618b19ad - Roll-over at midnight.
18:32:07,895 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@618b19ad - Setting initial period to Wed May 15 18:31:51 CST 2019
18:32:07,897 |-INFO in c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@1948471365 - Cleaning on start up
18:32:07,898 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - first clean up after appender initialization
18:32:07,899 |-INFO in c.q.l.core.rolling.helper.TimeBasedArchiveRemover - Multiple periods, i.e. 32 periods, seem to have elapsed. This is expected at application start.
18:32:07,899 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
18:32:07,902 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[seata-default] - Active log file name: /Users/purgeyao/logs/seata/seata-server.log
18:32:07,902 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[seata-default] - File property is set to [/Users/purgeyao/logs/seata/seata-server.log]
18:32:07,903 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [io.seata.server.store.FileTransactionStoreManager] to false
18:32:07,903 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - io.seata.server.store.FileTransactionStoreManager level set to INFO
18:32:07,903 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [seata-default] to Logger[io.seata.server.store.FileTransactionStoreManager]
18:32:07,904 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
18:32:07,904 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [seata-default] to Logger[ROOT]
18:32:07,904 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [stdout] to Logger[ROOT]
18:32:07,904 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
18:32:07,904 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@2d3379b4 - Registering current configuration as safe fallback point

2019-05-15 18:32:13.144 ERROR[main]io.seata.config.ConfigFuture.get:99 -config operation timeout,cost:5002 ms,op:GET,dataId:store.flush-disk-mode
2019-05-15 18:32:13.174 INFO [TxTimeoutCheck_1]io.seata.server.coordinator.DefaultCoordinator.timeoutCheck:219 -Global transaction[2011554739] is timeout and will be rolled back.
2019-05-15 18:32:13.261 INFO [main]io.seata.core.rpc.netty.AbstractRpcRemotingServer.start:152 -Server started ...
2019-05-15 18:32:13.274 INFO [main]io.seata.common.loader.EnhancedServiceLoader.loadFile:192 -load RegistryProvider[Nacos] extension by class[io.seata.discovery.registry.nacos.NacosRegistryProvider]

An error
2019-05-15 18:32:13.144 ERROR[main]io.seata.config.ConfigFuture.get:99 -config operation timeout,cost:5002 ms,op:GET,dataId:store.flush-disk-mode

service config  use file
service registry user nacos

service config
config {
  # file、nacos 、apollo、zk
  type = "file"

  nacos {
    serverAddr = "localhost:8848"
    namespace = "public"
    cluster = "default"
  }
  apollo {
    app.id = "seata-server"
    apollo.meta = "http://<IP_ADDRESS>:8801"
  }
  zk {
    serverAddr = "<IP_ADDRESS>:2181"
    session.timeout = 6000
    connect.timeout = 2000
  }
  file {
    name = "file.conf"
  }
}

file.conf
transport {
  # tcp udt unix-domain-socket
  type = "TCP"
  #NIO NATIVE
  server = "NIO"
  #enable heartbeat
  heartbeat = true
  #thread factory for netty
  thread-factory {
    boss-thread-prefix = "NettyBoss"
    worker-thread-prefix = "NettyServerNIOWorker"
    server-executor-thread-prefix = "NettyServerBizHandler"
    share-boss-worker = false
    client-selector-thread-prefix = "NettyClientSelector"
    client-selector-thread-size = 1
    client-worker-thread-prefix = "NettyClientWorkerThread"
    # netty boss thread size,will not be used for UDT
    boss-thread-size = 1
    #auto default pin or 8
    worker-thread-size = 8
  }
}
service {
  #vgroup->rgroup
  vgroup_mapping.spring-cloud-demo-tx = "default"
  #only support single node
  default.grouplist = "<IP_ADDRESS>:8091"
  #degrade current not support
  enableDegrade = false
  #disable
  disable = false
}

client {
  async.commit.buffer.limit = 10000
  lock {
    retry.internal = 10
    retry.times = 30
  }
  report.retry.count = 5
}

## transaction log store
store {
  ## store mode: file、db
  mode = "file"

  ## file store
  file {
    dir = "sessionStore"

    # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
    max-branch-session-size = 16384
    # globe session size , if exceeded throws exceptions
    max-global-session-size = 512
    # file buffer size , if exceeded allocate new buffer
    file-write-buffer-cache-size = 16384
    # when recover batch read size
    session.reload.read_size = 100
    # async, sync
    flush-disk-mode = async
  }

  ## database store
  db {
    driver_class = "com.mysql.jdbc.Driver"
    url = "<IP_ADDRESS>"
    user = "root"
    password = "123123"
  }

}

@1346735074 it has been fixed.

@slievrly Do I have to pull the new version？

please try the latest version.i believe this problem has been fixed.

Please use the latest version, I will close the issue, If you have other questions. please reopen it.


GPS(model T1)CONFIGURATION TO WEB SERVER

Good Day to all, By the I have a gps(model T1) from mietrack and I am developing also the online server for this to be seen on the web. . .What is the steps or requirements for my server to be able to have the connection for my gps  for passing the data on the server. . .

If you want to develop you own software, I would recommend to base it off Traccar.


Load libbash GUI from one source command

To avoid loading libbash.sh then libbash_gui.sh, use arguments to the main libbash script as:
source /path/to/libbash.sh --gui

Done in commit 6df8efa94e38dfbc3ee83283274b6d117eff6263


Could not build sandbox on g++-4.9.1

When I try build the project with the follow steps:
git clone https://github.com/USCiLab/cereal.git
cd cereal
git checkout 2f9471bc401590cf58b38bbbc33d412dade6d589
mkdir build && cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
make
I got the follow error:
Scanning dependencies of target sandbox
[ 88%] Building CXX object sandbox/CMakeFiles/sandbox.dir/sandbox.cpp.o
/home/uilian.ries/Downloads/cereal/sandbox/sandbox.cpp: In function ‘int main()’:
/home/uilian.ries/Downloads/cereal/sandbox/sandbox.cpp:634:17: error: unused variable ‘v’ [-Werror=unused-variable]
for( auto & v : vec2 )
^
cc1plus: all warnings being treated as errors
make[2]: *** [sandbox/CMakeFiles/sandbox.dir/sandbox.cpp.o] Error 1
make[1]: *** [sandbox/CMakeFiles/sandbox.dir/all] Error 2
make: *** [all] Error 2
I tested with g++-4.8.4 and I received the same error.
My actual system info:
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.3 LTS
Release:	14.04
Codename:	trusty
Linux 3.13.0-52-generic #86-Ubuntu SMP Mon May 4 04:32:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
g++ 4:4.8.2-1ubuntu6 amd64
g++-multilib 4:4.8.2-1ubuntu6 amd64
libboost-all-dev <IP_ADDRESS>ubuntu1 amd64
doxygen 1.8.6-2 amd64

-DCMAKE_BUILD_TYPE=Release is disabling the assert statements used in the sandbox, making it look like the variables go unused. I would just compile the sandbox without the release flag, it's basically a vestigial testing area.
If you think it is important to be able to compile this with release flags on, we'd welcome a pull request getting around assertion being disabled for the file. We don't use assert in any of the actual cereal core code.

It's not required for me, use explicit release build type. I can use debug, no problem.
Thanks for the answer.

Anyway, it would be easy to fix, and its still there (and annoying to find).


Fix: cannot import menu category field

A simple fix for the problem that import/export extension cannot apply the "Category" field to database.
The root cause the $newCategory->id will always be null and should use $newCategory->category_id instead.

Thank you!


Cannot use items

In the actual-cannibal branch when the Combat Knife is in the player's inventory or present on the ground attempts to use it via the use Combat Knife command result in the following error response:
Can't do that.

Need to review console.js too see the specifics. I suspect that the use property on the item must be a function in order for it to work.

Fixed now. Issue was that the use property on the Combat Knife was a string value instead of a function that returns a string.


Update certhelper.php

added hosting.de DNS Service API

@pipedreams-zz thanks! 👍  you should be able to add this change directly into #1234 -- we need one PR for the full feature addition :)

@fichtner ok i think i have done it. added the two more files into PR #1234. Sorry just started on github! So i can delet the two other duplicate pull requests?


fix deprecation in http_build_query

There is a deprecation in php 8.1:
http_build_query(): Passing null to parameter #2 ($numeric_prefix) of type string is deprecated

Using string as a default value fixes it

huhuu, can someone have a look at this?


KAFKA-5816: add Produced class, KStream#to(topic, Produced), and KStream#through(topic, Produced)

Add the Produced class and KStream overloads that use it:
KStream#to(String, Produced)
KStream#through(String, Produced)
Deprecate all other to and through methods accept the single param methods that take a topic param

@guozhangwang, @mjsax, @bbejeck

@dguy thanks for the PR, left some comments.

LGTM. Please feel free to merge and address the getters in another PR.

Thanks! Merged to trunk


evaluate client_lookup_set.go

This seems a little strange -- things like WHOIS lookups are done by searching SQLite database?
I need to really dig into this and see exactly why it's implemented this way, and whether there's a better way to implement it instead.

Eh, been playing with this, reasonably comfortable with it now.


Add [Contrib] to the default paths configuration

This will make it easier for people to load the items from the third-party repository.

The issue1519 branch of my fork of MathJax includes this.

==> Merged.

==> In testsuite
Configuration/Contrib.html


Initializing cluster in FastAPI results in boot hang

Describe the bug
Example code:
https://github.com/fryz/funhouse/tree/zf/fastapi/fastapi
When utilizing FastAPIs Lifespan Events (asynccontextmanager) to bring a cluster up, the cluster comes up but then hangs without returning to back to the server initialization logic.
Terminating the FastAPI process and bringing it back online recognizes the cluster and works.
Versions
(.venv) zach@Zachs-MacBook-Pro (/Users/zach/git/fun/funhouse/fastapi) (zf/fastapi)
[09:18:06]$ python collect_env.py
Python Platform: macOS-12.4-arm64-arm-64bit
Python Version: 3.11.7 (main, Jan 16 2024, 14:42:22) [Clang 14.0.0 (clang-14<IP_ADDRESS>)]

Relevant packages:
boto3==1.34.124
fastapi==0.111.0
fastapi-cli==0.0.4
fsspec==2023.5.0
opentelemetry-instrumentation-fastapi==0.46b0
pycryptodome==3.12.0
rich==13.7.1
runhouse==0.0.28
skypilot==0.5.0
sshfs==2023.4.1
sshtunnel==0.4.0
typer==0.12.3
uvicorn==0.30.1
wheel==0.43.0

Checking credentials to enable clouds for SkyPilot.
  AWS: enabled
    Hint: AWS SSO is set. To ensure multiple clouds work correctly, please use SkyPilot with static credentials (e.g., ~/.aws/credentials) by unsetting the AWS_PROFILE environment variable.
  Azure: disabled
    Reason: Getting user's Azure identity failed. Run the following commands:
      $ az login
      $ az account set -s <subscription_id>
    For more info: https://docs.microsoft.com/en-us/cli/azure/get-started-with-azure-cli
    Details: sky.exceptions.CloudUserIdentityError: Failed to import 'knack'. To install the dependencies for Azure, Please install SkyPilot with: pip install skypilot[azure]
  Cloudflare, for R2 object store: disabled
    Reason: [r2] profile is not set in ~/.cloudflare/r2.credentials. Additionally, Account ID from R2 dashboard is not set. Run the following commands:
      $ pip install boto3
      $ AWS_SHARED_CREDENTIALS_FILE=~/.cloudflare/r2.credentials aws configure --profile r2
      $ mkdir -p ~/.cloudflare
      $ echo <YOUR_ACCOUNT_ID_HERE> > ~/.cloudflare/accountid
    For more info: https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#cloudflare-r2
  Cudo: disabled
    Reason: Cudo tools are not installed. Run the following commands:
      $ pip install cudo-compute
    [ModuleNotFoundError] No module named 'cudo_compute'
  Fluidstack: disabled
    Reason: Failed to access FluidStack Cloud with credentials. To configure credentials, go to:
      https://console.fluidstack.io
    to obtain an API key and API Token, then add save the contents to ~/.fluidstack/api_key and ~/.fluidstack/api_token

  GCP: disabled
    Reason: GCP tools are not installed. Run the following commands:
      $ pip install google-api-python-client
      $ conda install -c conda-forge google-cloud-sdk -y
    Credentials may also need to be set. Run the following commands:
      $ gcloud init
      $ gcloud auth application-default login
    For more info: https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#google-cloud-platform-gcp
    Details: [ModuleNotFoundError] No module named 'googleapiclient'
  IBM: disabled
    Reason: Missing credential file at /Users/zach/.ibm/credentials.yaml.
    Store your API key and Resource Group id in ~/.ibm/credentials.yaml in the following format:
      iam_api_key: <IAM_API_KEY>
      resource_group_id: <RESOURCE_GROUP_ID>
  Kubernetes: disabled
    Reason: `kubernetes` package is not installed. Install it with: pip install kubernetes
  Lambda: disabled
    Reason: Failed to access Lambda Cloud with credentials. To configure credentials, go to:
      https://cloud.lambdalabs.com/api-keys
    to generate API key and add the line
      api_key = [YOUR API KEY]
    to ~/.lambda_cloud/lambda_keys
  OCI: disabled
    Reason: `oci` is not installed. Install it with: pip install oci
    For more details, refer to: https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#oracle-cloud-infrastructure-oci
  RunPod: disabled
    Reason: Failed to import runpod. To install, run: pip install skypilot[runpod]
  SCP: disabled
    Reason: Failed to access SCP with credentials. To configure credentials, see: https://cloud.samsungsds.com/openapiguide
    Generate API key and add the following line to ~/.scp/scp_credential:
      access_key = [YOUR API ACCESS KEY]
      secret_key = [YOUR API SECRET KEY]
      project_id = [YOUR PROJECT ID]
  vSphere: disabled
    Reason: vSphere dependencies are not installed. Run the following commands:
      $ pip install skypilot[vSphere]
    Credentials may also need to be set. For more details. See https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#vmware-vsphere[ModuleNotFoundError] No module named 'pyVmomi'

To enable a cloud, follow the hints above and rerun: sky check
If any problems remain, refer to detailed docs at: https://skypilot.readthedocs.io/en/latest/getting-started/installation.html

🎉 Enabled clouds 🎉
  ✔ AWS
Clusters
I 06-12 09:18:16 backend_utils.py:2405] Autodowned clusters: fastapi-runhouse-example, arthur-shield-gpu-cluster
No existing clusters.

Managed spot jobs
No in progress jobs. (See: sky spot -h)

Services
No existing services. (See: sky serve -h)

Additional context
Logs from the startup:
(.venv) zach@Zachs-MacBook-Pro (/Users/zach/git/fun/funhouse/fastapi) (zf/fastapi)
[08:59:13]$ fastapi dev app.py
INFO     Using path app.py
INFO     Resolved absolute path /Users/zach/git/fun/funhouse/fastapi/app.py
INFO     Searching for package file structure from directories with __init__.py files
INFO     Importing from /Users/zach/git/fun/funhouse/fastapi

 ╭─ Python module file ─╮
 │                      │
 │  🐍 app.py           │
 │                      │
 ╰──────────────────────╯

INFO     Importing module app

 ╭─ Importable FastAPI app ─╮
 │                          │
 │  from app import app     │
 │                          │
 ╰──────────────────────────╯

 ╭────────── FastAPI CLI - Development mode ───────────╮
 │                                                     │
 │  Serving at: http://<IP_ADDRESS>:8000                  │
 │                                                     │
 │  API docs: http://<IP_ADDRESS>:8000/docs               │
 │                                                     │
 │  Running in development mode, for production use:   │
 │                                                     │
 │  fastapi run                                        │
 │                                                     │
 ╰─────────────────────────────────────────────────────╯

INFO:     Will watch for changes in these directories: ['/Users/zach/git/fun/funhouse/fastapi']
INFO:     Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [35530] using WatchFiles
I 06-12 08:59:25 optimizer.py:691] == Optimizer ==
I 06-12 08:59:25 optimizer.py:714] Estimated cost: $0.1 / hour
I 06-12 08:59:25 optimizer.py:714]
I 06-12 08:59:25 optimizer.py:837] Considered resources (1 node):
I 06-12 08:59:25 optimizer.py:907] ----------------------------------------------------------------------------------------
I 06-12 08:59:25 optimizer.py:907]  CLOUD   INSTANCE    vCPUs   Mem(GB)   ACCELERATORS   REGION/ZONE   COST ($)   CHOSEN
I 06-12 08:59:25 optimizer.py:907] ----------------------------------------------------------------------------------------
I 06-12 08:59:25 optimizer.py:907]  AWS     m6i.large   2       8         -              us-east-2     0.10          ✔
I 06-12 08:59:25 optimizer.py:907] ----------------------------------------------------------------------------------------
I 06-12 08:59:25 optimizer.py:907]
I 06-12 08:59:25 cloud_vm_ray_backend.py:4246] Creating a new cluster: 'fastapi-runhouse-example' [1x AWS(m6i.large)].
I 06-12 08:59:25 cloud_vm_ray_backend.py:4246] Tip: to reuse an existing cluster, specify --cluster (-c). Run `sky status` to see existing clusters.
INFO | 2024-06-12 12:59:26.165931 | 3 changes detected
INFO | 2024-06-12 12:59:26.532277 | 280 changes detected
INFO | 2024-06-12 12:59:26.899229 | 122 changes detected
I 06-12 08:59:27 cloud_vm_ray_backend.py:1373] To view detailed progress: tail -n100 -f /Users/zach/sky_logs/sky-2024-06-12-08-59-25-800758/provision.log
I 06-12 08:59:28 provisioner.py:76] Launching on AWS us-east-2 (us-east-2a,us-east-2b,us-east-2c)
I 06-12 09:00:35 provisioner.py:451] Successfully provisioned or found existing instance.
I 06-12 09:02:03 provisioner.py:553] Successfully provisioned cluster: fastapi-runhouse-example
I 06-12 09:02:05 cloud_vm_ray_backend.py:3266] Run commands not specified or empty.
Clusters
NAME                       LAUNCHED        RESOURCES                       STATUS  AUTOSTOP  COMMAND
fastapi-runhouse-example   a few secs ago  1x AWS(m6i.large)               UP      (down)    /Users/zach/git/fun/funho...
arthur-shield-gpu-cluster  1 week ago      1x AWS(g3s.xlarge, {'M60': 1})  UP      (down)    /Users/zach/git/arthur-sh...

INFO | 2024-06-12 13:02:12.533477 | Restarting Runhouse API server on fastapi-runhouse-example.
INFO | 2024-06-12 13:02:12.540893 | Running command on fastapi-runhouse-example: python3 -m pip install runhouse==0.0.28
Collecting runhouse==0.0.28
  Downloading runhouse-0.0.28-py3-none-any.whl (366 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 366.6/366.6 kB 2.8 MB/s eta 0:00:00
Collecting opentelemetry-instrumentation-requests
  Downloading opentelemetry_instrumentation_requests-0.46b0-py3-none-any.whl (12 kB)
Collecting pyOpenSSL>=23.3.0
  Downloading pyOpenSSL-24.1.0-py3-none-any.whl (56 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.9/56.9 kB 12.3 MB/s eta 0:00:00
Requirement already satisfied: ray[default]!=2.6.0,<=2.6.3,>=2.2.0 in /opt/conda/lib/python3.10/site-packages (from runhouse==0.0.28) (2.4.0)
Collecting pexpect
  Downloading pexpect-4.9.0-py2.py3-none-any.whl (63 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.8/63.8 kB 13.8 MB/s eta 0:00:00
Collecting fastapi
  Downloading fastapi-0.111.0-py3-none-any.whl (91 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 92.0/92.0 kB 19.3 MB/s eta 0:00:00
Collecting apispec
  Downloading apispec-6.6.1-py3-none-any.whl (30 kB)
Requirement already satisfied: rich in /opt/conda/lib/python3.10/site-packages (from runhouse==0.0.28) (13.7.1)
Collecting opentelemetry-sdk
  Downloading opentelemetry_sdk-1.25.0-py3-none-any.whl (107 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 107.0/107.0 kB 1.3 MB/s eta 0:00:00
Collecting opentelemetry-instrumentation-fastapi
  Downloading opentelemetry_instrumentation_fastapi-0.46b0-py3-none-any.whl (11 kB)
Collecting typer
  Downloading typer-0.12.3-py3-none-any.whl (47 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.2/47.2 kB 9.5 MB/s eta 0:00:00
Collecting sshfs<=2023.4.1,>=2023.1.0
  Downloading sshfs-2023.4.1-py3-none-any.whl (15 kB)
Collecting uvicorn
  Downloading uvicorn-0.30.1-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.4/62.4 kB 13.7 MB/s eta 0:00:00
Collecting opentelemetry-exporter-otlp-proto-http
  Downloading opentelemetry_exporter_otlp_proto_http-1.25.0-py3-none-any.whl (16 kB)
Collecting fsspec<=2023.5.0
  Downloading fsspec-2023.5.0-py3-none-any.whl (160 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 160.1/160.1 kB 29.6 MB/s eta 0:00:00
Collecting opentelemetry-instrumentation
  Downloading opentelemetry_instrumentation-0.46b0-py3-none-any.whl (29 kB)
Collecting sentry-sdk
  Downloading sentry_sdk-2.5.1-py2.py3-none-any.whl (289 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 289.6/289.6 kB 3.7 MB/s eta 0:00:00
Requirement already satisfied: python-dotenv in /opt/conda/lib/python3.10/site-packages (from runhouse==0.0.28) (1.0.1)
Collecting httpx
  Downloading httpx-0.27.0-py3-none-any.whl (75 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 75.6/75.6 kB 1.2 MB/s eta 0:00:00
Collecting opentelemetry-api
  Downloading opentelemetry_api-1.25.0-py3-none-any.whl (59 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.9/59.9 kB 10.2 MB/s eta 0:00:00
Requirement already satisfied: wheel in /opt/conda/lib/python3.10/site-packages (from runhouse==0.0.28) (0.38.4)
Requirement already satisfied: setuptools<70.0.0 in /opt/conda/lib/python3.10/site-packages (from runhouse==0.0.28) (65.6.3)
Collecting cryptography<43,>=41.0.5
  Downloading cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl (3.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 28.9 MB/s eta 0:00:00
Requirement already satisfied: virtualenv<20.21.1,>=20.0.24 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (20.21.0)
Requirement already satisfied: click>=7.0 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (8.1.7)
Requirement already satisfied: jsonschema in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (4.22.0)
Requirement already satisfied: numpy>=1.19.3 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.26.4)
Requirement already satisfied: protobuf!=3.19.5,>=3.15.3 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (4.25.3)
Requirement already satisfied: grpcio<=1.51.3,>=1.42.0 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.51.3)
Requirement already satisfied: pyyaml in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (6.0.1)
Requirement already satisfied: frozenlist in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.4.1)
Requirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (3.14.0)
Requirement already satisfied: attrs in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (23.2.0)
Requirement already satisfied: packaging in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (24.1)
Requirement already satisfied: requests in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (2.28.2)
Requirement already satisfied: msgpack<2.0.0,>=1.0.0 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.0.8)
Requirement already satisfied: aiosignal in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.3.1)
Requirement already satisfied: gpustat>=1.0.0 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.1.1)
Requirement already satisfied: colorful in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.5.6)
Requirement already satisfied: aiohttp-cors in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.7.0)
Requirement already satisfied: opencensus in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.11.4)
Requirement already satisfied: py-spy>=0.2.0 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.3.14)
Requirement already satisfied: prometheus-client>=0.7.1 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.20.0)
Requirement already satisfied: pydantic in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.10.16)
Requirement already satisfied: aiohttp>=3.7 in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (3.9.5)
Requirement already satisfied: smart-open in /opt/conda/lib/python3.10/site-packages (from ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (7.0.4)
Collecting asyncssh<3,>=2.11.0
  Downloading asyncssh-2.14.2-py3-none-any.whl (352 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 352.5/352.5 kB 4.4 MB/s eta 0:00:00
Collecting ujson!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,>=4.0.1
  Downloading ujson-5.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (53 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 53.6/53.6 kB 10.3 MB/s eta 0:00:00
Requirement already satisfied: jinja2>=2.11.2 in /opt/conda/lib/python3.10/site-packages (from fastapi->runhouse==0.0.28) (3.1.4)
Collecting starlette<0.38.0,>=0.37.2
  Downloading starlette-0.37.2-py3-none-any.whl (71 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.9/71.9 kB 16.3 MB/s eta 0:00:00
Collecting python-multipart>=0.0.7
  Downloading python_multipart-0.0.9-py3-none-any.whl (22 kB)
Collecting orjson>=3.2.1
  Downloading orjson-3.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (142 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 142.7/142.7 kB 1.9 MB/s eta 0:00:00
Collecting fastapi-cli>=0.0.2
  Downloading fastapi_cli-0.0.4-py3-none-any.whl (9.5 kB)
Collecting email_validator>=2.0.0
  Downloading email_validator-2.1.1-py3-none-any.whl (30 kB)
Requirement already satisfied: typing-extensions>=4.8.0 in /opt/conda/lib/python3.10/site-packages (from fastapi->runhouse==0.0.28) (4.12.2)
Collecting anyio
  Downloading anyio-4.4.0-py3-none-any.whl (86 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 86.8/86.8 kB 18.8 MB/s eta 0:00:00
Collecting sniffio
  Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)
Requirement already satisfied: certifi in /opt/conda/lib/python3.10/site-packages (from httpx->runhouse==0.0.28) (2022.12.7)
Requirement already satisfied: idna in /opt/conda/lib/python3.10/site-packages (from httpx->runhouse==0.0.28) (3.4)
Collecting httpcore==1.*
  Downloading httpcore-1.0.5-py3-none-any.whl (77 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.9/77.9 kB 1.0 MB/s eta 0:00:00
Collecting h11<0.15,>=0.13
  Downloading h11-0.14.0-py3-none-any.whl (58 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.3/58.3 kB 14.1 MB/s eta 0:00:00
Collecting importlib-metadata<=7.1,>=6.0
  Downloading importlib_metadata-7.1.0-py3-none-any.whl (24 kB)
Collecting deprecated>=1.2.6
  Downloading Deprecated-1.2.14-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: googleapis-common-protos~=1.52 in /opt/conda/lib/python3.10/site-packages (from opentelemetry-exporter-otlp-proto-http->runhouse==0.0.28) (1.63.1)
Collecting opentelemetry-exporter-otlp-proto-common==1.25.0
  Downloading opentelemetry_exporter_otlp_proto_common-1.25.0-py3-none-any.whl (17 kB)
Collecting opentelemetry-proto==1.25.0
  Downloading opentelemetry_proto-1.25.0-py3-none-any.whl (52 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.5/52.5 kB 532.4 kB/s eta 0:00:00
Collecting opentelemetry-semantic-conventions==0.46b0
  Downloading opentelemetry_semantic_conventions-0.46b0-py3-none-any.whl (130 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 130.5/130.5 kB 28.8 MB/s eta 0:00:00
Requirement already satisfied: wrapt<2.0.0,>=1.0.0 in /opt/conda/lib/python3.10/site-packages (from opentelemetry-instrumentation->runhouse==0.0.28) (1.16.0)
Collecting opentelemetry-instrumentation-asgi==0.46b0
  Downloading opentelemetry_instrumentation_asgi-0.46b0-py3-none-any.whl (14 kB)
Collecting opentelemetry-util-http==0.46b0
  Downloading opentelemetry_util_http-0.46b0-py3-none-any.whl (6.9 kB)
Collecting asgiref~=3.0
  Downloading asgiref-3.8.1-py3-none-any.whl (23 kB)
Collecting ptyprocess>=0.5
  Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /opt/conda/lib/python3.10/site-packages (from rich->runhouse==0.0.28) (2.18.0)
Requirement already satisfied: markdown-it-py>=2.2.0 in /opt/conda/lib/python3.10/site-packages (from rich->runhouse==0.0.28) (3.0.0)
Requirement already satisfied: urllib3>=1.26.11 in /opt/conda/lib/python3.10/site-packages (from sentry-sdk->runhouse==0.0.28) (1.26.14)
Collecting shellingham>=1.3.0
  Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)
Requirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/lib/python3.10/site-packages (from aiohttp>=3.7->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.9.4)
Requirement already satisfied: async-timeout<5.0,>=4.0 in /opt/conda/lib/python3.10/site-packages (from aiohttp>=3.7->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (4.0.3)
Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.10/site-packages (from aiohttp>=3.7->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (6.0.5)
Requirement already satisfied: cffi>=1.12 in /opt/conda/lib/python3.10/site-packages (from cryptography<43,>=41.0.5->pyOpenSSL>=23.3.0->runhouse==0.0.28) (1.15.1)
Collecting dnspython>=2.0.0
  Downloading dnspython-2.6.1-py3-none-any.whl (307 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 307.7/307.7 kB 5.3 MB/s eta 0:00:00
Requirement already satisfied: nvidia-ml-py>=11.450.129 in /opt/conda/lib/python3.10/site-packages (from gpustat>=1.0.0->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (12.555.43)
Requirement already satisfied: psutil>=5.6.0 in /opt/conda/lib/python3.10/site-packages (from gpustat>=1.0.0->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (5.9.8)
Requirement already satisfied: blessed>=1.17.1 in /opt/conda/lib/python3.10/site-packages (from gpustat>=1.0.0->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.20.0)
Collecting zipp>=0.5
  Downloading zipp-3.19.2-py3-none-any.whl (9.0 kB)
Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.10/site-packages (from jinja2>=2.11.2->fastapi->runhouse==0.0.28) (2.1.5)
Requirement already satisfied: mdurl~=0.1 in /opt/conda/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich->runhouse==0.0.28) (0.1.2)
Requirement already satisfied: charset-normalizer<4,>=2 in /opt/conda/lib/python3.10/site-packages (from requests->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (2.1.1)
Collecting exceptiongroup>=1.0.2
  Downloading exceptiongroup-1.2.1-py3-none-any.whl (16 kB)
Collecting websockets>=10.4
  Downloading websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (130 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 130.2/130.2 kB 2.3 MB/s eta 0:00:00
Collecting uvloop!=0.15.0,!=0.15.1,>=0.14.0
  Downloading uvloop-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 29.5 MB/s eta 0:00:00
Collecting watchfiles>=0.13
  Downloading watchfiles-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 12.5 MB/s eta 0:00:00
Collecting httptools>=0.5.0
  Downloading httptools-0.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (341 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 341.4/341.4 kB 5.4 MB/s eta 0:00:00
Requirement already satisfied: distlib<1,>=0.3.6 in /opt/conda/lib/python3.10/site-packages (from virtualenv<20.21.1,>=20.0.24->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.3.8)
Requirement already satisfied: platformdirs<4,>=2.4 in /opt/conda/lib/python3.10/site-packages (from virtualenv<20.21.1,>=20.0.24->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (3.11.0)
Requirement already satisfied: referencing>=0.28.4 in /opt/conda/lib/python3.10/site-packages (from jsonschema->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.35.1)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /opt/conda/lib/python3.10/site-packages (from jsonschema->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (2023.12.1)
Requirement already satisfied: rpds-py>=0.7.1 in /opt/conda/lib/python3.10/site-packages (from jsonschema->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.18.1)
Requirement already satisfied: opencensus-context>=0.1.3 in /opt/conda/lib/python3.10/site-packages (from opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.1.3)
Requirement already satisfied: six~=1.16 in /opt/conda/lib/python3.10/site-packages (from opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.16.0)
Requirement already satisfied: google-api-core<3.0.0,>=1.0.0 in /opt/conda/lib/python3.10/site-packages (from opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (2.19.0)
Requirement already satisfied: wcwidth>=0.1.4 in /opt/conda/lib/python3.10/site-packages (from blessed>=1.17.1->gpustat>=1.0.0->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.2.13)
Requirement already satisfied: pycparser in /opt/conda/lib/python3.10/site-packages (from cffi>=1.12->cryptography<43,>=41.0.5->pyOpenSSL>=23.3.0->runhouse==0.0.28) (2.21)
Requirement already satisfied: proto-plus<2.0.0dev,>=1.22.3 in /opt/conda/lib/python3.10/site-packages (from google-api-core<3.0.0,>=1.0.0->opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (1.23.0)
Requirement already satisfied: google-auth<3.0.dev0,>=2.14.1 in /opt/conda/lib/python3.10/site-packages (from google-api-core<3.0.0,>=1.0.0->opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (2.30.0)
Requirement already satisfied: cachetools<6.0,>=2.0.0 in /opt/conda/lib/python3.10/site-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (5.3.3)
Requirement already satisfied: rsa<5,>=3.1.4 in /opt/conda/lib/python3.10/site-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (4.7.2)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.10/site-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.4.0)
Requirement already satisfied: pyasn1<0.7.0,>=0.4.6 in /opt/conda/lib/python3.10/site-packages (from pyasn1-modules>=0.2.1->google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default]!=2.6.0,<=2.6.3,>=2.2.0->runhouse==0.0.28) (0.6.0)
Installing collected packages: ptyprocess, zipp, websockets, uvloop, ujson, sniffio, shellingham, sentry-sdk, python-multipart, pexpect, orjson, opentelemetry-util-http, opentelemetry-proto, httptools, h11, fsspec, exceptiongroup, dnspython, deprecated, asgiref, apispec, uvicorn, opentelemetry-exporter-otlp-proto-common, importlib-metadata, httpcore, email_validator, cryptography, anyio, watchfiles, typer, starlette, pyOpenSSL, opentelemetry-api, httpx, asyncssh, sshfs, opentelemetry-semantic-conventions, opentelemetry-instrumentation, fastapi-cli, opentelemetry-sdk, opentelemetry-instrumentation-requests, opentelemetry-instrumentation-asgi, fastapi, opentelemetry-instrumentation-fastapi, opentelemetry-exporter-otlp-proto-http, runhouse
  Attempting uninstall: cryptography
    Found existing installation: cryptography 39.0.1
    Uninstalling cryptography-39.0.1:
      Successfully uninstalled cryptography-39.0.1
  Attempting uninstall: pyOpenSSL
    Found existing installation: pyOpenSSL 23.0.0
    Uninstalling pyOpenSSL-23.0.0:
      Successfully uninstalled pyOpenSSL-23.0.0
Successfully installed anyio-4.4.0 apispec-6.6.1 asgiref-3.8.1 asyncssh-2.14.2 cryptography-42.0.8 deprecated-1.2.14 dnspython-2.6.1 email_validator-2.1.1 exceptiongroup-1.2.1 fastapi-0.111.0 fastapi-cli-0.0.4 fsspec-2023.5.0 h11-0.14.0 httpcore-1.0.5 httptools-0.6.1 httpx-0.27.0 importlib-metadata-7.1.0 opentelemetry-api-1.25.0 opentelemetry-exporter-otlp-proto-common-1.25.0 opentelemetry-exporter-otlp-proto-http-1.25.0 opentelemetry-instrumentation-0.46b0 opentelemetry-instrumentation-asgi-0.46b0 opentelemetry-instrumentation-fastapi-0.46b0 opentelemetry-instrumentation-requests-0.46b0 opentelemetry-proto-1.25.0 opentelemetry-sdk-1.25.0 opentelemetry-semantic-conventions-0.46b0 opentelemetry-util-http-0.46b0 orjson-3.10.4 pexpect-4.9.0 ptyprocess-0.7.0 pyOpenSSL-24.1.0 python-multipart-0.0.9 runhouse-0.0.28 sentry-sdk-2.5.1 shellingham-1.5.4 sniffio-1.3.1 sshfs-2023.4.1 starlette-0.37.2 typer-0.12.3 ujson-5.10.0 uvicorn-0.30.1 uvloop-0.19.0 watchfiles-0.22.0 websockets-12.0 zipp-3.19.2
Shared connection to <IP_ADDRESS> closed.
INFO | 2024-06-12 13:02:21.961759 | Running command on fastapi-runhouse-example: mkdir -p ~/.rh; touch ~/.rh/cluster_config.json; echo '{"name": "fastapi-runhouse-example", "resource_type": "cluster", "resource_subtype": "OnDemandCluster", "provenance": null, "visibility": "private", "ips": ["<IP_ADDRESS>"], "server_port": 32300, "server_connection_type": "ssh", "den_auth": false, "use_local_telemetry": false, "ssh_port": 22, "api_server_url": "https://api.run.house", "instance_type": "CPU:2+", "provider": "aws", "open_ports": [], "use_spot": false, "region": "us-east-2", "stable_internal_external_ips": [["<IP_ADDRESS>", "<IP_ADDRESS>"]], "autostop_mins": -1}' > ~/.rh/cluster_config.json
Shared connection to <IP_ADDRESS> closed.
INFO | 2024-06-12 13:02:23.046387 | Running command on fastapi-runhouse-example: runhouse restart --restart-ray --port 32300 --api-server-url https://api.run.house --default-env-name _cluster_default_env --from-python
INFO | 2024-06-12 13:02:27.383278 | Using port: 32300.
INFO | 2024-06-12 13:02:27.383828 | Setting api_server url to https://api.run.house
INFO | 2024-06-12 13:02:27.383922 | Starting server in default env named: _cluster_default_env
INFO | 2024-06-12 13:02:27.383989 | Creating runtime env for conda env: None
INFO | 2024-06-12 13:02:27.385414 | Starting API server using the following command: screen -dm bash -c "/opt/conda/bin/python3 -m runhouse.servers.http.http_server --port 32300 --api-server-url https://api.run.house --default-env-name _cluster_default_env --from-python 2>&1 | tee -a '/home/ubuntu/.rh/server.log' 2>&1".
Executing `pkill -f "/opt/conda/bin/python3 -m runhouse.servers.http.http_server"`
Executing `pkill -f ".*ray.*6379.*"`
Executing `ray start --head --port 6379 --disable-usage-stats`
Usage stats collection is disabled.

Local node IP: <IP_ADDRESS>

--------------------
Ray runtime started.
--------------------

Next steps
  To add another node to this Ray cluster, run
    ray start --address='<IP_ADDRESS>:6379'

  To connect to this Ray cluster:
    import ray
    ray.init()

  To submit a Ray job using the Ray Jobs CLI:
    RAY_ADDRESS='http://<IP_ADDRESS>:8265' ray job submit --working-dir . -- python my_script.py

  See https://docs.ray.io/en/latest/cluster/running-applications/job-submission/index.html
  for more information on submitting Ray jobs to the Ray cluster.

  To terminate the Ray runtime, run
    ray stop

  To view the status of the cluster, use
    ray status

  To monitor and debug Ray, view the dashboard at
    <IP_ADDRESS>:8265

  If connection to the dashboard fails, check your firewall settings and network configuration.
Executing `screen -dm bash -c "/opt/conda/bin/python3 -m runhouse.servers.http.http_server --port 32300 --api-server-url https://api.run.house --default-env-name _cluster_default_env --from-python 2>&1 | tee -a '/home/ubuntu/.rh/server.log' 2>&1"`
INFO | 2024-06-12 13:02:34.807124 | Loaded cluster config from Ray.
INFO | 2024-06-12 13:02:34.809339 | Updated cluster config with parsed argument values.
INFO | 2024-06-12 13:02:34.838024 | Preparing to send telemetry to https://api.run.house:14318
INFO | 2024-06-12 13:02:34.845426 | Successfully added telemetry exporter https://api.run.house:14318
WARNING | 2024-06-12 13:02:34.845612 | Attempting to instrument FastAPI app while already instrumented
WARNING | 2024-06-12 13:02:34.845691 | Attempting to instrument while already instrumented
INFO | 2024-06-12 13:02:36.204163 | Launching Runhouse API server with den_auth=False and use_local_telemetry=False on host=<IP_ADDRESS> and use_https=False and port_arg=32300
INFO:     Started server process [29226]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:32300 (Press CTRL+C to quit)

Shared connection to <IP_ADDRESS> closed.
INFO | 2024-06-12 13:02:37.401994 | Forwarding port 32300 to port 32300 on localhost.
INFO | 2024-06-12 13:02:38.740679 | Server fastapi-runhouse-example is up.
Sentry is attempting to send 2 pending events
Waiting up to 2 seconds
Press Ctrl-C to quit
INFO | 2024-06-12 13:02:39.209612 | Forwarding port 32300 to port 32300 on localhost.

Thanks for reaching out!
The FastAPI app you have set up here is probably not needed for this particular use case of deploying and calling a module (but do let us know otherwise if there's something specific you had in mind). Behind the scenes Runhouse spins up a FastAPI server on the cluster which will allow you to directly call the module on the cluster via an HTTP call. What you are seeing are the logs of the Runhouse server stored on the cluster in path: ~/.rh/server.log.
The below snippet should likely be all you need to deploy and call this module:
import runhouse as rh

import numpy as np
from scipy.special import softmax
from transformers import AutoModelForSequenceClassification, AutoConfig
from transformers import AutoTokenizer

class SentimentAnalysis:

    def __init__(self, model_name="cardiffnlp/twitter-roberta-base-sentiment-latest"):
        self.model_name = model_name
        self.model = None
        self.config = None
        self.tokenizer = None

    @staticmethod
    def preprocess(text):
        """
        Preprocess text (username and link placeholders)
        """
        new_text = []
        for t in text.split(" "):
            t = '@user' if t.startswith('@') and len(t) > 1 else t
            t = 'http' if t.startswith('http') else t
            new_text.append(t)
        return " ".join(new_text)

    def predict(self, text):
        if self.model is None:
            self.model = AutoModelForSequenceClassification.from_pretrained(self.model_name)

        if self.config is None:
            self.config = AutoConfig.from_pretrained(self.model)

        if self.tokenizer is None:
            self.tokenizer = AutoTokenizer.from_pretrained()

        text = SentimentAnalysis.preprocess(text)
        encoded_input = self.tokenizer(text, return_tensors='pt')
        output = self.model(**encoded_input)
        scores = output[0][0].detach().numpy()
        scores = softmax(scores)

        ranking = np.argsort(scores)
        ranking = ranking[::-1]
        l_scores = {}
        for i in range(scores.shape[0]):
            l = self.config.id2label[ranking[i]]
            s = scores[ranking[i]]
            l_scores[l] = np.round(float(s), 4)

        return l_scores

cluster = rh.ondemand_cluster(
    name="fastapi-runhouse-example",
    instance_type="CPU:2+",
    provider="aws",
    region="us-east-1"
).up_if_not()

# Set up an env using the requirements specified in the working dir
my_env = rh.env(name="scorer_env", working_dir="./")

# Send the module and its associated env to the cluster (or reload if it already exists on the cluster)
RemoteScorer = rh.module(SentimentAnalysis, name="remote-scorer").to(cluster, env=my_env)

# Generate a URL that can be used to call the module's "predict" method from anywhere
base_url = f"{RemoteScorer.endpoint()}/predict"
print(base_url)

For example, to then call the predict method via CURL:
curl http://<CLUSTER-IP>:32300/remote-scorer/predict?text="Some text"
A couple other things to note based on the above snippet:

We should generally specify an env for this module in order to ensure that the necessary requirements get installed on the cluster.
Naming the module will make it more convenient to call later on - this can be specified in the module factory
You can use get_or_to instead of to when sending the module to the cluster. This allows you to load the existing module by its name if it was already previously saved on the cluster
You can ssh onto the cluster using: ssh fastapi-runhouse-example and restart the runhouse server anytime by running runhouse restart on the cluster
By setting the model, tokenizer, and config to None in the constructor of the SentimentAnalysis module we can prevent unnecessary reloading when hitting the “predict” endpoint

Thanks for following up @jlewitt1
I probably should have filled in some additional context - I caught up with Donny in our office earlier this week to discuss what we were planning on doing, but didn't fill in details in this issue.
High level, what I'm looking to accomplish is to manage the GPU cluster within business logic of an application that we are developing. Specifically, the goal is to be able to inference a handful of ML Models on GPUs while running the service on CPUs. Our service is implemented using FastAPI, and clients of our service interact through the services API. I want to ensure that the GPU interaction is completely opaque to the end-user as it's an implementation detail - they shouldn't know where the inference is running.
One thing I like about runhouse is that it looks like I can tie the lifecycle of the cluster to the lifecycle of the application - eg: start the cluster up when the app starts up an d terminate the cluster when the app spins down. I also talked with Donny on how to support autoscaling and service discovery mechanics as well. It seems like I can manage the infrastructure through our application rather than having to build and support these services out through our deployment artifacts.
The intent in opening this issue was to highlight a bug in the Cluster.up_if_not() method - it seems like the process/thread that initializes the cluster doesn't ever return to the main control thread. So when I boot up my service and runhouse brings up the GPU cluster for the first time, the service hangs and requires a restart.
Does this make sense?
You can see what I mean if you run the app in my example code. The first time you run it, it will bring up the cluster but the process will hang and FastAPI won't serve requests (eg: the docs page at localhost:8000/docs or the API at localhost:8000/ping). But if you terminate the process and re-launch, it will detect that the cluster is already up and then FastAPI will serve it's API.

Hi Zach! Thanks for raising this and the detailed repro. I've been offline for a couple days for Jewish holidays and didn't get a chance to share the context with Josh, so thanks for the detail here. I've reproduced your error and figured out that it's a minor bug which we fixed on main but haven't released yet, and for some reason wasn't being surfaced through fastapi's lifespan feature (it also wasn't being surfaced when I ran with uvicorn app:app). I've confirmed that the launch works properly in your script on runhouse@main, and we're planning to release within the next couple days (note that if you try upgrading to main, be sure to upgrade SkyPilot too, because we also bumped the SkyPilot version to 0.6.0 in the latest release. You may want to take down any up clusters before doing that). I'll update you here when we release the fix.
Aside, I also noticed that the code doesn't complete because the working_dir isn't being recognized by that requirements.txt, the .git root one directory above is taking precedent. I think we want to change that behavior soon (and some other working_dir things as well), but in the meantime you can explicitly set the working_dir in an rh.env, or simply move it one directory higher to be recognized and installed on the cluster (I also confired that if you do this, your repro will run through in full, see below)
curl -X POST "http://<IP_ADDRESS>:8000/score?text=Good"
{"positive":0.6844,"neutral":0.2628,"negative":0.0527}

Rad - thanks for the update. I'll watch this issue and let you know if it works after your next release.

Hey Zach - we released yesterday and I've confirmed this is fixed (though still moving the requirements.txt to the git root directory). Let me know if you still face any breakage with it.


Watch out for mypy, slowing down pc, and so slow on processing.

When I tried my config in termux, just found out that, it uses to much processing and slows down my phone, and possible crashing termux.
Might use other alternative or disable/remove this from the config.
Alternatively, investigating why. Re-adding cache might be the case but I don't want to put .mypy_cache in my project folder everytime because sometimes I code on temporarily just to test something, this is really annoying that's why I disabled the cache.
In termux I am currently using pyright and pylint and it works well smooth enough.

I fixed the issue by not using them, I removed null ls, mypy and pylint. Replaced them with ruff and basedpyright. Now it doesn't rely on external resources with some kind of heavy programs null-ls: pylint, mypy. And null-ls had this kind of annoying read and write file in my project directory that triggers watchfiles of some of my development, and read and write files constantly, slows down your unit (phone or computer) #10


Feature: Out-site link notification

We should show confirmation when leaving the site. The confirm button should be large block (vuetify props) and the model should have at less text as it could given that if it's too much, even though the user has already know the content they will get annoyed. If possible, include a [Always Redirect (not recommended)] but whether this should be included or not is open to discussion.
When the destination page from the out-site link does not support dark mode, we should launch a kindness notification to the user so that their eyes won't get hurt when they are just trying to know more about us (e.g. browsing the accounting book, take a look at our API docs, etc,.)
This should be conditioned strictly to whether the link support dark mode or not. E.g. some of the toolbox sites DO support dark mode (huge shoutout to those developers!!). If that's the case then we don't need a notif anymore.

For penguin statistics related site, like accounting book, API docs, we can add verified icon and no need to show out-site link notification
For Team members and link exchange, we may need to show out-site link notification.

Will add with v4 frontend.


oops we couldn't connect reason=WebSocket closed with code: 1006 reason:

Fully functioning RDS farm, just installed/configured HTML5 webclient as per instructions, wildcard certificate exported from RDS and registered via Powershell successfully.
All browsers on Windows 10 workstations get the "oops we couldn't connect" to ALL published apps and we see this "websocket closed with code 1006" with "" reason logged.
RDWEB works fine.
Is this somehow related to 2x password prompts in RDWEB?
I'm stumped and can't find any solution/

Thanks for your dedication to our documentation. If we have been unable to review your issue in a timely manner, we sincerely apologize for the delayed response. We have captured the informtion you have provided for review. We are closing this issue for now, but if you feel that it's still a concern, please respond and let us know. If you determine another possible update to our documentation, please don't hesitate to reach out again. #please-close


refactor: replaced the String wrapper object with primitive type string

PR Checklist
Please check to confirm your PR fulfills the following requirements:

[ ] The commit message follows our guidelines: https://github.com/angular/angular-cli/blob/main/CONTRIBUTING.md#-commit-message-guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Does this PR introduce a breaking change?

[ ] Yes
[ ] No

Other information

Can you please change the commit message type to refactor instead of docs?

Can you please change the commit message type to refactor instead of docs?

done, please review


I have same header name in excel v3.1

I have in the Excel file two header cells have the same name  ex: "Sales"
When importing and showing the value of the imported , I can clearly see that ONLY the second cell with "Sales" is taken into the values.

See suggested solution here: https://github.com/Maatwebsite/Laravel-Excel/issues/1825#issuecomment-428576065


Typescript Error Property 'forChild' does not exist on type 'typeof IonicModule'.

Ionic 3 with angular 4 when creating new component typescript error appear .
Typescript Error Property 'forChild' does not exist on type 'typeof IonicModule'.
Ionic Framework: 3.0.1
Ionic App Scripts: 1.3.0
Angular Core: 4.0.0
Angular Compiler CLI: 4.0.0
Node: 7.8.0
OS Platform: Windows 10
Navigator Platform: Win32
User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36

Hello! This has been fixed and will be in the next release. (:


Cleanup and chore

misc cleanup and chore items (commits are explicit)

anyone wanna review ? if not looks like a no brainer to merge

/lgtm
/approve


Avoid code coverage for TYPE_CHECKING if-sections

Closes #13

Codecov Report

Merging #14 (9f0236b) into main (9106c4c) will increase coverage by 3.41%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #14      +/-   ##
==========================================
+ Coverage   71.26%   74.68%   +3.41%
==========================================
  Files           6        6
  Lines          87       79       -8
==========================================
- Hits           62       59       -3
+ Misses         25       20       -5

Flag
Coverage Δ

turtle-canon
74.68% <ø> (+3.41%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

turtle_canon/canon.py
93.33% <ø> (+2.70%)
:arrow_up:

turtle_canon/cli/cmd_turtle_canon.py
81.81% <ø> (+8.74%)
:arrow_up:

turtle_canon/cli/utils.py
26.31% <ø> (-2.26%)
:arrow_down:

Continue to review full report at Codecov.

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


#37 - Add New Login Page

This pull request addresses issue #37 by adding a fully functional login page to the project. Key features include:

Integration with the existing theme and color scheme for seamless user experience.
Addition of a toggleable eye icon on the password field to show or hide the password, enhancing user security.
Implementation of a "Remember Me" checkbox for user convenience.
Console logging of input values. So later anyone can easily get input values and add furthur logic.

@IkramBagban  don't raise PR  before getting assigned , it massed up code

@HimanshuNarware ok


How are packages selected to be featured on the home page?

I couldn't find any information about this in the documentation. That's why I created this issue. I am interested in being featured with Valibot. Currently, Valibot is one of the most popular packages on deno.land/x.

They are currently featured based on manual action from the moderation team. Currently we try to showcase packages with high scores. Somehow, we must have missed featuring Valibot - fixed now!


SAK-29489: Use Fonts (FontAwsome) for icons replacing images

Use Fonts (FontAwsome) for icons replacing images.
Fixing CSS for profile image

Awesome! +1 thanks Uday


Access to event context from contextCallback in publish/send methods

Hi,
it would be nice to have an access to the event context from the contextCallback in state machines. For example:
.Then(context => {})
.Publish(
    context => {}
    contextCallback: publishContext =>
    {
        // here i want to have an access to the context
    }
)

For Send() method as well.

Does context.GetPayload<EventContext>(...) work for you?

Doesn't work. I've tried context.GetPayload(), context.GetPayload<EventContext<TInstance, TData>>(). All throw payload not found exception.

The first argument in the .Publish(...) method is the factory method for the message being published, and it is a ConsumeEventContext which is what you need. The second method is by the endpoint publishing the message, and has no idea that it's being invoked from a state machine, consumer, or otherwise.

Is it hard to develop?

Ok.


Cups not working inside docker with privileged flag

I have error on start cups service in ubuntu 16.04 and fedora 24 inside docker container with --privileged flag:
/usr/sbin/cupsd: error while loading shared libraries: libcupsmime.so.1: cannot open shared object file: Permission denied
Cups versions: 2.*

We do not provide any explicit support for CUPS inside docker containers, nor do we provide pre-compiled containers for use.
Did you build the container yourself or download it from a third-party?
What are the permissions of the named shared library and its parent directories?

I have tried several third-party apps (for example: https://hub.docker.com/r/gfjardim/cups/), and bult own containers based on official ubuntu and fedora repos. All containers work perfect without --priveleged flag, but in my case i neded usb.
Is not god, but for experiment i have added full permissions (777) for all paths inside container, but is not work

Sorry, not sure we can be any help here, doesn't seem to be a CUPS issue but a container issue... :/


Constantin algorithm : index out of range ?

Hi,
I just wanted to share a potential bug in the constantin algorithm :
var baseTriad = tinycolor(hex).tetrad(); => returning something like [0, 1, 2, 3]
And later, when computing the accent colors :
getColorObject(tinycolor.mix(baseDark, baseTriad[4], 15).saturate(80).lighten(65), 'A100'),

=> baseTriad[4] is undefined.
I don't know if that is a bug, though.

Well, I just checked out, duplicate with closed one : https://github.com/mbitson/mcg/issues/109


Need mysql syntax  for creating the tables inside the database so an existing database can be re-used

Checklist

Please read the setup instructions
Please read the FAQ

What is troubling you?
Attempted to use npm container with an existing external mariadb, unable to login to npm and inside the npm database I can see no tables.  I need to know what to create to make this work OK, thanks

Can be closed, error with config.json

user typo


ci: properly fix diff percent scale

Fixing #151 properly now. Didn't test last one xD

Current dependencies on/for this PR:

main

PR #152   👈

This stack of pull requests is managed by Graphite.


Prevent unnecessary callbacks with pagingOptions

The $watch expression on pagingOptions shouldn't fire if only the totalItems changed. Currently, any time the callback is fired (on load, or changing page/pageSize) and the callback updates the totalItems, the $watch gets triggered and the callback fires a second time unnecessarily.

Fixed in 1.0.2


KAFKA-14617: Fill brokerEpoch in AlterPartitionRequest

As the second part of the KIP-903, it updates the AlterPartitionRequest:

Deprecate the NewIsr field
Create a new field BrokerState with BrokerId and BrokerEpoch
Bump the AlterPartition version to 3

Also in this change, alterPartitionManager will start to manage the current broker epochs which come from FetchRequests.
https://issues.apache.org/jira/browse/KAFKA-14617

Will send the API change and the controller side change first.


Deprecated variables

Summary
Warnings for deprecated variables - See log output
Steps to reproduce
Run a backup
What is the expected correct behavior?
No warnings
Relevant logs and/or screenshots
2023-11-22.09:02:49 [WARN] ** [db-backup01-scheduler] Deprecated and unsupported variable 'DB_DUMP_BEGIN' detected - Please upgrade your variables as they will be removed in version 4.3.0
2023-11-22.09:02:49 [WARN] ** [db-backup01-scheduler] Deprecated and unsupported variable 'DB_DUMP_FREQ' detected - Please upgrade your variables as they will be removed in version 4.3.0
2023-11-22.09:02:49 [WARN] ** [db-backup01-scheduler] Legacy unsupported variable 'COMPRESSION' detected - Please upgrade your variables as they will be removed in version 4.3.0
2023-11-22.09:02:49 [WARN] ** [db-backup01-scheduler] Legacy unsupported variable 'SPLIT_DB' detected - Please upgrade your variables as they will be removed in version 4.3.0

Environment
unRAID Container

Image version / tag:  tiredofit/db-backup:latest
Host OS: unRAID

@Tyree those variables are deprecated and will be removed in version 4.3.0 as the message suggests. If you are using v4.x, please refer to the relevant sections in the README file, e.g. https://github.com/tiredofit/docker-db-backup#scheduling-options and update your env vars.

Yes. I think this is more of an issue with the unRAID template I am using. I think it needs to be updated. I have posted these issues to the template's support thread but have had no response.
Thanks

If those warning messages really bothers you, the easiest way is to replace the image tag from latest to 3.12.0.


Cannot get first example to load

I've replicated the code listed in the readme in a new project, but cannot get anything to run in the browser.  I have added the autoform and collection2 packages and have not removed insecure or autopublish.  Running Meteor on Windows.
The schema validates when I insert a book, so it's just the template that will not load.
Any thoughts on what step I have missed?
client/index.html
<template name="insertBookForm">
    {{> quickForm collection="Books" id="insertBookForm" type="insert"}}
</template>

lib/commons.js
Books = new Mongo.Collection("books");
Books.attachSchema(new SimpleSchema({
    title: {
        type: String,
        label: "Title",
        max: 200
    },
    author: {
        type: String,
        label: "Author"
    },
    copies: {
        type: Number,
        label: "Number of copies",
        min: 0
    },
    lastCheckedOut: {
        type: Date,
        label: "Last date this book was checked out",
        optional: true
    },
    summary: {
        type: String,
        label: "Brief summary",
        optional: true,
        max: 1000
    }
}));

Resolved it:

needed to also add code to insert the template
looks like the code to attach a schema has changed in collection2, but not updated in the autoform docs


Remove certbot renewal from setup script

This is now already done when installing ngnix on Debian Jessie.

:+1:


Bug: Opening the commit history sometimes crashes the app

@arihant2math Do you have any something contextual data such as log, screenshot?

I stabilized user pages by latest breaking-change ‘Improve error handling’. Next stage is repository pages. I will work on this.

Can you check if this issue is still present?