When using the api version one to upload an image it returns none

Summary
When using the api version one to upload an image it returns none
Reproduction Steps
After validation
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api_v1 = tweepy.API(auth)

....

try:
    media = api_v1.media_upload(image_path)   <---------------------  this line
    media_id = re.search("media_id=(.+?),", str(media)).group(1)
except Exception as e:
    print(f"Error uploading media: {e}")

Minimal Reproducible Example
No response
Expected Results
Image to upload successfully
Actual Results
Error uploading media: 'NoneType' object has no attribute 'items'
Twitter API Access Plan
free
Tweepy Version
Version: 4.14.0
Checklist

[X] I have searched for duplicate issues.
[ ] If applicable, I have shown the entire traceback.
[ ] If applicable, I have removed any visible credentials from my code and/or screenshots.

Additional Context
No response

I'm unable to reproduce this.
It's likely this was due to the issue in #2152.
You'll need to provide the full traceback if this is still occurring.

Just letting you know that I had the same issue this morning, but it seems to be fixed now.
Sadly I lost the stack trace, but if it happens again I will post it here.

@LeifHenriksen Same, It was Twitter, a few hours later same code, no changes, working (checked a few minutes ago)
@Harmon758 I dont know if its related to https://github.com/tweepy/tweepy/issues/2152 , But the current status is that it's working, I think we can close it as something that happened on Twitter's end.

The library returning None for a response from the API with no content is not unexpected, so it was likely due to #2152.


New version: GOMLab.GOMPlayer version <IP_ADDRESS>65

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

https://github.com/microsoft/winget-pkgs/issues/147885
https://github.com/microsoft/winget-pkgs/issues/137039

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installer Verification Analysis Context Information:
The orchestrator function 'InstallerOrchestrator' failed: "The orchestrator function 'ESRPOrchestrator' failed: "Exception of type 'Microsoft.WinGetSvc.WinGet.ESRP.Common.WinGetESRPTimeoutException' was thrown.". See the function execution logs for additional details.". See the function execution logs for additional details.
The orchestrator function 'InstallerOrchestrator' failed: "The orchestrator function 'ESRPOrchestrator' failed: "Exception of type 'Microsoft.WinGetSvc.WinGet.ESRP.Common.WinGetESRPTimeoutException' was thrown.". See the function execution logs for additional details.". See the function execution logs for additional details.

(Automated response - build 876.)

Automatic Validation ended with:

Installer Verification Analysis Context Information:
Installer https://cdn.gomlab.com/gretech/player/GOMPLAYERGLOBALSETUP_CHROME.EXE
Scan request id: '09d83188-9936-4279-bf8a-cde05b363e52'
Error information: BlockingDetectionFound

4/8/2024 9:43:51 PM

Installer Validation

(Automated response - build 876.)

This might be due to a network block of data centers, to prevent automated downloads.
(Automated response - build 876.)

/azp run


running on windows docker

Is it possible to run this on windows somehow. i have a wpf application and currently i give access through vm to my partners. i want to have a colaborative session like we do vlc/chrome.

Did not try it on windows, but since its docker it should be working.


I am trying to show my team how easy Pulumi is so that we can adopt it. But I'm actually running into a lot of issues.
I run $ pulumi up and it makes a Cloud SQL instance after about 7 minutes. Now I want to delete that instance. So I try to unprotect it and then destroy it. But it tells me I can't destroy it.
Example
➜  ~/code/infra/pulumi/app git:(feat/pulumi-playground) ✗ pulumi state unprotect "urn:pulumi:staging::my-sample::gcp:sql/databaseInstance:DatabaseInstance::pulumi-postgres"
 warning: This command will edit your stack's state directly. Confirm? Yes
Resource unprotected
➜  ~/code/infra/pulumi/app git:(feat/pulumi-playground) ✗ pulumi destroy --target "urn:pulumi:staging::eluve-sample::gcp:sql/databaseInstance:DatabaseInstance::pulumi-postgres"

...

Diagnostics:
  gcp:sql:DatabaseInstance (pulumi-postgres):
    error: deleting urn:pulumi:staging::my-sample::gcp:sql/databaseInstance:DatabaseInstance::pulumi-postgres: 1 error occurred:
        * Error, failed to delete instance because deletion_protection is set to true. Set it to false to proceed with instance deletion

Unprotect does not appear to mark it as unprotected.
There is nothing that prevents me from deleting on Google Cloud's side. This command works perfectly fine:
$ gcloud sql instances delete pulumi-postgres-c407e1e

Output of pulumi about

CLI
Version      3.83.0
Go Version   go1.21.1
Go Compiler  gc

Plugins
NAME    VERSION
docker  4.4.1
gcp     6.65.1
nodejs  unknown
random  4.13.4

Host
OS       darwin
Version  13.5.2
Arch     arm64

This project is written in nodejs: executable='/opt/homebrew/bin/node' version='v20.6.1'

Current Stack: staging

TYPE                                         URN
pulumi:pulumi:Stack                          urn:pulumi:staging::my-sample::pulumi:pulumi:Stack::my-sample-staging
pulumi:providers:gcp                         urn:pulumi:staging::my-sample::pulumi:providers:gcp::default_6_65_1
gcp:projects/service:Service                 urn:pulumi:staging::my-sample::gcp:projects/service:Service::CloudRunApi
gcp:projects/service:Service                 urn:pulumi:staging::my-sample::gcp:projects/service:Service::ServerlessVPCAccessApi
gcp:projects/service:Service                 urn:pulumi:staging::my-sample::gcp:projects/service:Service::ServiceNetworkingApi
gcp:projects/service:Service                 urn:pulumi:staging::my-sample::gcp:projects/service:Service::EnableArtifactAPI
gcp:projects/service:Service                 urn:pulumi:staging::my-sample::gcp:projects/service:Service::ComputeEngineApi
gcp:projects/service:Service                 urn:pulumi:staging::my-sample::gcp:projects/service:Service::SqlAdminApi
pulumi:providers:random                      urn:pulumi:staging::my-sample::pulumi:providers:random::default_4_13_4
gcp:compute/network:Network                  urn:pulumi:staging::my-sample::gcp:compute/network:Network::pulumiPrivateNetwork
random:index/randomString:RandomString       urn:pulumi:staging::my-sample::random:index/randomString:RandomString::unique-string
gcp:compute/globalAddress:GlobalAddress      urn:pulumi:staging::my-sample::gcp:compute/globalAddress:GlobalAddress::pulumiPrivateIpAddress
gcp:vpcaccess/connector:Connector            urn:pulumi:staging::my-sample::gcp:vpcaccess/connector:Connector::pulumi-connector
gcp:artifactregistry/repository:Repository   urn:pulumi:staging::my-sample::gcp:artifactregistry/repository:Repository::repository
gcp:servicenetworking/connection:Connection  urn:pulumi:staging::my-sample::gcp:servicenetworking/connection:Connection::pulumiPrivateVpcConnection
pulumi:providers:docker                      urn:pulumi:staging::my-sample::pulumi:providers:docker::default_4_4_1
docker:index/image:Image                     urn:pulumi:staging::my-sample::docker:index/image:Image::my-app-image
docker:index/image:Image                     urn:pulumi:staging::my-sample::docker:index/image:Image::hasura-image
gcp:sql/databaseInstance:DatabaseInstance    urn:pulumi:staging::my-sample::gcp:sql/databaseInstance:DatabaseInstance::pulumi-postgres

Found no pending operations associated with staging

Backend
Name           pulumi.com

Dependencies:
NAME            VERSION
@pulumi/random  4.13.4
@types/node     20.6.2
@pulumi/docker  4.4.1
@pulumi/gcp     6.65.1
@pulumi/pulumi  3.83.0

Pulumi locates its logs in /var/folders/kq/m_g2507n4919pk9_dmxzxg080000gn/T/ by default

Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Thanks for the reply, @Frassle. What setting specifically am I missing? The only two I could find are:
protect: false
deletionProtectionEnabled: false
const postgresCloudSqlInstance = new gcp.sql.DatabaseInstance(
  "pulumi-postgres",
  {
    region: gcpRegion,
    databaseVersion: "POSTGRES_15",
    rootPassword: POSTGRES_PASSWORD,
    settings: {
      diskSize: 11,
      diskAutoresize: true,
      diskAutoresizeLimit: 20,
      tier: "db-g1-small", // 1 shared cpu, 1.7GB RAM
      ipConfiguration: {
        ipv4Enabled: true, // enables public IP that can only be accessed by the authorized networks defined below
        authorizedNetworks: AUTHORIZED_NETWORKS,
        privateNetwork: privateNetwork.id,
        enablePrivatePathForGoogleCloudServices: true,
      },
      backupConfiguration: {
        enabled: true,
        backupRetentionSettings: {
          retentionUnit: "COUNT",
          retainedBackups: 7,
        },
        pointInTimeRecoveryEnabled: true,
        transactionLogRetentionDays: 7,
      },
      deletionProtectionEnabled: false,
      insightsConfig: {
        queryInsightsEnabled: true,
        recordApplicationTags: true,
        recordClientAddress: true,
        queryPlansPerMinute: 5, // default is 5, so the box will look unchecked in the UI
      },
    },
  },
  {
    dependsOn: [privateVpcConnection],
    protect: false,
  }
);

Both need to be false, but to set deletion_protection to false you need to run an up that sets it. It doesn't have a way to edit the flag in state directly like protect has pulumi state unprotect.

It looks like there is a 3rd setting!
deletionProtection: false <-- Terraform provider?
deletionProtectionEnabled: false <-- controls the setting in Google Cloud?
protect: false <-- Pulumi provider?
const postgresCloudSqlInstance = new gcp.sql.DatabaseInstance(
  "pulumi-postgres",
  {
    region: gcpRegion,
    databaseVersion: "POSTGRES_15",
    rootPassword: POSTGRES_PASSWORD
    deletionProtection: false, // #1 -- Terraform?
    settings: {
      deletionProtectionEnabled: false, // #2 -- GCP?
      diskSize: 11,
      diskAutoresize: true,
      diskAutoresizeLimit: 20,
      tier: "db-g1-small", // 1 shared cpu, 1.7GB RAM
    },
  },
  {
    dependsOn: [privateVpcConnection],
    protect: false, // #3 -- Pulumi?
  }
);

Ah yes, I was referring to deletionProtection didn't notice you were referencing deletionProtectionEnabled. But yes your summary above is correct, there's the bit for Terraform, the bit for Pulumi, and the bit for Google. I think at least the Terraform and Pulumi bits need to be false to allow destroy to work, not sure if deletionProtectionEnabled matters at this level.

Even though I think this experience is confusing and the docs are not clear, I'm going to close this because I was able to figure it out. The details are in my previous comment.


Not ignoring parts of strings marked to ignore

Please ensure you have given all the following requested information in your report.
Please select the affected platforms

[ X] Android Studio
[ ] IntelliJ IDEA

Version of Plugin and IDE

Plugin Version:1.3
IDE Version:Android Studio 3.5
Build #AI-191.8<IP_ADDRESS>91312, built on August 9, 2019
JRE: 1.8.0_202-release-1483-b49-5587405 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 5.0.0-27-generic

Issue details
According to https://developer.android.com/guide/topics/resources/localization, it should be possible to mark sections to be not translated with xliff:g</xliff:g>, such as number placeholders and embedded format strings.  However the plugin doesn't honour that.
Attempting to translate this
<string name="configuration_error_explaination">Your controller reported the following configuration error:<xliff:g>\n\n%1$s\n\n</xliff:g>Go into the Tuning section, fix the problem and power cycle your controller.</string>

into French gives
<string name="configuration_error_explaination">Votre contrôleur a signalé l'erreur de configuration suivante: <xliff: g> \ n \ n% 1 $ \ n \ n </ xliff: g> Allez dans la section Tuning, fixer le cycle de problème et la puissance de votre contrôleur.</string>

Which breaks the \n and the formatted number.

HI, you can update to V1.4, which adds support for the xliff:g tag.


Setup: Update release to 0.0.3

Signed-off-by: Till Maas<EMAIL_ADDRESS>

Coverage remained the same at 69.87% when pulling 061800b0ca7deaf5046be69f24e6eac5a7a03aab on tyll:bump_release into 306686803b259b4865213479728774a56fb377c7 on nmstate:master.


Make placeholder links optional

Long story short - after update to Bootstrap beta 4 I've noticed that all a.btn has black color text. As I investigated there were discussion in #19402 which come up to neutralize links without href to the plain text style. Also some people mentioned that it breaks the style of their react app so their removed "reboot.scss" from their build. I think removing "reboot" is not a good option as there are many useful things, but make the reset of placeholder links optional(enabled by default) is a perfect compromise for rich web app users

Are there that many <a>s out there without hrefs that need the clickable link styling?

As it was mentioned in the prev discussion any app with react and react router. The truth is the current bootstrap state follows the w3c, but the fact is when you work on a react app with react, angular, etc you need a button like control which partly changes current state without submitting form. So many developers as me tend to use  tag

Speaking from experience using href'less a="" to fire the state change in JS app is bad pattern as it breaks middle mouse click - the shortcut for new tab, especially in something routable like react-router.
Having styles letting you mimic links appearance with buttons seems better IMHO. This is why its so good to be able to put buttons in dropdowns and pills in v4. ;)

Thoughts from @patrickhlauke maybe?

personally, i'd be hardline and say that if you're using <a> without an href, you ARE defining an anchor rather than a link and the styling should follow this - and that react should stop abusing this pattern this way. making this a switch that can be enabled if needed sounds like a pragmatic compromise. it feels dirty, but at least it's optional.

I agree with @patrickhlauke. Plus a tags without href are not focusable, off the tabindex and not keyboard accessible.
Although @jalkoby is right about React application doing this, I don't like it to feel dirty 😃. I would encourage Bootstrap user to overwrite it on their code base if they want to.
@mdo up to you.

Closing out then—we can revisit in the future, though. I haven't seen a huge number of complaints about this yet, so if we don't have to add another option, I'd like to avoid it.


build-script-helper.py: remove unused distutils import

distutils was deprecated in Python 3.10 and will be removed in Python 3.12. We should not depend on it and this import looks unused anyway.

@swift-ci test


Better in-combat identity

Help identify the active combatant if they are in the rolodex, such as

hover the tab to highlight on the scene
some visual treatment to the active combatant tab
button to select, not just ping, the tab's token
option to link the active tab to the active combatant

Resolved in v1.1.0


SQLite3 errors during configuring gophish and evilginx

Expected Behavior
Build with no errors
Current Behavior
---During GoPhish configuration---
go: downloading github.com/jinzhu/inflection v1.0.0
go: downloading github.com/andybalholm/cascadia v1.0.0
go: downloading golang.org/x/net v0.0.0-20210614182718-04defd469f4e
go: downloading github.com/emersion/go-textwrapper v0.0.0-20160606182133-d0e65e56babe
go: downloading github.com/golang/mock v1.6.0
github.com/mattn/go-sqlite3
sqlite3-binding.c: In function ‘sqlite3SelectNew’:
sqlite3-binding.c:128049:10: warning: function may return address of local variable [-Wreturn-local-addr]
128049 |   return pNew;
|          ^~~~
sqlite3-binding.c:128009:10: note: declared here
128009 |   Select standin;
|          ^~~~~~~
[evilgophish setup] [+] Configured gophish!
[evilgophish setup] [*] Configuring evilginx2
go: downloading github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
---During evilginx2 configuration---
go: downloading github.com/tidwall/pretty v1.0.0
go: downloading github.com/cenkalti/backoff/v3 v3.0.0
go: downloading golang.org/x/text v0.3.2
go: downloading gopkg.in/square/go-jose.v2 v2.3.1
go: downloading github.com/tidwall/tinyqueue v0.0.0-20180302190814-1e39f5511563
github.com/mattn/go-sqlite3
sqlite3-binding.c: In function ‘sqlite3SelectNew’:
sqlite3-binding.c:128049:10: warning: function may return address of local variable [-Wreturn-local-addr]
128049 |   return pNew;
|          ^~~~
sqlite3-binding.c:128009:10: note: declared here
128009 |   Select standin;
|          ^~~~~~~
[evilgophish setup] [+] Configured evilginx2!
[evilgophish setup] [+] Installation complete! When ready start apache with: systemctl restart apache2
[evilgophish setup] [*] It is recommended to run all servers inside a tmux session to avoid losing them over SSH!
Steps to Reproduce
Ran script with default parameters based on example provided.
On Ubuntu 22.04 LTS
Configuration does not complete and GoPhish/evilginx2 are not accessible.

I did find this:
https://the-pentesting-guide.marmeus.com/humint/gophish-phishing
sudo bash -c 'export CGO_CFLAGS="-g -O2 -Wno-return-local-addr"; go build'
I'm nowhere near good at this portion.  Not sure what causes this error to be thrown.  Could this be evaluated and added to the build script?
Thanks!


Custom toolbar format - would like to have a vertical popup menu as opposed to its current horizontal scroll

Would like to create a toolbar that has two main options:

Attachments
Text formatting

On touching an option, a menu would popup vertically with more child options.
Is there a way to do this?

I created a custom toolbar on the bumpingApp fork


just tidy up some logic

Signed-off-by: lucming<EMAIL_ADDRESS>Ⅰ. Describe what this PR does

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

cool, are you trying to use koordinator in internal environment? looking forward to hearing your voice: https://github.com/koordinator-sh/koordinator/issues/466

/approve

cool, are you trying to use koordinator in internal environment? looking forward to hearing your voice: #466

yes,we intend to something about mixed deploy,this project will be used as a shelf.


pep8: fix E124 and E111

Automated message from Dropbox CLA bot
@AZtheAsian, it looks like you've already signed the Dropbox CLA. Thanks!

This looks great to me.
@timabbott what should we do about the conflicts. If @AZtheAsian just fixes it another one will probably crop up since there are a bunch of pep8 commits in the queue.

What part of the tests are failing?

./tools/update-prod-static But multiple pull requests are failing the same test which means it is probably something unrelated to your commits.

Merged, thanks @AZtheAsian!


Sporadically, the "slick-initialized" class is added but the "init" event isn't triggered

I think this has to do with the fact that in Slick.prototype.init, the $slider jQuery element is for some reason being used to construct a new jQuery element, as follows:
$(_.$slider)
I assume this is meant to perform a new jQuery lookup using the same selector.
However, when triggering the event, we're triggering it on the "old" jQuery lookup results, i.e.:
_.$slider.trigger('init', [_]);
I believe this should be changed to:
$(_.$slider).trigger('init', [_]);

Go ahead and provide some tests/examples to demonstrate, and submit a pull-request with the fix and an example showing it being fixed :) I can merge after reviewing.

Hey, I'm going to close this because there's no test case, per the contributing guidelines, but if you'd like to make one we could reopen. Thanks!


How to use querystring?

Assume I had a pushUrl rtmp://localhost/live/${name}?scale=2&format=mp4?
Can I use the params scale: 2 and format: mp4 in the builtin directives.
scale may adjust the video size. and format may change video format.
Every live session has different scale and format value.

I was interested in this as well.  I was assuming you could just grab them via the variable name ($scale, $format) but I need to test that later today.  Does anyone else know?


Incorrect copy in delete icon feature under Organizational settings

Context
Under organizational settings, the copy for deleting an icon is in plural ("delete icons"), while it only deletes one icon, misguiding the user as it seems it will erase them all
Steps to Reproduce
Please break down here below all the needed steps to reproduce the issue

As an organizational admin, login into settings page
Upload an icon
You can only delete the icon through the "delete icons" cta

Current Result
CTA states "delete icons"
Expected result
it should be in singular: "delete icon"

Where's the PR for this ticket?

Oops, fixed 🙈


Option opens up extension page instead of options page

Hi @allanino
Haven't checked the extension for a while and I found a problem when I used it today.
When I clicked on the "options", chrome takes me to the extension page instead of options page.html page, could you please fix it? Thanks.

Hi @pingshunhuangalex,
I tested it and it redirects to chrome://extensions/?options=hekgnjanoidbfmamlpmomipllbfmlnjg, where hekgnjanoidbfmamlpmomipllbfmlnjg is Sci-Hub-Fy ID in Chrome. It's not just the extension page, as the options.html page is rendered at it's center.
It shows the option to select a domain at the center of the screen, as expected. Could you please check it again?

Hi @allanino
I found where the problem is. It's the "Enable Material Design extensions" flag in chrome lab that is breaking the new chrome.runtime.openOptionsPage(). It's bit of a shame.
On the other side, the rest of my extensions actually don't trigger this problem as they all load page via chrome-extension:// + chrome.runtime.id + /options.html. Is this anything you can fix? If you prefer the latest openOptionsPage() syntax, then just keep it as it is then, no big deal. Thanks.

Thanks @pingshunhuangalex! I have merged your PR, after fixing some conflicts. Please read my comment in #9.


forcing all non-multi geometries to be multi

This just wraps non-multis into multi. I actually need to create multi-geom test case though, so give me a little bit and this PR should have a new test with multis just to make sure its all safe and sound.

Yeah hold off need to fix the multi case.

@chelm looks good to me, merging unless you still want me to hold off.

@ngoldman rock n roll


feature: create a button for dark/light mode

Description
Please include a brief summary of the change and include the relevant issue(s).
Closes #65
What change does this PR introduce?
Please select the relevant option(s).

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] CI/CD (updates related to the CI/CD process)
[ ] Documentation update (changes to docs/code comments)
[ ] Chore (miscellaneous tasks that do not fall into the above options)

What is the proposed approach?
Please give a short overview/explanation on the approach taken to resolve the issue(s).
Checklist:

[ ] The commit message follows our adopted guidelines
[ ] Testing has been done for the change(s) added (for bug fixes/features)
[ ] Relevant comments/docs have been added/updated (for bug fixes/features)

css files could be colocated with the toggle button but that would break our folder structure thus why it is in index.css

which component package can do this?

though it doesn't look exactly like the one in the issue, it actually looks cool:  https://www.npmjs.com/package/react-toggle-dark-mode   . This one also looks good, it looks exactly like the one in the issue: https://github.com/todd-elvers/react-dark-mode-toggle-2

the new button looks good

Regarding theme of home screen. It is mixed up. As you said another pr requests for all theming problem would do, but the button is done.


RataDie calculation

node v0.10
new Date(2019, 2, 31)
Sat Mar 30 2019 23:00:00 GMT-0100 (AZOT)
node v6.11
new Date(2019, 2, 31)
2019-03-31T01:00:00.000Z
latest version of chrome (62.0.3202.62)
new Date(2019, 2, 31)
Sun Mar 31 2019 01:00:00 GMT+0000 (AZOST)
result of
getTimeExtended()
https://github.com/iLib-js/iLib/blob/development/js/lib/RataDie.js#L282
node v0.10  -<PHONE_NUMBER>000:Sun Mar 31 2019 01:00:00

var value = new GregorianDate({year:2019, month:3, day:31, timezone:'local'})
undefined
var date = DateFactory(value)
undefined
date.getTimeExtended()
1553994000000

node v6.11  -<PHONE_NUMBER>000 : Sat Mar 30 2019 23:00:00

var value = new GregorianDate({year:2019, month:3, day:31, timezone:'local'})
undefined
var date = DateFactory(value)
undefined
date.getTimeExtended()
1553990400000

latest version of chrome (62.0.3202.62)  -<PHONE_NUMBER>000 :Sat Mar 30 2019 23:00:00

const myValue = new GregorianDate({year:2019, month:3, day:31, timezone:'local'})
const myDate = DateFactory(myValue)
console.log(myDate.getTimeExtended())
1553990400000

I guess that iLib RataDie is based on old javascript engine.

We need to fix this logic(https://github.com/iLib-js/iLib/blob/development/js/lib/GregorianDate.js#L160).
// if dst is defined, the intrinsic Date object has no way of specifying which version of a time you mean
// in the overlap time at the end of DST. Do you mean the daylight 1:30am or the standard 1:30am? In this
// case, use the ilib calculations below, which can distinguish between the two properly
var d = new Date(this.year, this.month-1, this.day, this.hour, this.minute, this.second, this.millisecond);
this.offset = -d.getTimezoneOffset() / 1440;

Maybe there was a change of the way to judge time(daylight/standard).


HEAD reported as an invalid request handler

Describe the bug
VS Code is reporting exporting a HEAD request handler with the following error:
Invalid export 'HEAD' (valid exports are prerender, trailingSlash, config, GET, POST, PUT, PATCH, DELETE, OPTIONS, or anything with a '_' prefix)ts(71001)

The HEAD handler is properly called when a HEAD request is issued, and svelte-check doesn't complain about it either, so my guess is that this is an error related to the language tools.
I also noted that HEAD is not listed as a valid verb at the documentation (https://kit.svelte.dev/docs/routing#server)
Reproduction
export const HEAD = (() => new Response(null, { status: 200 })) satisfies RequestHandler

Expected behaviour
I don't expect an error here
System Info

Svelte  v3.57.0
SvelteKit v1.13
Svelte Check v3.1.4
Svelte for VS Code v107.2.5
VSCode
Version: 1.76.2
Commit: ee2b180d582a7f601fa6ecfdad8d9fd269ab1884
Date: 2023-03-14T17:54:09.061Z
Electron: 19.1.11
Chromium: 102.0.5005.196
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Darwin x64 22.1.0
Sandboxed: Yes

Which package is the issue about?
Svelte for VS Code extension
Additional Information, eg. Screenshots
No response

Then the question is: Why isn't HEAD a valid request handler?
(this issue discusses the HEAD verb as if nothing strange about it?!: https://github.com/sveltejs/kit/issues/9164)

Giving this the enhancement label - I think we should add official support for having a HEAD export in +server.js


feat: add custom highlighter option

At the moment, Rehype Pretty Code only allows the Shiki theme to be configured. By adding a getHighlighter option, we can let users configure any present or future Shiki options without having to manually add support for them in Rehype Pretty Code.
For example, it is currently impossible to configure the langs option. This change allows the user to pass in a highlighter instance with the langs option already set.
The getHighlighter function is given the theme options prepared by Rehype Pretty Code, allowing the custom highlighter to support light and dark modes.

Thanks!


Can't resolve 'docs/src/modules/components/Pagination' in...

The relevant demo is functional, though it appears you've added code and are running it locally. Since there's not enough info I'm gong to close this, but feel free to provide more info or ask a question in a new issue.

@caleb-harrelson how do we exactly add the pagination component then?


feat(phone-input): phone input restyle for v4

I noticed the alignment of the country dropdown button looks a bit weird with the hover/clicked color, mainly because of the lack of space on the right side of the caret. Is that how the design is supposed to be?
Otherwise the PR looks good.

I noticed the alignment of the country dropdown button looks a bit weird with the hover/clicked color, mainly because of the lack of space on the right side of the caret. Is that how the design is supposed to be? Otherwise the PR looks good.

Hi Jordan, I took this back to design and they updated the spacing around the caret. I've applied that now. Can you review again if you have time?

I noticed the alignment of the country dropdown button looks a bit weird with the hover/clicked color, mainly because of the lack of space on the right side of the caret. Is that how the design is supposed to be? Otherwise the PR looks good.

Hi Jordan, I took this back to design and they updated the spacing around the caret. I've applied that now. Can you review again if you have time?

looks good!


Multiple Offerings and Recurring Events Refactor

Issue Description
Fixes #1335

Most of the existing logic for our multiple offerings and recurring events are duplicates. We need to merge both functionalities into one, and change the workflow on the frontend.

Changes

Added a new integer column, seriesId, into the model.
Refactored logic that used MultipleOffering and RecurringId to use the seriesId, merging logic where necessary.
Reworked the UI on Create Event to accomodate the change, using a single toggle for both multiple offerings and recurring series, instead of our previous two toggles for multiple offerings and recurring events.
Updated tests.

Testing

Run the test suite and ensure it is functional.
Step through parts of the application and ensure that they are functional despite the many introduced changes.

The UI for the recurring events looks a little bit awkward when you first click on it and the style of the button is not consistent with the UI with the rest of the site.

I suggest changing the text of the button to something like "add another offering" and have the pop-up look populate like this by default

One last thing the button only appears in the center of the window, but you can click the highlighted area and it still activates its function.

There is an issue with the toggle for multiple offerings, specifically, with the weekly option. If on the multiple offerings modal, we select weekly toggle, then we cancel it so that modal closes, then we reopen the modal for multiple offerings, and click on the weekly toggle, it shows the unconstructed table with Generated Events, but it is empty because I did not yet create any event, so it seems awkward to have a table with column names but no information. The table shouldn't be generated at all if only I did not already create the weekly event with the information.

Another issue with the weekly toggle for multiple offerings is that it saves all the information that I add to it. So if I create an event with a weekly toggle, and then I cancel it, and then reopen the modal, it will still show the modal with all the information I input previously, which shouldn't be the case unless we save it

When I open the modal, and I do not input any information, and hit Save, it executes successfully even though it shouldn't. It creates an empty table with no information, just the column names. And that is the same way if I click on the toggle for weekly events in the modal, and I don't input any information, and hit Save, it says that Events created, even though it is empty

Another problem is with the error message in the modal. If I open the modal, and I click on the add button to add events, and I do not input any information, and hit Save, it highlights everything in red, which is good, and leaves an error flash warning message. That is good. But when I cancel the modal and reopen it, there is a warning message left still even though it is not applicable to the new modal opening.

Also, the spacing for the weekly option in multiple offerings seems too tight. It would be nice to give it some space between the boxes and texts

When making a event occur more than once the name input into the pop-up window will be what the event is displayed as in the event list

When saving the recurring event the event name on the create event page should probably reflect whatever changes are made in the pop-up window

Something is going on with the datepicker in the modal. I selected the date for today but the time is later than what it is right now, and it is throwing me a warning, saying that I picked the date in the past

Something is going on with the datepicker in the modal. I selected the date for today but the time is later than what it is right now, and it is throwing me a warning, saying that I picked the date in the past

I just tested this in development and the issue exists in development as well. Will fix in this PR though. Thanks for catching that.


Only refresh SQLAlchemy ORM objects when needed

Summary
This change helps speed up the SQL building process by only refreshing SQLAlchemy ORM objects when the attribute is not already loaded. I did some profiling and this was one of the causes of slower SQL build times.
After the migration to async database requests, we had to explicitly load database object attributes when they were needed with session.refresh(...). However, we were overdoing this by consistently refreshing attributes that had already been loaded, thereby making many unnecessary calls to the database.
Test Plan
No additional tests, but existing ones should pass.

[ ] PR has an associated issue: #
[x] make check passes
[ ] make test shows 100% unit test coverage

Deployment Plan

@agorajek haha yes, I did a second round of profiling this morning and realized that we can further speed up the query building by just caching some of the antlr SQL parsing calls.


[SPARK-18220][SQL] read Hive orc table with varchar column should not fail

What changes were proposed in this pull request?
Spark SQL only has StringType, when reading hive table with varchar column, we will read that column as StringType. However, we still need to use varchar ObjectInspector to read varchar column in hive table, which means we need to know the actual column type at hive side.
In Spark 2.1, after https://github.com/apache/spark/pull/14363 , we parse hive type string to catalyst type, which means the actual column type at hive side is erased. Then we may use string ObjectInspector to read varchar column and fail.
This PR keeps the original hive column type string in the metadata of StructField, and use it when we convert it to a hive column.
How was this patch tested?
newly added regression test

Test build #69325 has started for PR 16060 at commit 71c9dea.

cc @yhuai @gatorsmile

Test build #69325 has finished for PR 16060 at commit 71c9dea.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/69325/
Test FAILed.

Test build #69327 has started for PR 16060 at commit 419fc79.

Test build #69327 has finished for PR 16060 at commit 419fc79.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/69327/
Test PASSed.

Test build #69389 has started for PR 16060 at commit 8b697be.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/69389/
Test FAILed.

Test build #3446 has started for PR 16060 at commit 8b697be.

Test build #3446 has finished for PR 16060 at commit 8b697be.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merging in master/branch-2.1.


feat(typeahead): Custom CSS class for typeahead's dropdown menu

PR for #4332 with the corresponding demo.
Typeahead directive checks if an optional attribute typeahead-dropdown-custom-class is specified, and adds it to the dropdown main container. Works with append-to-body attribute.
For example: attribute typeahead-dropdown-custom-class="demo-class" will add demo-class like this:

.

This makes a lot of sense - can you add a test for this feature to verify that the class is properly being set?

@wesleycho Added tests for: basic, with a custom template and with append-to-body.

Left a comment - I think we will need to garbage collect and remove the custom class from the body tag is using append-to-body. Can you add a listener via $scope.$on('$destroy', removeCustomClass) and add a simple test for this? This should be a quick change, and then we can merge this in.

@wesleycho The custom class is being added to a popup element, not to  tag. So basically, we get
 element, which can be targeted in CSS like .dropdown-menu.my-class { ... }.

Can you link me to a Plunker with the changes applied so I can see it in action?

@wesleycho I've added a demo case for this PR with both "append-to-body" and "typeahead-dropdown-custom-class" attributes. Would it work instead of Plunkr?

Just would be convenient - unfortunately my schedule is super packed for this week and a half, so it could be difficult for me to investigate in detail to verify, and any bit of help would be much appreciated.

@wesleycho Np, here is Plunker: http://plnkr.co/edit/XasKUluu256ztava34oF?p=preview

I see, thanks a lot, this looks good to me!


Deep Linking

Please add deep linking to this seed as it is not trivial with the framework structure used.

Could you please elaborate here?

The top level nav has multiple links (Home, About, etc). Lets say there was a new component called "Top 3 Computer Scientist of All Time" which would be added to the list of nav links. That component (Top 3 CS) has it's own nav that would would link to 3 sub components which would be the profile for each of the top 3 scientists.
Another common example would be a profile settings page where there are multiple sub pages (components) which would allow you to update various profile settings which are grouped by similar content.

This should work just fine now with PathLocationStrategy?

Additionally your question here seems to be more specific to 'how to implement with Angular 2' and for things like that, best to follow the official docs here.
Since the nav will remain the same here and is subject only to modifications made to it's parent seed angular2-seed I would recommend adding deep linking to your own project using methods described in Angular's docs or elsewhere.
If you find the seed is hindering your ability to implement such feature, please reopen.


Change how config reload works

Config no longer reloads whenever the config file changes.
Instead, it'll issue a reload under one of the two conditions:

A SIGHUP signal to the Gort process
A GET request to the /v2/reload endpoint

If a reload is requested but the file hasn't changed, no reload will occur.

Got a couple questions, but general concept LGTM!


opctl silently hangs when mounting from home directory

Minimal op:
description: |
  minimal repro
name: test
inputs:
  HOME:
    string:
      description: Home directory
run:
  container:
    image: { ref: 'alpine' }
    cmd: ['/bin/sh', '-c', 'cat /testfile']
    files:
      /testfile: $(HOME/testfile)

Output:
▻ opctl run test
OpStarted Id='45a236ba562c4b2eb760d4bcf7a7e9a4' OpRef='/path/to/test' Timestamp='2019-09-30T08:43:33Z'

This hangs indefinitely. When I try to kill it with ctrl-c, I get:
^CGracefully stopping... (signal Control-C again to force)
request resulted in a recoverable error & will be retried; error was: Post http://localhost:42224/api/ops/kills: EOF
request resulted in a recoverable error & will be retried; error was: Post http://localhost:42224/api/ops/kills: dial tcp [::1]:42224: connect: connection refused
request resulted in a recoverable error & will be retried; error was: Post http://localhost:42224/api/ops/kills: dial tcp [::1]:42224: connect: connection refused
OpEnded Id='45a236ba562c4b2eb760d4bcf7a7e9a4' OpRef='/path/to/test' Outcome='KILLED' Timestamp='2019-09-30T08:45:07Z'

The same thing happens when mounting directories.
Sorta related to https://github.com/opctl/opctl/issues/630#issuecomment-536463891.

@apexskier thanks

@apexskier Just FYI, this is expected to not work as written but the failure mode of hanging is not right. It should error gracefully and tell you it can't interpret $(HOME/testfile) as a file because HOME is not a directory (it's a string as defined by the input type).
In regard to what you're trying to do (pass in home directory), this is a deceivingly complicated conversation.
ops are intended to be portable in the sense their specs don't make assumptions about where/what they're started from/by.
Enabling using something like ~ as an input default is problematic for the same lines as absolute paths /, they end up not necessarily being portable. What's ~ if i'm starting an op from a web interface? I'd love to bottom this out further, and hear your thoughts; just giving the back context.

opened https://github.com/opctl/opctl/issues/637 for the incorrect failure mode


FIX: Only send token when specified

This allows accessing public pages without a token.

This feature has been integrated into the latest release of @nishans/endpoints v 0.0.16. I'm closing it for now.


Choose wanted tenant for code running outside of request context.

Hello, we are currently implementing this for our app and it works fine.
The only problem we have is for crons and migrations. We currently use loopback's schema migration but this is ran from CLI, crons are using the cron component supplied by the loopback team. Both of those run at the Application Context level so we do not have a means to determine the tenant. Even worse, we'd need to run the scripts for each and every known tenant.
How would you suggest we get through this?
Also, we have not ran the tests yet but from my understanding, this component changes the datasource binding value on the application context. If we have 2 concurrent requests for different tenants wouldn't the first request end up with the database from the second request?
Thanks

For the above use case, I would need more understanding of how you are using it through CLI and how you are using cron.
For the second question it's not binding in the application context it is binding in Request Context so if there are two concurrent requests they will have different contexts.

Hello, you are right for point 2 we misunderstood the code.
As for the migrations we found a way to change the context during migrations so this works now, we cycle through every known tenant and run the migration for each.
As for the CLI/Cron, we finally went with simply curl'ing our way through, this way the host picks the correct tenant.

Sorry for the delay in reply, as I understood this issue can be closed, or If you want any help just let me know. or any feature request for any special scenario handling.


Documentation recommends deprecated weealloc

For minimizing wasm size, Sycamore docs recommend using Weealloc. But this repository is no longer recommended to use and links to it should be phased out.
Other mini-alloc such as lolalloc should be recommended instead.
Precedent: https://github.com/rustwasm/wasm-pack/issues/1258

I think for now the best would just be to remove the suggestion for replacing the allocator all-together since lol-alloc is a much smaller project than wee-alloc. We can maybe re-introduce this when/if there is a better allocator available.


Enable validation/transformation of JSON:API responses

APIs that follow the JSON:API specification use application/vnd.api+json instead of application/json as the value of the Content-Type header on responses.
zodios returns these responses without validation or transformation; this PR updates that behaviour to transform them as well.
It's safe to validate/transform these responses as they are still plain JSON, see 7 Document Structure.

Thank you.

Thanks for the quick review & merge 🌟

Build in progress and new package in v10.9.2

@matis-dk be careful, actually the server may not be lying.
If the content has quotes like this :
"some json string"

It's actually lying, but if it does not contain quotes, it's actually really a text containt and zodios and JSON.parse is right to not validate.
If you actually have control on the server, do a JSON.stringify to make it valid json.
Else, don't try to validate the string.

zodios and JSON.parse is right to not validate.

I'm trying to understand why that is the case. According to the official documentation of the Zodios client:

All your parameters and responses are fully typed. And by default they are also validated at runtime to prevent unrecoverable errors.

I expected the client to throw an error in any scenario where it didn't receive a valid object.

Else, don't try to validate the string.

Could you clarify how I can achieve this? Should I skip Zodios, perform the fetch myself and use Zod directly to validate the response?


Imported type incorrectly allowed to be used as a value when object shorthand is used

Bug Report
Normally, TS will figure out if an imported type is incorrectly being used as a value.
When shorthand object creation is used, TS will miss the error.
⏯ Playground Link
I couldn't figure out how to use the playground since it depends on using multiple files (import/export).
I've created a minimal repro in this repo samouri/typescript-type-import-bug-repro, it is only ~10 LOC.
💻 Code
import type { A } from './a';

// This correctly throws
const object1 = {A: A}

// This should throw the error: "'A' cannot be used as a value because it was imported using 'import type'"
const object2 = { A };

🙁 Actual behavior
No error is thrown
🙂 Expected behavior
An error should be thrown. Types should not be used where values are expected.

Strange, this seems to raise 2693 correctly in the TS bug workbench
// @errors: 2693
// @filename: other.ts
export type A = {
    thing: string
}
// @filename: index.ts
import type { A } from './other';

// This should throw the error: "'A' cannot be used as a value because it was imported using 'import type'"
const object = { A };

Workbench Repro

// @filename: other.ts
export class A {}

// @filename: index.ts
import type { A } from './other';

// This should throw the error: "'A' cannot be used as a value because it was imported using 'import type'"
const object = { A };

Thank you for fixing this so quickly!
Is there any way for me to track which release this makes it into?

@samouri this will be in TypeScript 4.4 (the RC and final, but not the beta which has already passed).


Week 6 Review Ticket

Score: 4.5/5
Grader: Dylan Luo
Study Plan:

Monday: Crossover review
Tuesday: Take practice test
Wednesday: Correct practice test
Thursday: work on create task, get ready for skit
Friday: deliver skit

Points

Extra Credit for Acting/Skit/Improv (ASI): 0 to +2 in Seed, Everyone must participate, -1 for not participating.  Teacher interested in evaluation by crossover on how the student did in this activity (0, .5, .75, 1) as team, (-1, .5, .75, 1) as individual. This should be in relation to other ASIs.  Donuts to winning Team.
MCQ live result > 50%, (1 or 0)
Ticket(send your own review ticket with score and grader name on the top), GH Pages, Corrections: partial, extreme effort, completed objective (0, .5, .75, 1)

AP Testers

GH Indi Page, Review Ticket, Crossover graded, Study Plan
Create Task and Create Task Crossover Review comments (completed by Thu)
Quiz3 MCQ results and test corrections

Scoring guidelines for crossover graders 4.5/5.0 maximum

Establish your crossover pair early in the week, they can't be in your ASI activity. You need to know who you are scoring before ASI activity as you will be assisting in evaluations.
3 points, use bullets as indicated above, 1 point per sub-bullet
1 point, Participation: .20 for classroom presence and participation each day
.5 point, Quality of work: grader should be looking at effort toward learning and understanding vs perfunctory bullet chasing (0, .25, .5)
The last part of grading is providing point total, high points in crossover grading session, positives in work,  and suggestions for future.

The score for this week will be 4.5/5. She had all of the required tangibles, as she had the test corrections, study plan, and Create Performance Task done. Her test corrections were detailed, and she scored 46/50 for the AP Practice MCQ Finals Test 3. Her Create Performance Task was a "rat simulator", where you can select a type of rat to name, feed, play with, and buy toys for. A suggestion for her Create Performance Task is to code a conditional where you can actually win the game.


[Bug]: lap times aren't logging correctly

🐞 Bug Report
📋 Description
 The "Lap" button in the **counter-timer-app** isn't logging lap times correctly after the timer starts, likely due to state management issues. It needs fixing to ensure laps are stored and displayed properly.
⚙ Steps to Reproduce
Steps to reproduce the behavior:

Initialize Lap State Properly
Update State on Lap Button Click
Render Lap Times
Add Error Handling

📷 Screenshots

https://github.com/user-attachments/assets/74d87246-44a6-458a-b8be-29ee9956f8da
🔧 Additional Information
 Hi Param, I'd like to work on fixing the "Lap" button issue in the counter-timer-app where lap times aren't logging correctly—could you please assign this to me?

🐞 Bug Report
📋 Description
The "Lap" button in the counter-timer-app isn't logging lap times correctly after the timer starts, likely due to state management issues. It needs fixing to ensure laps are stored and displayed properly.
⚙ Steps to Reproduce
Steps to reproduce the behavior:

Initialize Lap State Properly
Update State on Lap Button Click
Render Lap Times
Add Error Handling

📷 Screenshots
Screen.Recording.2024-10-13.234751.mp4
🔧 Additional Information
Hi Param, I'd like to work on fixing the "Lap" button issue in the counter-timer-app where lap times aren't logging correctly—could you please assign this to me?

Sure.All the Best @SheetalEdu .

I quit!! It's working absolutely fine on phone.


CI Shortening

Describe your changes
This PR aims to shorten the docs building time in every pull request.
Issue number
Closes #X
Checklist before requesting a review

[x] Performed a self-review of my code
[x] Formatted my code with pkgmt format
[x] Added tests (when necessary).
[x] Added documentation in the docstring and changelog (when needed)

:books: Documentation preview :books:: https://jupysql--332.org.readthedocs.build/en/332/

I tried adding an aws installation step in the .readthedocs.yml:

  jobs:
    post_build:
      - "python -m pip install --user awscli"
      - "export PATH=/usr/local/bin:$PATH"
      - "aws s3 cp doc/ s3://jupysql-build-docs --recursive"

However this keeps failing with /bin/sh: 1: aws: not found. You meant adding a pre-build and post-build command in this file right? Or the CI rtd.yml file? I'm still trying to figure out how to solve this error.

We would need to configure AWS Access key and secret key in Readthedocs environment variable settings?

@edublancas

Added the pre_build and post_build configurations. Currently this will upload the cache files to the S3 path s3://jupysql-build-docs/Pull-request-number.
The access keys for IAM user readthedocs are hardcoded for testing purpose only. The user has permissions only for this bucket:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::jupysql-build-docs",
                "arn:aws:s3:::jupysql-build-docs/*"
            ]
        }
    ]
}

As of now, I haven't been able to figure out how to setup the access keys in environment variables without making them public. Posted a stackoverflow question

Does it work fine with those keys directly?

yes it does. but that's not necessarily needed if we move those to environment variables as public keys.

You can also try another route, maybe there's a better way of doing it without setting the env vars public.

When you set an environment variable in Readthedocs, it is only accessible to your Readthedocs project and its associated builds. It is not visible to the public, and it is not included in any publicly accessible files or URLs.

So essentially, setting an environment variable like AWS_SECRET_ACCESS_KEY in the Readthedocs project's "Environment variables" section does not make it public.

Setting as env vars without public is not accessible in PRs like we saw yesterday. Quoting from readthedocs documentation: Check the Public option if you want to expose this environment variable to builds from pull requests.
@idomic

Installing awscli from pip is taking 15s so let's move it to the doc/environment.lock.yml file and see if that reduces runtime.

This is causing some dependency conflicts: https://readthedocs.org/projects/jupysql/builds/19973640/
@edublancas

Have removed the hardcoded access keys and deactivated this access key as well, while I figure out what approach can be taken for configuring the keys.
@idomic @edublancas

I was trying to find other relevant approaches but haven't been able to find any yet. I have received a reply from readthedocs community:

Unfortunately, we don't have a good suggestion for your use case. In the past, we've talked about implementing a "cache" config key in our YAML file for these cases: https://github.com/readthedocs/readthedocs.org/issues/9183
I'd recommend you to explain there your use case and subscribe to it. It will help us to prioritize this work in the future.
One thing that I just realize that could help: you can create an S3 user only for this purpose with pretty restricted permissions (only upload/download) to a special S3 bucket only used for this purpose. This is not perfect, but at least it does not expose any risk, I guess.

We already have setup an IAM user with upload/download restrictions to one bucket only.
Can we check with AWS support if it's fine to setup the access keys as public environment variables so that we don't get notice again?
@idomic @edublancas


ApproximateGradientSumFunction class and example SGFunction for Stochastic Gradient Descent

Describe your changes
Added the ApproximateGradientSumFunction class and example SGFunction for Stochastic Gradient Descent and relevant unit tests
Describe any testing you have performed
See code
Link relevant issues
Closes #1343, #1341
Checklist when you are ready to request a review

[x] I have performed a self-review of my code
[x] I have added docstrings in line with the guidance in the developer guide
[x] I have implemented unit tests that cover any new or modified functionality
[ ] CHANGELOG.md has been updated with any functionality change
[x] Request review from all relevant developers
[x] Change pull request label to 'Waiting for review'

Contribution Notes
Please read and adhere to the developer guide and local patterns and conventions.

[x] The content of this Pull Request (the Contribution) is intentionally submitted for inclusion in CIL (the Work) under the terms and conditions of the Apache-2.0 License.
[x] I confirm that the contribution does not violate any intellectual property rights of third parties

New documentation:

SGD docs:

Could you remove atol, rtol from GD and keep the step size only? I do not think will work as it is.

Could you remove atol, rtol from GD and keep the step size only? I do not think will work as it is.

Good shout! - Thanks @epapoutsellis

Jenkins is happy


How to handle authorization?

How can we handle authorization for endpoints that require say a jwt token?
It seems like the generated functions don't allow us to specify custom headers. Is there a way to at least specify certain headers per endpoint?

Thanks for the answer.
I thought of doing this though it seemed better to me to only send the tokens with requests that need it. Sometimes endpoints can also return different things based on whether there is or isn't an auth token but in my case that isn't a thing.
Will mark as closed for the moment.


[Feature request] Global search

Hello :)
thank You for continuing work on this great add-on.
Would it be possible to add search function for all the videos from tv.jw.org?
AFAIK, as of now it's only possible to search within a specific sub-category.
All the best :)

This is a tricky one as it seems to require some form of authentication token ("JWT" to be exact). I'll have to dig into how that works a little bit more...

I don't know if it'll help at all, but I found Tidal addon for Kodi which supports global search:
https://github.com/arnesongit/plugin.audio.tidal2

No, I'm afraid the problem is not how to do search in Kodi. It has more to do with the communication with the jw.org website, and it seems Tidal is doing a different thing... But thanks anyway.

Hey seems like I had this commit lying around for a month, sorry bout that.
Hope you enjoy the new feature  :smiley: (and that it works)

Thank You so much :)
Works perfectly :)


Auto disarm improvement

off
only when landed after land mission item
when land detected

I think we did that by now.


DT-33: Form Heading Image Input Text BeneffitsCard

Task
Closes #
Description

Well, the project builds, but there is strange issue with package-lock.json


L7 proxy access log file rotation isn't working

Cilium version (run cilium version)

Cilium 1.0.0-rc2 40557c1 Sun, 3 Dec 2017 22:10:46 +0100 go version go1.9 linux/amd64
root@ip-172-0-36-124:/var/run/cilium#

Kernel version (run uname -a)

uname -a
Linux ip-172-0-36-124.us-west-2.compute.internal 4.11.9-coreos #1 SMP Thu Jul 6 00:54:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Orchestration system version in use (e.g. kubectl version, Mesos, ...)
kubectl

How to reproduce the issue

Add an L7 enforcement policy
Generate some L7 traffic and confirm that there are at least some logs in access.log file
Execute the following command:

data=`cat access.log`
cat $data >> access.log

This increases the size of the access.log by a factor of 2 every time it is run.

Repeat the previous step until the size exceeds 100Mb, which is the default limit configured with lumberjack library by the cilium agent.
Generate some traffic again so that a few more logs are written to the access.log file. According to the documentation of lumberjack, each write should first check whether the size exceeds the limit, and then rotate the file, if needed.
However, I was able to exceed the size limit, and the log file rotation did not happen:

root@ip-172-0-36-124:/var/run/cilium# ls -ltrh
total 232M
-rw-r--r--. 1 root root      1 Dec  5 23:14 cilium.pid
srw-rw----. 1 root cilium    0 Dec  5 23:15 monitor.sock
srw-rw----. 1 root cilium    0 Dec  5 23:15 cilium.sock
srw-rw----. 1 root cilium    0 Dec  5 23:15 health.sock
drwxr-x---. 8 root root    260 Dec  5 23:25 state
-rw-r--r--. 1 root root   232M Dec  5 23:54 access.log

Note: The lumberjack documentation states that it does not work well if there are multiple writers to the file, which is the case here. However, I expected the log rotation to happen correctly when a new log was written to the file by the proxy and the size was already > 100Mb. Please mark the Bug as invalid if the expectation is incorrect.

The log will not be exactly rotated at 100MB all the time. This is mainly because of the way the kernel flushes file writes (The current file size on disk might be <100MB and the writes in flight i.e not on disk yet may amount not have amounted to > 100Mb). If you tail and check the file size, it will eventually rotate a bit later afterwards. You can check this behavior. I have tested this.

@manalibhutiyani how long do you recommend waiting? The file has size > 100Mb since the last 20 minutes now, and new writes (initiated by the proxy, not by my script) are continuously happening.

Hmm.. that shouldn't happen.. I meant a couple of seconds more... Let me take a look.

Closing since this access log will be deprecating soon in favor of monitor only logs


Pod was active on the node longer than the specified deadline issue with v3.4.8

Pre-requisites

[X] I have double-checked my configuration
[X] I can confirm the issues exists when I tested with :latest
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened/what you expected to happen?
We have upgraded argo-workflow to v3.4.8 and workflow controller pod is running fine. However, workflow pods are giving below message-
level=info msg="Pod failed: Pod was active on the node longer than the specified deadline"
This issue was observed from v3.4.2 onwards.
This issue is not allowing us to upgrade to latest version and older versions are having security violations.
There is already an issue created regarding this https://github.com/argoproj/argo-workflows/issues/9934 but there is no recent updates.
Version
v3.4.8
Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
We cannot share those information.

Logs from the workflow controller
kubectl logs -n argo deploy/workflow-controller | grep kaas-external-secrets-canary-1685518200

time="2023-05-31T07:33:27.121Z" level=info msg="node changed" namespace=external-secrets new.message= new.phase=Running new.progress=0/1 nodeID=kaas-external-secrets-canary-1685518200-1847453086 old.message= old.phase=Running old.progress=0/1 workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:27.122Z" level=info msg="SG Outbound nodes of kaas-external-secrets-canary-1685518200-3820792552 are [kaas-external-secrets-canary-1685518200-1729983040]" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:27.123Z" level=info msg="Workflow step group node kaas-external-secrets-canary-1685518200-3290429874 not yet completed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:27.123Z" level=info msg="Workflow step group node kaas-external-secrets-canary-1685518200-413055525 not yet completed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:27.123Z" level=info msg="Workflow step group node kaas-external-secrets-canary-1685518200-155986833 not yet completed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:27.123Z" level=info msg="TaskSet Reconciliation" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:27.123Z" level=info msg=reconcileAgentPod namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:27.126Z" level=info msg="cleaning up pod" action=terminateContainers key=external-secrets/kaas-external-secrets-canary-1685518200-create-external-secret-1847453086/terminateContainers
time="2023-05-31T07:33:27.139Z" level=info msg="Workflow update successful" namespace=external-secrets phase=Running resourceVersion=138104858 workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.149Z" level=info msg="Processing workflow" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.153Z" level=info msg="Task-result reconciliation" namespace=external-secrets numObjs=0 workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.154Z" level=warning msg="workflow uses legacy/insecure pod patch, see https://argoproj.github.io/argo-workflows/workflow-rbac/" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.154Z" level=info msg="node unchanged" namespace=external-secrets nodeID=kaas-external-secrets-canary-1685518200-1847453086 workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.155Z" level=info msg="SG Outbound nodes of kaas-external-secrets-canary-1685518200-3820792552 are [kaas-external-secrets-canary-1685518200-1729983040]" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.156Z" level=info msg="Workflow step group node kaas-external-secrets-canary-1685518200-3290429874 not yet completed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.156Z" level=info msg="Workflow step group node kaas-external-secrets-canary-1685518200-413055525 not yet completed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.156Z" level=info msg="Workflow step group node kaas-external-secrets-canary-1685518200-155986833 not yet completed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.156Z" level=info msg="TaskSet Reconciliation" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.156Z" level=info msg=reconcileAgentPod namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:28.159Z" level=info msg="cleaning up pod" action=terminateContainers key=external-secrets/kaas-external-secrets-canary-1685518200-create-external-secret-1847453086/terminateContainers
time="2023-05-31T07:33:30.091Z" level=info msg="Processing workflow" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.094Z" level=info msg="Task-result reconciliation" namespace=external-secrets numObjs=0 workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.095Z" level=info msg="Pod failed: Pod was active on the node longer than the specified deadline" displayName="create-external-secret(0)" namespace=external-secrets pod=kaas-external-secrets-canary-1685518200-create-external-secret-1847453086 templateName= workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.095Z" level=warning msg="workflow uses legacy/insecure pod patch, see https://argoproj.github.io/argo-workflows/workflow-rbac/" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.095Z" level=info msg="node changed" namespace=external-secrets new.message="Pod was active on the node longer than the specified deadline" new.phase=Failed new.progress=0/1 nodeID=kaas-external-secrets-canary-1685518200-1847453086 old.message= old.phase=Running old.progress=0/1 workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.096Z" level=info msg="SG Outbound nodes of kaas-external-secrets-canary-1685518200-3820792552 are [kaas-external-secrets-canary-1685518200-1729983040]" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="Node not set to be retried after status: Failed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="node kaas-external-secrets-canary-1685518200-2582881683 phase Running -> Failed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="node kaas-external-secrets-canary-1685518200-2582881683 message: Pod was active on the node longer than the specified deadline" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="node kaas-external-secrets-canary-1685518200-2582881683 finished: 2023-05-31 07:33:30.097882456 +0000 UTC" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="Step group node kaas-external-secrets-canary-1685518200-3290429874 deemed failed: child 'kaas-external-secrets-canary-1685518200-2582881683' failed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="node kaas-external-secrets-canary-1685518200-3290429874 phase Running -> Failed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="node kaas-external-secrets-canary-1685518200-3290429874 message: child 'kaas-external-secrets-canary-1685518200-2582881683' failed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="node kaas-external-secrets-canary-1685518200-3290429874 finished: 2023-05-31 07:33:30.097969288 +0000 UTC" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200
time="2023-05-31T07:33:30.097Z" level=info msg="step group kaas-external-secrets-canary-1685518200-3290429874 was unsuccessful: child 'kaas-external-secrets-canary-1685518200-2582881683' failed" namespace=external-secrets workflow=kaas-external-secrets-canary-1685518200

Logs from in your workflow's wait container
kubectl logs -n argo -c wait -l workflows.argoproj.io/workflow=kaas-external-secrets-canary-1685518200,workflow.argoproj.io/phase!=Succeeded

time="2023-05-31T07:32:08.488Z" level=info msg="Starting Workflow Executor" version=v3.4.8
time="2023-05-31T07:32:08.514Z" level=info msg="Using executor retry strategy" Duration=1s Factor=1.6 Jitter=0.5 Steps=5
time="2023-05-31T07:32:08.514Z" level=info msg="Executor initialized" deadline="0001-01-01 00:00:00 +0000 UTC" includeScriptOutput=false namespace=external-secrets podName=kaas-external-secrets-canary-1685518200-create-external-secret-1847453086 template="{\"name\":\"create-external-secret\",\"inputs\":{\"parameters\":[{\"name\":\"name\",\"value\":\"external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region\"},{\"name\":\"kind\",\"value\":\"ClusterSecretStore\"},{\"name\":\"storename\",\"value\":\"default\"},{\"name\":\"dataFrom\",\"value\":\"platform/kaas/tests/esdummy\"}]},\"outputs\":{\"parameters\":[{\"name\":\"name\",\"valueFrom\":{\"jsonPath\":\"{.metadata.name}\"}},{\"name\":\"status\",\"valueFrom\":{\"jsonPath\":\"{.status.conditions[0].status}\"}}]},\"metadata\":{},\"resource\":{\"action\":\"create\",\"manifest\":\"apiVersion: external-secrets.io/v1beta1\\nkind: ExternalSecret\\nmetadata:\\n  name: external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region\\n  ownerReferences:\\n  - apiVersion: argoproj.io/v1alpha1\\n    blockOwnerDeletion: true\\n    controller: true\\n    kind: Workflow\\n    name: kaas-external-secrets-canary-1685518200\\n    uid: 7f795b10-f643-4708-9f91-6813d9508568\\nspec:\\n  data:\\n  - remoteRef:\\n      key: platform/kaas/tests/esdummy\\n      property: test\\n    secretKey: test.txt\\n  secretStoreRef:\\n    kind: ClusterSecretStore\\n    name: default\\n  target:\\n    creationPolicy: Owner\\n    name: external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region\\n\",\"setOwnerReference\":true,\"successCondition\":\"status.conditions.0.status\"},\"activeDeadlineSeconds\":90,\"retryStrategy\":{\"limit\":\"2\",\"retryPolicy\":\"OnTransientError\"}}" version="&Version{Version:v3.4.8,BuildDate:2023-05-25T22:19:57Z,GitCommit:9e27baee4b3be78bb662ffa5e3a06f8a6c28fb53,GitTag:v3.4.8,GitTreeState:clean,GoVersion:go1.20.4,Compiler:gc,Platform:linux/amd64,}"
time="2023-05-31T07:32:08.514Z" level=info msg="Loading manifest to /tmp/manifest.yaml"
time="2023-05-31T07:32:08.531Z" level=info msg="kubectl create -f /tmp/manifest.yaml -o json"
time="2023-05-31T07:32:13.893Z" level=info msg="Resource: external-secrets/externalsecret.external-secrets.io/external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region. SelfLink: apis/external-secrets.io/v1beta1/namespaces/external-secrets/externalsecrets/external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region"
time="2023-05-31T07:32:13.895Z" level=info msg="Waiting for conditions: status.conditions.0.status"
time="2023-05-31T07:32:13.908Z" level=info msg="Get externalsecrets 200"
time="2023-05-31T07:32:13.908Z" level=info msg="success condition '{status.conditions.0.status exists []}' evaluated false"
time="2023-05-31T07:32:13.908Z" level=info msg="0/1 success conditions matched"
time="2023-05-31T07:32:13.908Z" level=info msg="Waiting for resource externalsecret.external-secrets.io/external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region in namespace external-secrets resulted in retryable error: Neither success condition nor the failure condition has been matched. Retrying..."
time="2023-05-31T07:32:18.926Z" level=info msg="Get externalsecrets 200"
time="2023-05-31T07:32:18.928Z" level=info msg="success condition '{status.conditions.0.status exists []}' evaluated true"
time="2023-05-31T07:32:18.928Z" level=info msg="1/1 success conditions matched"
time="2023-05-31T07:32:18.928Z" level=info msg="Returning from successful wait for resource externalsecret.external-secrets.io/external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region in namespace external-secrets"
time="2023-05-31T07:32:18.928Z" level=info msg="Saving resource output parameters"
time="2023-05-31T07:32:18.928Z" level=info msg="kubectl -n external-secrets get externalsecret.external-secrets.io/external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region -o jsonpath={.metadata.name}"
I0531 07:32:20.194960      16 request.go:601] Waited for 1.085736944s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:443/apis/coordination.k8s.io/v1?timeout=32s
I0531 07:32:30.383454      16 request.go:601] Waited for 11.273407084s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:443/apis/vpcresources.k8s.aws/v1beta1?timeout=32s
I0531 07:32:40.384243      16 request.go:601] Waited for 9.390073843s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:443/apis/kyverno.io/v1beta1?timeout=32s
time="2023-05-31T07:32:46.401Z" level=info msg=kubectl args="[kubectl -n external-secrets get externalsecret.external-secrets.io/external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region -o jsonpath={.metadata.name}]" error="<nil>" out=external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region
time="2023-05-31T07:32:46.401Z" level=info msg="Saved output parameter: name, value: external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region"
time="2023-05-31T07:32:46.401Z" level=info msg="kubectl -n external-secrets get externalsecret.external-secrets.io/external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region -o jsonpath={.status.conditions[0].status}"
I0531 07:32:50.547507      16 request.go:601] Waited for 3.073673583s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:443/apis/kyverno.io/v1beta1?timeout=32s
I0531 07:33:00.741916      16 request.go:601] Waited for 2.188778516s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:443/apis/autoscaling/v2beta1?timeout=32s
I0531 07:33:10.742275      16 request.go:601] Waited for 12.18230736s due to client-side throttling, not priority and fairness, request: GET:https://<IP_ADDRESS>:443/apis/argoproj.io/v1alpha1?timeout=32s
time="2023-05-31T07:33:13.947Z" level=info msg=kubectl args="[kubectl -n external-secrets get externalsecret.external-secrets.io/external-secrets-cluster-ok-kaas-external-secrets-canary-1685518200-default-region -o jsonpath={.status.conditions[0].status}]" error="<nil>" out=True
time="2023-05-31T07:33:13.947Z" level=info msg="Saved output parameter: status, value: True"
time="2023-05-31T07:33:13.948Z" level=info msg="Create workflowtaskresults 403"
time="2023-05-31T07:33:13.948Z" level=warning msg="failed to patch task set, falling back to legacy/insecure pod patch, see https://argoproj.github.io/argo-workflows/workflow-rbac/" error="workflowtaskresults.argoproj.io is forbidden: User \"system:serviceaccount:external-secrets:external-secrets-tests\" cannot create resource \"workflowtaskresults\" in API group \"argoproj.io\" in the namespace \"external-secrets\""
time="2023-05-31T07:33:14.003Z" level=info msg="Patch pods 200"
time="2023-05-31T07:33:15.008Z" level=info msg="sub-process exited" argo=true error="<nil>"

@sakshimalani can you provide your workflow yaml? Do you have configured workflowduration or activepoddeadlineseconds on workflow?

@sarabala1979 thank you for looking at this and sorry for the delay in response. We are seeing this issue intermittently. What we know is, it happens when the churn is high on the cluster.

can you provide your workflow yaml? Do you have configured workflowduration or activepoddeadlineseconds on workflow?

I am looking for answers around this as well. As of now, I haven't found a particular workflow which helps re-create this issue.
What we have observed is we start seeing Pod failed: Pod was active on the node longer than the specified deadline when we upgrade from v3.3.8 to v3.4.5, v3.4.6, v3.4.7 (we see the issue in all of them). AFAIK, we haven't changed something in workflow (and workflowtemplates) during the upgrade.
Maybe the workflow configuration used in v3.3.8 is not the best configuration for v3.4.5, v3.4.6 and v3.4.7 OR maybe there is some hard-to-reproduce bug in the workflows controller.

I'm having the same issue too in version 3.4.5.
when error msg "Pod failed: Pod was active on the node longer than the specified deadline" occurs. I found that the wait container and main container in this pod is still running

https://github.com/kubernetes/kubernetes/issues/98718  @sakshimalani
hello, you can check your K8s version, it may be because the k8s version is too old. the error occrus when I used version 1.20.8.  but the error no longer occurs when  I user the latest version.

Currently our k8s version is 1.23  and latest release of argo-workflows v3.4.8 should be compatible.
https://argoproj.github.io/argo-workflows/releases/#kubernetes-compatibility-matrix

This is also affecting us. Can anybody give an update as to whether there's work happening on this issue?

There is already an issue created regarding this #9934 but there is no recent updates.

Closing as #9934 has been resolved per https://github.com/argoproj/argo-workflows/issues/9934#issuecomment-2026619789 by #12329 / #12761.
Please don't file duplicate issues for something that is already open. That doesn't help with getting it resolved and in fact takes up more triage time and divides up users and maintainers who find one issue but not the other.
See also: https://justinmayer.com/posts/any-updates/, https://sindresorhus.com/blog/issue-bumping


VERILOG_FILES path

@antonblanchard
https://github.com/antonblanchard/microwatt-mpw7/blob/d8e84afed0c020549dd3ce51fd84d6a5112757df/openlane/multiply_add_64x64/config.tcl#L5 is that file path correct or need to use
`set ::env(VERILOG_FILES) "$script_dir/verilog/rtl/multiply_add_64x64.v"
Which one I need to choose?

@vijayank88 The path is correct - the file in verilog/rtl is a behavioural model, and the file in openlane/multiply_add_64x64/src/ is the gate level design we want to build.
set script_dir $::env(DESIGN_DIR)

set ::env(DESIGN_NAME) multiply_add_64x64

set ::env(VERILOG_FILES) "\
        $script_dir/src/multiply_add_64x64.v"


Add a simple dependency service

Injecting services through ViewModel / Page constructor became a standard for many frameworks. I think we should also have it. What are your opinions about it?
public class MainPageModel : BasePageModel
{
  public MainPageModel(ISomeService someService)
  {
     // someService is automatically injected with a correct previously registered implementation
  }
}

not sure about the DIJ
I know most frameworks have it
would you use any existing ?
or can we open a way so that people can use the IOC they want?

https://github.com/xamvvm/xamvvm/wiki/IOC


Fixed "SyntaxError: Generator expression must be parenthesized" on Python 3.7

Fixed "SyntaxError: Generator expression must be parenthesized" on Python 3.7

Reasonable. I should switch to django 2 as soon as possible.

@auvipy Is there a way to update this table to indicate which is the last supported python version?


MWPW-123566 Adding AutoBlocks for Embedded Product Tour

Adding AutoBlocks for Embedded Product Tour using https://github.com/adobecom/milo/pull/426

Resolves: MWPW-123566
Test URLs:

Before: https://bmarshal-embed-product-tour--bacom--adobecom.hlx.page/drafts/bmarshal/embed-product-tour?martech=off
After: https://bmarshal-embed-product-tour--bacom--adobecom.hlx.page/drafts/bmarshal/embed-product-tour?milolibs=bmarshal-embed-product-tour&martech=off

Codecov Report

Merging #72 (0f5b7c6) into main (7c72420) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #72   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines          342       342
=========================================
  Hits           342       342

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


Disable unsupported Metal Pixel formats for iOS/tvOS Simulator

Defines certain unsupported Metal Pixel formats as invalid for the iOS/tvOS Simulator.  Fixes #2353 for MoltenVK 1.2.11.
I have tested this on an x86_64 host using Xcode 15.2 with the iOS Simulator (running iOS 17.2).  I can't test on tvOS so I would appreciate others (@warmenhoven) checking out this scenario.
Also, I am not sure whether the #ifdef condition should also contain an Xcode version test.  Perhaps @cdavis5e could weigh in on that aspect.  Thanks.

Thanks for submitting this! And thanks everyone for all the discussion on #2353!
First of all, I'm sorry that my 5afeaa4 triggered the need for this!
Based upon the "I recall reading somewhere" comment by @cdavis5e in #2353, I went hunting, and sure enough, hidden away in the Apple docs, is the explanation.
Unfortunately, that doc also make this somewhat more complicated.
These 5 formats you identified MTLPixelFormats, plus all of the XR10 and YUV formats, are not supported on the simulator platforms.
So, @SRSaunders, can you add the following to this PR, please and thanks?

Add all the XR10 and YUV formats to your conditional format remapping.
Include a && !MVK_OS_SIMULATOR added to the #if MVK_APPLE_SILICON for the XR10 formats in MVKPhysicalDevice::getSurfaceFormats().
For completeness, according to the same doc, the format MTLPixelFormatRGB9E5Float cannot be used as a render target on the simulator. I think the best way to deal with this is in MVKPixelFormats::modifyMTLFormatCapabilities(). Perhaps add the following, right below the other two mods there for RGB9E5Float:

    disableMTLPixFmtCapsIf( MVK_OS_SIMULATOR, RGB9E5Float, ColorAtt );

And finally, none of the _sRGB formats can be written to in the simulator. I think the best way to handle this might be in #define addMTLPixelFormatDescSRGB(), by adding something like:

    if(MVK_APPLE_SILICON) { mvkDisableFlags(appleGPUCaps, kMVKMTLFmtCapsWrite); }

Uggh! Needless to say, I'm not a fan of the simulator! 😉

Looking at the Apple docs, they do not mention MTLPixelFormatRG8Unorm_sRGB, but disabling this on the Simulator seems necessary.  Did this format come later?  Note I also added MTLPixelFormatBGR5A1Unorm for completeness, although this is already disabled elsewhere via addVkFormatDesc( B5G5R5A1_UNORM_PACK16, Invalid, ...).
These changes run correctly for my limited test cases (Vulkan-Samples project running on iOS Simulator on x86_64 host, macOS Ventura, Xcode 15.2).  However, I cannot test all of the new changes here.  This PR could benefit from additional code review at a minimum.
Lastly, I have another Simulator PR outstanding - see #2285.  When running the Vulkan-Samples on the Simulator, starting with MoltenVK 1.2.11, certain samples do not render (black screen) unless I disable Metal Argument Buffers.  What is the status of Argument Buffers on the Simulator?  Should they be disabled by default on the Simulator, or is there another defect lingering somewhere else that causes this behaviour?

Lastly, I have another Simulator issue outstanding - see #2285. When running the Vulkan-Samples on the Simulator, starting with MoltenVK 1.2.11, certain samples do not render (black screen) unless I disable Metal Argument Buffers. What is the status of Argument Buffers on the Simulator? Should they be disabled by default on the Simulator, or is there another defect lingering somewhere else that causes this behaviour?

I'll have another closer look at #2285.
I really, REALLY don't want to have to disable arg buffers for any platform, so that will be an absolute last resort. Moving forward, arg buffers are important for a lot of Vulkan functionality, starting with the availability of larger numbers of bindless descriptors.

Bummer about all the changes required to the define macros, but that's the nature of macros.

Agreed the macro changes are kind of ugly.  If you see a better solution please feel free to modify.

I really, REALLY don't want to have to disable arg buffers for any platform, so that will be an absolute last resort.

That's fine.  The issue identified some Vulkan-Samples problems and a potential solution in the form of Arg Buffer disabling on the Simulator.  But first I wanted to determine your overall intentions re Arg Buffers and the Simulator.  I have my answer now, and will look at #2285 as a possible defect.  Thanks.

A small change to move unsupported pixel formats to top level to ensure visionOS Simulator is covered too, not just iOS and tvOS Simulators.  Docs indicate these pixel format restrictions apply to all Simulators.

Not sure if you care, but looking around in the code where MVK_OS_SIMULATOR is used I see two potential issues that limit scope to the iOS Simulator only, and exclude tvOS / visionOS Simulators.  Should these be brought to the top level?
In MVKDevice.mm:
#if MVK_IOS
...
#if MVK_OS_SIMULATOR
		_metalFeatures.nativeTextureSwizzle = false;
#else
		_metalFeatures.nativeTextureSwizzle = true;
#endif
...
#endif

and
#if MVK_IOS
...
#if MVK_OS_SIMULATOR
	_features.depthClamp = false;
#else
	if (supportsMTLGPUFamily(Apple2)) {
		_features.depthClamp = true;
	}
#endif
...
#endif

Should these be brought to the top level, or alternatively, similar code added for tvOS and visionOS?

Yes. Makes sense to deal with them here. Thanks for taking a wider inventory.
I assume you're thinking of setting the non-simulator value (eg. _metalFeatures.nativeTextureSwizzle = true;) in the platform section, and then, below all the platform sections, adding a separate MVK_OS_SIMULATOR section that overrides those platform values accordingly (eg. _metalFeatures.nativeTextureSwizzle = false;)?

I assume you're thinking of setting the non-simulator value (eg. _metalFeatures.nativeTextureSwizzle = true;) in the platform section, and then, below all the platform sections, adding a separate MVK_OS_SIMULATOR section that overrides those platform values accordingly (eg. _metalFeatures.nativeTextureSwizzle = false;)?

Yes, exactly.  In fact there is already a MVK_OS_SIMULATOR override for _metalFeatures that I reused for swizzle.  And I simply added an additional MVK_OS_SIMULATOR override for _features.  Note that I did NOT change or add any *feature = true assignments, but simply moved the Simulator *feature = false changes to the overrides.
However, I do notice two things: a) _features.depthClamp = true is not set for tvOS, and b) the feature settings for visionOS are quite sparse compared to iOS and tvOS.  Are both of these intentional?

However, I do notice two things: a) _features.depthClamp = true is not set for tvOS, and b) the feature settings for visionOS are quite sparse compared to iOS and tvOS. Are both of these intentional?

Good catch on _features.depthClamp = true. This is almost certainly an oversight, and should be set as it is for iOS.
visionOS is only partially supported on MoltenVK. It really requires someone with an Apple Vision device to overhaul it. For now, you can leave it until that gets done.

Good catch on _features.depthClamp = true. This is almost certainly an oversight, and should be set as it is for iOS.

Are you able to make this change on this PR, or should we leave it for another PR?
I'm just waiting on this before pulling this PR in.

Are you able to make this change on this PR, or should we leave it for another PR?

Sorry for the delay, but I have been trying to test Vulkan-Samples on tvOS Simulator to see if we have things right.
I have now pushed this change, and also added one more difference that I see for AppleGPUFamily cases that are <= Apple3: _features.shaderTessellationAndGeometryPointSize = true.  If I have this wrong, please revert.
The Vulkan-Samples tests run mostly ok on tvOS Simulator, with the exception of samples hpp_oit_linked_lists and oit_linked_lists.  On those I get the following:
validateWithDevice:4343: failed assertion `Render Pipeline Descriptor Validation
No valid pixelFormats set.

This happens in:
id<MTLRenderPipelineState> MVKRenderPipelineCompiler::newMTLRenderPipelineState(MTLRenderPipelineDescriptor* mtlRPLDesc) {
	unique_lock<mutex> lock(_completionLock);

	compile(lock, ^{
		auto mtlDev = getMTLDevice();
		@synchronized (mtlDev) {
			[mtlDev newRenderPipelineStateWithDescriptor: mtlRPLDesc
									   completionHandler: ^(id<MTLRenderPipelineState> ps, NSError* error) {
										   bool isLate = compileComplete(ps, error);
										   if (isLate) { destroy(); }
									   }];
		}
	});

	return [_mtlRenderPipelineState retain];
}

Unfortunately I don't have time to research now as I will be away for a bit.  Otherwise I would try to track this down.  I think this is the relevant SPIRV and MSL:
[mvk-info] Compiling Metal shader with FastMath enabled.
[mvk-info] Converting SPIR-V:
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 11
; Bound: 67
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %4 "main" %39 %56
OpExecutionMode %4 OriginUpperLeft
OpSource GLSL 450
OpName %4 "main"
OpName %8 "nextFragmentIndex"
OpName %9 "FragmentCounter"
OpMemberName %9 0 "value"
OpName %11 "fragmentCounter"
OpName %23 "SceneConstants"
OpMemberName %23 0 "projection"
OpMemberName %23 1 "view"
OpMemberName %23 2 "background_grayscale"
OpMemberName %23 3 "sortFragments"
OpMemberName %23 4 "fragmentMaxCount"
OpMemberName %23 5 "sortedFragmentCount"
OpName %25 "sceneConstants"
OpName %34 "previousFragmentIndex"
OpName %37 "linkedListHeadTex"
OpName %39 "gl_FragCoord"
OpName %51 "FragmentBuffer"
OpMemberName %51 0 "data"
OpName %53 "fragmentBuffer"
OpName %56 "inColor"
OpMemberDecorate %9 0 Offset 0
OpDecorate %9 BufferBlock
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 4
OpMemberDecorate %23 0 ColMajor
OpMemberDecorate %23 0 Offset 0
OpMemberDecorate %23 0 MatrixStride 16
OpMemberDecorate %23 1 ColMajor
OpMemberDecorate %23 1 Offset 64
OpMemberDecorate %23 1 MatrixStride 16
OpMemberDecorate %23 2 Offset 128
OpMemberDecorate %23 3 Offset 132
OpMemberDecorate %23 4 Offset 136
OpMemberDecorate %23 5 Offset 140
OpDecorate %23 Block
OpDecorate %25 DescriptorSet 0
OpDecorate %25 Binding 0
OpDecorate %37 DescriptorSet 0
OpDecorate %37 Binding 2
OpDecorate %39 BuiltIn FragCoord
OpDecorate %50 ArrayStride 16
OpMemberDecorate %51 0 Offset 0
OpDecorate %51 BufferBlock
OpDecorate %53 DescriptorSet 0
OpDecorate %53 Binding 3
OpDecorate %56 Location 0
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeInt 32 0
%7 = OpTypePointer Function %6
%9 = OpTypeStruct %6
%10 = OpTypePointer Uniform %9
%11 = OpVariable %10 Uniform
%12 = OpTypeInt 32 1
%13 = OpConstant %12 0
%14 = OpTypePointer Uniform %6
%16 = OpConstant %6 1
%17 = OpConstant %6 0
%20 = OpTypeFloat 32
%21 = OpTypeVector %20 4
%22 = OpTypeMatrix %21 4
%23 = OpTypeStruct %22 %22 %20 %6 %6 %6
%24 = OpTypePointer Uniform %23
%25 = OpVariable %24 Uniform
%26 = OpConstant %12 4
%29 = OpTypeBool
%35 = OpTypeImage %6 2D 0 0 0 2 R32ui
%36 = OpTypePointer UniformConstant %35
%37 = OpVariable %36 UniformConstant
%38 = OpTypePointer Input %21
%39 = OpVariable %38 Input
%40 = OpTypeVector %20 2
%43 = OpTypeVector %12 2
%46 = OpTypePointer Image %6
%49 = OpTypeVector %6 3
%50 = OpTypeRuntimeArray %49
%51 = OpTypeStruct %50
%52 = OpTypePointer Uniform %51
%53 = OpVariable %52 Uniform
%56 = OpVariable %38 Input
%59 = OpConstant %6 2
%60 = OpTypePointer Input %20
%65 = OpTypePointer Uniform %49
%4 = OpFunction %2 None %3
%5 = OpLabel
%8 = OpVariable %7 Function
%34 = OpVariable %7 Function
%15 = OpAccessChain %14 %11 %13
%18 = OpAtomicIAdd %6 %15 %16 %17 %16
OpStore %8 %18
%19 = OpLoad %6 %8
%27 = OpAccessChain %14 %25 %26
%28 = OpLoad %6 %27
%30 = OpUGreaterThanEqual %29 %19 %28
OpSelectionMerge %32 None
OpBranchConditional %30 %31 %32
%31 = OpLabel
OpKill
%32 = OpLabel
%41 = OpLoad %21 %39
%42 = OpVectorShuffle %40 %41 %41 0 1
%44 = OpConvertFToS %43 %42
%45 = OpLoad %6 %8
%47 = OpImageTexelPointer %46 %37 %44 %17
%48 = OpAtomicExchange %6 %47 %16 %17 %45
OpStore %34 %48
%54 = OpLoad %6 %8
%55 = OpLoad %6 %34
%57 = OpLoad %21 %56
%58 = OpExtInst %6 %1 PackUnorm4x8 %57
%61 = OpAccessChain %60 %39 %59
%62 = OpLoad %20 %61
%63 = OpBitcast %6 %62
%64 = OpCompositeConstruct %49 %55 %58 %63
%66 = OpAccessChain %65 %53 %13 %54
OpStore %66 %64
OpReturn
OpFunctionEnd
End SPIR-V
Converted MSL:
#pragma clang diagnostic ignored "-Wunused-variable"
#include <metal_stdlib>
#include <simd/simd.h>
#include <metal_atomic>
using namespace metal;
struct FragmentCounter
{
uint value;
};
struct SceneConstants
{
float4x4 projection;
float4x4 view;
float background_grayscale;
uint sortFragments;
uint fragmentMaxCount;
uint sortedFragmentCount;
};
struct FragmentBuffer
{
uint3 data[1];
};
struct main0_in
{
float4 inColor [[user(locn0)]];
};
fragment void main0(main0_in in [[stage_in]], constant SceneConstants& sceneConstants [[buffer(8)]], device FragmentBuffer& fragmentBuffer [[buffer(10)]], device FragmentCounter& fragmentCounter [[buffer(11)]], texture2d<uint, access::read_write> linkedListHeadTex [[texture(0)]], float4 gl_FragCoord [[position]])
{
bool gl_HelperInvocation = {};
gl_HelperInvocation = simd_is_helper_thread();
uint _18 = (!gl_HelperInvocation ? atomic_fetch_add_explicit((device atomic_uint*)&fragmentCounter.value, 1u, memory_order_relaxed) : uint{});
uint nextFragmentIndex = _18;
if (nextFragmentIndex >= sceneConstants.fragmentMaxCount)
{
gl_HelperInvocation = true, discard_fragment();
}
uint _48 = (!gl_HelperInvocation ? linkedListHeadTex.atomic_exchange(uint2(int2(gl_FragCoord.xy)), nextFragmentIndex).x : uint{});
uint previousFragmentIndex = _48;
if (!gl_HelperInvocation)
{
fragmentBuffer.data[nextFragmentIndex] = uint3(previousFragmentIndex, pack_float_to_unorm4x8(in.inColor), as_type(gl_FragCoord.z));
}
}
End MSL

Okay. Thanks. I'm going to pull this in now to get the basics working, and we can explore the the simulator issues you mentioned separately.


Publish to Docker Hub

At https://github.com/valhalla/meili/issues/43 @chrisfosterelli suggested it would be nice to publish the docker image to Docker Hub. It's probably in the plan so I forward it to here as a reminder.

yep we are working on dockerizing ALL THE THINGS. I know we have docker containers already but they only expose the simple version of the routing service. We are working to rectify this and will be pushing said images to docker hub.

Both the source and ppa builds are already on docker hub. However, I would stress that this is very much a work in progress. https://hub.docker.com/u/mapzen/dashboard/

@heffergm Are you able to elaborate a bit on how I could use those published images? Are they a drop-in replacement for the meili docker image that has to be manually built?

I'm not familiar with meili. The docker images as they currently exist in this repository simply run the valhalla routing service and serve any tile data found in /data/valhalla.
So as per the readme, if you're just doing this locally, you can clone the repository and run:
VALHALLA_DOCKER_DATAPATH=/some/path/to/data docker-compose -f docker-compose-{ppa|source}.yml up.

@chrisfosterelli we dont yet run meili as part of these images. its really hardly any work to set it up though. currently meili's service is not run as part of the other services (skadi is also this way). both of them would either need their own images (probably what we will do) or some refactoring needs to be done in the code to make it so that there is one server to run all services (also possible but probably longer term goal)

That makes sense @kevinkreiser. Should we open a new issue here to publish meili as a separate image then? I'm not super familiar with the rest of valhalla so my apologies if this is the wrong place to make that issue.
My initial issue (https://github.com/valhalla/meili/issues/43) was raised because building the meili image manually takes quite a while and requires a fair amount of RAM... it could save lots of people a bunch of time by publishing it on Docker Hub.

@chrisfosterelli no worries, yeah please open up an issue specific to creating an image for meili and we can take a look at making a few tweaks to the existing stuff!

Sure, made https://github.com/valhalla/docker/issues/4