http improvement suggestions

This PR should serves as a discussion, and should probably be split into two.
configurable base URL for http server
Lets say I have a service foobar with a couple of URLs it serves /spam and  /ni.
I would like to serve this service at http://example.org/foobar or maybe at the root http://foobar.example.org
without having to change any of my application code. I may even choose to deploy multiple versions of the service e.g. http://example.org/foobar/v1 and http://example.org/foobar/v2
The application must be able to correctly generate absolute URLs for it's own. This may be required if the generated URLs are passed back to callers (html pages, service discovery URLs, ...)
My implementation added a config WEB_SERVER_BASE_URL which defaults to ''.
I have not touched the websocket implementation, I need to do some reading first. I believe it should be possible to configure the URLs similarly via the config. I also think the service itself should be able to specify under which URL e.g. RPC should be served (instead of locking it to /ws).
e.g.

class Foobar(object):
    @http('GET', '/spam')
    def spam(self):
            return 'check out ' + self.url_for(self.ni, 5)

    @http('GET', '/ni/<int:ham>')
    def ni(self, ham):
            ...

Running Foobar with defaults would serve spam and ni at the root of the domain. Running it with WEB_SERVER_BASE_URL='/foobar/v1' would serve spam and ni at /foobar/v1/spam and /foobar/v1/ni respectively.
Raw Request object for http handlers
It is more likely than not that I may want to access data from the incoming HTTP request, i.e. more than just the URL parameters/path segments and POST data. I also think it should be possible to parameterize the URL for a POST as I would for the GET and they should be handled consistently.
@http('GET' , '/foo/<int:bar>')
def handle(self, req, bar):
    ...

@http('POST' , '/spam/<int:ham>')
def handle(self, req, ham):
    ...

it would also be consistent when creating hybird handlers like:
@http(('GET', 'POST') , '/spam/<int:ham>')
def handle(self, req, ham):
    ...

I suggest to always pass the raw werkzeug Request  to the handler methods as first param after self, followed by all URL params. This is little overhead for any handler that does not need it, would be consistent across http-methods (GET, POST, ...) and would allow greater flexibility with handling incoming requests.
Another way of handling would be to make the req optional e.g.:
@http('GET' , '/foo/<int:bar>', req=True)
def handle(self, bar, req):
    ...

or to make the request object available as an injection(don't very much like that).

base_url:
this is moving into the territory of "web framework" which isn't really the sweet spot for nameko

request as first arg: I think the current default makes sense, again for the very basic use-case we have in mind. we could do a better job of promoting and giving examples of subclassing our providers to change their behaviour, and this might be a good example of that.

You kinda already moved into the territory of "web framework" by providing a http extension.
I would argue even for a simple web-api it is important to separate the application logic and thus the component's URL space from hosting of the service, i.e the domain and base URL it is served from. (You would not specify the domain and port in your @http as you also should not specify the root).
It is very little overhead and the default would still work out of the box.
With respect to GET and POST handling, I think @http is and interesting proof of concept at the moment but it is starting off too high level. Nameko's events evolved from messaging. Messaging gave us low level tools and allowed us to figure out where we wanted to go with the next level of abstraction.
I think a similar approach would be suitable for the http implementations, start with basic support for URL routing and req, resp, then simplify and abstract further. This would allow us to experiment with everything the werkzeug request and response objects give, but within the nameko framework and runtime.
Now about using nameko as a web-framework. Lets say I have an easy way to deploy and manage nameko services locally and in a production environment. I have CI and CD figured out. I have also invested into logging, monitoring and debugging nameko applications.  And, I have a team who knows their way around nameko. Let's also assume I have heavily invested into building my own extensions.
Why would I want to introduce yet another framework with different deployment mechanisms, different ways to manage config, monitoring, logging, and different dev approaches?
I may have to build new libraries to use the tools I have built for nameko, or at least refactor them to be able to use them outside of nameko etc. I then need to integrate the two systems e.g. via nameko.standalone or some other ways.
I would rather spend my resources on making nameko.web work for me and have one consistent application framework to worry about.
Just a thought.

I like the base URL suggestion, although @davidszotten has suggested merging it with the existing WEB_SERVER_HOST and WEB_SERVER_PORT config keys to make a WEB_SERVER_URI setting.
On nameko not being a "web framework", the intention is to avoid competing (in the minds of the community) with much more established solutions like flask. We don't want to reinvent that wheel and we don't want people to think we're trying to either. But @kollhof raises a good point about having a consistent framework and making use of existing investment in nameko services; ultimately that's why we added HTTP support in the first place. And lots, if not the majority of people, use HTTP as the transport between microservices.
In the name of pragmatism, and the fact that @kollhof's is the first concrete use-case we have for HTTP, we should be open-minded about the "web framework" label. It's probably sufficient to say loudly at the outset that we don't include all the bells-and-whistles that you'd expect of a fully-featured web framework. in the box. It's quite possible that someone will write them anyway; the question is how much we should provide from the outset.
I think for the "built-in extensions" we should strive to:

provide for the 80% case
with a lightweight implementation (no '000 line modules, rely on external libraries to do the heavy lifting)
not get in the way of extending to the full 100%
provide best-practice templates for others who want to create extensions

For HTTP the two difficult points are: identifying the 80% use-case, and the notion of best-practise for extensions. With AMQP messaging, we consciously don't give the service developer access to the message object, only the payload. Headers are available via a dependency. I think what we're achieving there is separation between the service code and the transport. And obviously Events and RPC are even higher abstractions.
It's a bit murkier with HTTP. The werkzeug Request object gives you access to form data, headers, cookies and file uploads. Requiring a dependency to access each of those seems a bit dogmatic, but the request object gives services lower-level access than we've made available elsewhere. I don't like the idea of service code looping over chunks of uploaded files, for example.
None of this precludes anyone writing their own extensions, of course. But back to the 80% case, it would be a bit silly if everyone basically built something like the above because it wasn't included out of the box.
Perhaps I'm agonising about it too much and the built-in version should just be nice and useable. Either that or provide a low-level base and a sensible abstraction on top, much as we did with AMQP messaging and then Events.
I like the parameterized POST URLs and hybrid handlers too.

Implemented in https://github.com/onefinestay/nameko/pull/224 and https://github.com/onefinestay/nameko/pull/225. Thanks @kollhof for the suggestions :)


add workflow samples for importing td object metadata from REST API

I have added workflow samples for importing td object metadata from REST API

basic_monitoring (job/connector/schedule)
workflow_monitoring (session/attempt/project/workflow/schedule)
cdp_monitoring (parent segment/entities/journey_statistics)

@o-mura Would you squash trivial commits such as add README, typo, minor fix and so on?


[CSGen] Rework SanitizeExpr

Restructure walkToExprPre/walkToExprPost.
Don't walk to children of CollectionUpcastConversionExpr. Previously, walkIntoChildren flag was ignored. Since this is also a ImplicitConversionExpr, just return subExpr().
(Fixes https://bugs.swift.org/browse/SR-8471 rdar://problem/43057058)
Ignore OpaqueValueExpr in eraseOpenExistentialsOnly mode. In this mode, we allow waking into other implicit conversion expression including MakeTemporarilyEscapableExpr.
Handle previously ignored expressions they are marked as
llvm_unreachable in ConstraintGenerator:

Replace MakeTemporarilyEscapableExpr with its original expression. To do this, added a reference to the original expression in MakeTemporarilyEscapableExpr.
Replace AutoClosureExpr with its body.

Generalize handling Bool to Int1 conversion.

@swift-ci Please smoke test


Changes for Issue # 1155 - Pull and Issues API and github collector c…

Changes being issued are for API and github collector component only for the change described in Issue #1155
UI repo widget changes to show the three graphs (along with commits) will be issued as a different PR

Will work on the changes - shouldn't take long. Will plan for completing them tmrw (Monday). Thx for the quick feedback

@thummalapalli Closing this per comments in pr 1186


K3s x Google Cloud

Weird, I did not close this issue and seemed to happen at the exact same time I merged https://github.com/rancherlabs/tf-rancher-up/pull/116
@leodotcloud I don't seem to have permissions to reopen this PR. Could you reopen it if possible.

Weird, I did not close this issue and seemed to happen at the exact same time I merged #116
@leodotcloud I don't seem to have permissions to reopen this PR. Could you reopen it if possible.

Hey @dnoland1, Don't worry, I'll create a new one.


6.7 breaks nuxt2 (actually since 6.6.8)

Version
@nuxtjs/tailwindcss: 6.7.0
nuxt: v2.16.3
Steps to reproduce
installing @nuxtjs/tailwindcss 6.7.0 or any version abover 6.6.7 and run nuxt build on a nuxt2 project, it results into build errors like the following:
Module not found: Error: Can't resolve '#build/tailwind.config/variants.mjs' in '/home/simon/Dev/hokify/hokify-server/services/admin-app/admin-interface/.nuxt/tailwind.config'
it throws errors about each file mentioned inside of tailwind.config/index.mjs
What is Expected?
should build like < 6.6.8
What is actually happening?
throws errors during build that it cannot find #build/tailwind.config/...
the files are there, but not sure abuot "#build" itself?

Can't see anything that leads to this in the changeset: https://github.com/nuxt-modules/tailwindcss/compare/v6.6.7...v6.6.8
did anythign else change? e.g. building/packaging?

The resolved tailwind.config.cjs did stop being generated, but this seems to be related #616 which was released in 6.4.1

Would fit indeed to the error, but 6.6.6 and 6.6.7 are working. Indeed strange, I'm trying to create a replica on stackblitz.

I'm not able to reproduce it somehow on stacklitz, maybe it is related to our monorepo setup (pnpm) which hoists all the nuxt speicifc things, but maybe it's missing something... still strange that it works with < 6.6.8.
will try to followup on this later

Sure. Here to help - let me know 🙂

I finally was able to reproduce the issue, it's not realted to pnpm, it happens when I import theme.
import { theme } from '#tailwind-config';
i created a simple helpers/test.ts:
import { theme } from '#tailwind-config';

export function blub() {
  return theme.colors['color-blue-dark'];
}

and imported it inside pages/index.vue to do just a simple console log on mounted of "blub()".
then I get the same erros:
ERROR in ./.nuxt/tailwind.config/index.mjs
Module not found: Error: Can't resolve '#build/tailwind.config/blocklist.mjs' in '/home/projects/github-ruub1l-bhwdqo/.nuxt/tailwind.config'

see https://stackblitz.com/edit/github-ruub1l-bhwdqo?file=pages%2Findex.vue,package.json,helpers%2Ftest.ts

Reduced it to the minimum changes: https://stackblitz.com/edit/github-ruub1l-ssfjxw?file=README.md
(no typescript, just tailwind and the import error)

Okay! I'm able to now find the issue.
I was puzzled about this issue not happening below 6.6.8 as you noted, but we also noted that we dropped tailwind.config.cjs for the new versions which created issues for Nuxt 2 as we were unable to test it, and exposeConfig in Nuxt 2 relies on it for CommonJS, while the #build/tailwind.config/* is for exposeLevel tree-shaking (but I can't say if Nuxt 2 can take advantage of it).
While I plan a fix for this ASAP, if you wish to stay on the latest version, the workaround for this, as in the docs, is to create a module and add it before @nuxtjs/tailwindcss in Nuxt config:
import { addTemplate } from '@nuxt/kit'

export default function () {
  this.nuxt.hook('tailwindcss:resolvedConfig', (c) =>
    addTemplate({
      filename: 'tailwind.config.cjs',
      getContents: () => `module.exports = ${JSON.stringify(c)}`,
      write: true
    })
  )
}


This is version for KIE 6.3-6.5

As many of the APIs are changed in version 7 this version is not applicable.
I changed some of the code and made it working for version 7. It is tested but might not be complete.
If there is interest I can share the code for KIE version 7 migration.

though if you think this might be still useful to others please go ahead and open PR for this and I'll be more than happy to merge it in.


Update CONTRIBUTING.md

@doberst , can you guide me how i can merge this PR with the main?

@doberst Please review my PR.

@UTSAVS26 - thanks for your contribution!   👍


Added Praveen's Name.

Added my name. Filled the Google Form.

Name: Praveen Kumar Purushothaman
LinkedIn: https://www.linkedin.com/in/praveentech/
Twitter: https://twitter.com/praveenscience
About: Full Stack JavaScript Specialist - MERN Stack, Careers Mentor, Supervisor @GWoC'21

Why do you want to become a mentor (optional)
I am extremely passionate in mentoring others and teaching folks.
My Mission includes:

Free High Quality Tech Education for Everyone!
More Women in Tech in South India, India and everywhere!

This is exactly the reason I wanna become a mentor.

@praveenscience can you please resolve the conflicts?


Cyan defined twice in light background

Hi. Thanks for developing this nice color scheme!
I just looked at the source code and found that, in colors/one.vim, cyan (s:hue_1) is defined twice (#0184bc and then #0083be) at lines 269-270.
I guess #0184bc is the original definition of one light, but #0184bc is overwritten by #0083be.
These two colors are too close to distinguish from one another with my eyes, so it actually does not matter.
However, is there any reason to do that or is it just a bug?

Thanks for pointing this out, I reverted to the original color


[Details Revamp] Remove Delete Action from Collect Workspace Settings Pages

Details

Removes delete actions from specific pages from the three dot menu and replaces them with a button.
Fixed Issues

$ https://github.com/Expensify/App/issues/42072
PROPOSAL:
Tests

Create a new workspace or use an existing one. Go into the More features section in the selected workspace menu and make sure to enable Distance rates, Categories, Tags and Taxes
Actions listed below should be tested for each of those activated sections, Distance rates, Categories, Tags and Taxes
Create a new item or use an existing one in each section, press on it to go into it's settings
Make sure there isn't a three dot menu and instead the delete action is moved into it's own button presented below any other options for the selected item. The logic is exactly the same as before for removing it, it can also be checked if it works as before.

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/88325488/b71e91be-8ea3-49d3-ab7c-8babdd23927a

Android: mWeb Chrome
https://github.com/Expensify/App/assets/88325488/9b5e50ff-b4a2-479d-9634-f25f2d41ae00

iOS: Native
https://github.com/Expensify/App/assets/88325488/93d6b08a-e88a-4c01-958a-2fc260c3edff

iOS: mWeb Safari
https://github.com/Expensify/App/assets/88325488/cbf5c6a7-7453-426d-b886-47f96d0d4612

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/88325488/e5cf6ed1-0645-4474-b6e3-5fb910e4ef21

MacOS: Desktop
https://github.com/Expensify/App/assets/88325488/9c399196-1358-4714-ac95-aaa11e4cd3d2

Context for internal reviewers without access to the design doc:

cc: @grgia

@hoangzinh can you review this today, please? Thanks!

can you check if the delete icon color is correct according to the design doc?
think it should be a red/danger color

This should just be the default icon color for our option rows. In the design doc it is icon colored, but I think there's a project going on that will update all our option rows to use icon as the default icon color (instead of success which is what they currently use).
I would say let's just leave it as the default for our option row component for now. It should not be danger, though it should launch a confirmation modal that uses a danger-colored confirmation button.
cc @shawnborton for a gut-check on leaving the icon success for now.

Yup, I agree with that - let's just leave it as-is for now and I think we'll clean up the icon colors in a different project.

@hoangzinh we've settled on leaving the icon color as is, it's ready to be tested 👍

@grgia I agree, I've moved it to a separate const variable in both of these cases.

🚀 Deployed to production by https://github.com/luacmartins in version: 1.4.81-11 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Fix the info callback

The info callback was not receiving all the handshake start and done events that it should in TLSv1.3. This fixes it and adds a test. I also updated the documentation to explain the meaning of the various events in a TLSv1.3 context.
Fixes #5721.

Checklist

[x] documentation is added or updated
[x] tests are added or updated

There was a merge conflict with master. Rebased.
@richsalz - can you reconfirm?

Reconfirm.

Pushed. Thanks.


Prototype dropped cell defense for bad circuitIDs

https://gitlab.torproject.org/tpo/core/torspec/-/issues/45 - Cells on invalid circuit IDs can be sent after we close the circuit, IF the guard is malicious as well.
This is a relatively minor case at the moment - if the guard is malicious, you're in a great deal of trouble without padding. But, with padding, either ad-hoc or standardized, the situation changes a bit.
We should prototype this to get a little bit more of a handle on behavior. I am not sure closing the channel is great, especially if it can be adversarially induced. Prototyping will help us think about these things deeper.
We might be able to use BW events as a catch-all for this, similar to how we used CIRC_BW. That will allow us to defer behavior to the python, to respond in a more agile way.
This is also useful for padding experiments related to https://github.com/mikeperry-tor/vanguards/issues/43
See also https://gitlab.torproject.org/tpo/core/torspec/-/issues/39

See also https://github.com/mikeperry-tor/vanguards/issues/76, which also needs some CONN_BW fields to work properly.

Florentin points out that creating a RELAY_DESTROY that is sent to the middle can help with the guard being malicious and not destroying the circuit. On the other hand, it makes the delay longer if the exit is sending dropped cells and the guard itself is not malicious but the local ISP is...


Shadow is not drawn on table rows in IE

Describe the bug
.jkl-table__row uses drop-shadow in stead of border, but this ends up not being rendered.
Expected behavior
Shadowssss
Desktop (please complete the following information):

OS: Window$
Browser: Internet Explorer
Version: 11

Additional context
Seems like the issue is solved by adding inset and change from a positive value to a negative.

Was fixed by #838


Test suite broken

Running rake results in almost all test cases failing with the same error:
      ArgumentError:
        No actors given to Tree to supervise.

See here. Solving this issue will help solve #56.

There you go @paddor


Pretrained models

I myself have trained a solid vae-model and am currently working on the dalle-model. How come noone has posted a pretrained model yet? It seems like a waste of ressources if everyone has to start vom scratch?
I'm on day 3 of training and still at a loss of 2,5 - i will have to increase the total number of images and include sparse attention next, as the 2,5 looks like a plateu with the current settings.

A pretrained model got released yesterday by the official DALL-E pytorch github repository, lucidrains already included it in the latest update!


Feature request: add special event "start" for --bind

Category

[x] fzf binary
[x] Key bindings

Shell

[ ] bash
[ ] zsh
[ ] fish

Eg, I would like to have the second item highlighted on startup.
It would be nice to call fzf as in:
echo -e 'abc\ndef' | fzf --bind 'start:down'

For reference, this is the tool I'm developing. When going up one dir, I would like to highlight the last visited node.

trunk

trunk

Also useful to invert selection and only deselect some items manually.

Also useful to invert selection and only deselect some items manually.

This would be my use case as well, I'd like to do start:select-all and allow user to deselect single entries or ranges (by making a search and toggle all matches).
@junegunn do you think it's hard to implement?
If not too hard I might try to impl it

Implementing it is trivial, I have a working copy locally, but I had some concerns.
fzf consumes the input asynchronously, so triggering the event immediately is probably not what you want.
# The whole list appears after 1.5 seconds
(sleep 0.5; seq 10; sleep 1; seq 10) | fzf

# Even without sleep, there is no guarantee that all data is available when fzf starts
any-command | fzf

So should we trigger start event upfront, or should we wait until the stream is complete? We could leave it up to the users and tell them to use --sync option. This is probably the easiest option for us, but I'm afraid many will misuse it.

Good point.
I'd be on the side of telling users the start event is best used with --sync for reliable actions on all inputs like select-all.
What's the behavior for the following cases without sync?

slow-seq 10 | fzf --bind start:down, does the selection follow the entry it was on on start? Or does it STAY on the 2nd one?
slow-seq 10 | fzf --bind start:select-all, what will be selected? When will they be selected?

For (2), do you think it would be possible to (maybe with another event or something) have all the entries asynchronously gathered, be selected?
(this will probably not be as trivial)

They are "actions", not "hooks". down action is triggered when you hit the down arrow key, and you don't expect your arrow key to do more than moving your cursor once. (I also have to mention that fzf starts with an empty input list, so down action on start without --sync will not do anything.)select-all is an action that "selects all matches" (for the current query). The items that have yet to come are not necessarily the matches for the current query, which may be empty or not, which is not necessarily the same as the initial --query because the user can always change it, at the current moment, it doesn't make sense to select them. It contradicts the common expectation.

For (2), do you think it would be possible to (maybe with another event or something) have all the entries asynchronously gathered, be selected?

This particular use case is probably better addressed by a separate dedicated option, but it's a very niche use case, so I'd rather not add it, which may not work well with the existing options (such as --multi LIMIT). start event with --sync should suffice.

I see, I understand. Then telling people to use --sync seems the simplest.
Did you have an example in mind when saying some might misuse it?
As far as I understood, it can't give partially working behavior, since there is no entries at start.

people use it without sync but it doesn't do anything useful, it doesn't work and they don't know why?

Exactly.

They will test, then read the docs again (hopefully)

Yes, hopefully :)


afero as filesystem

Implements Afero as the file system manager replacing the previous custom implementation, that was using separate readfile and writefile classes.
Add afero.utils.go file to get a virtual filesystem for testing.

I guess this is the failing integration test run:
https://github.com/dynatrace-oss/dynatrace-monitoring-as-code/runs/2199321921?check_suite_focus=true
Seems like you missed some util.NewFileReader calls in the integration tests.

I had to make more changes to the implementation. There are parts of the code that required the use of the filesystem implicitly, for example template.ParseFiles takes a filepath and gets a template. Had to change this and other methods to consume the Filesystem. Also, Afero release 7 days ago a new implementation to be compatible with the new io.FS native golang filesystem, so I updated the object in all the methods that previously used Afero.Fs to use Afero.IOFS. Also I have added an end2end test that with a set of 2 simple configs (alerting-profiles, managementzones) executes the restore config cycle. (uploads the configs, download the configs, deletes the configs in the env, reapplies the configs to the cluster and finally clears the reapplied configs). I will be adding more complex scenarios, so Monaco can be used as a tool to easily migrate configs from one env to another one or to restore deleted configs easily. These end to end tests are part of this PR to make sure the tool keeps working with all these small changes being made across multiple files.

The issue with using afero.IOFS is that we are still on Golang 1.15.
From what I've seen afero.IOFS and io.FS need Golang 1.16. It would be
nice to for now keep it as afero.FS and once we did the upgrade to Golang 1.16
to change it.
So for now, lets please focus on just using afero.Fs.

Actually forget what I just said :laughing:
I've opened a PR upgrading to Golang 1.16.

afero.IOFS (implements golang fs.FS) encapsulates afero.Fs to make it compatible with the golang fs.FS new filesystem. There are golang methods that consume the golang filesystem like template.ParseFS, and in order to use the afero virtual filesystem with those methods you will have to send an fs.FS implementation as a parameter. With the previous implementation, when using the virtual filesystem this method will fail, since it will try to look for files in the physical filesystem.  link to template.text golang

This PR is blocked by #267

PR #267 just got merged, so please rebase your branch

It would be nice if the fs could always be the first argument to a function.
This makes it consistent and easier to read imho.

Ok i will make the changes you mention and create a new branch with a single commit to squash the current commits, the commit history is getting a bit long for this functionality

There is no need to create a new branch. Just squash them and force push.
In this case it is fine, since you are the only one working on it anyway.

https://github.com/dynatrace-oss/dynatrace-monitoring-as-code/runs/2234312841?check_suite_focus=true
Incorrect Usage. flag provided but not defined: -environments seems like we use -environments instead of
--environments somewhere in the integration tests.

https://github.com/dynatrace-oss/dynatrace-monitoring-as-code/runs/2242973172?check_suite_focus=true

Strange seems like the integration tests are broken. I've looked through the integration tests on your
branch and i do not find any wrong flag issues.

yes It's saying invalid value for flag --verbose, but this should be a valid value

It actually makes sense :man_facepalming:
--environments is only available in the new cli and the integration tests
are executed without the NEW_CLI flag set.
So all --environments have to be replaced with -e, or we set the NEW_CLI
for all of them .

I will set environments to -e, but also in the docs says that monaco --project <project-folder> --environments <path-to-environment-yaml-file> [projects-root-folder] could be used, this is the previous CLI right? because it's not using any commands

Actually you are right, no idea how I ended up with thinking this :laughing:
So forget about the NEW_CLI thing.

This might be an issue in our integration tests setup.


Radius docs imply that Azure is not supported

What content needs to be created or modified?
The Resource schemas section of the docs (https://docs.radapp.io/reference/resource-schema/) lists a bunch of local resources (Kubernetes types), and how to manage AWS resources, but doesn't mention Azure. It seemed clear to me that Azure was not supported.
I know this is a Microsoft project so realised that Azure must be supported, and did a search, which showed that of course Azure is a first class citizen (https://docs.radapp.io/guides/author-apps/azure/overview/) but this wasn't as clear as it could be.
Describe the solution you'd like
Just as there is a section for AWS resources in https://docs.radapp.io/reference/resource-schema/, there should be one for Azure resources. It could be just a single page with "all Azure resource types are supported; here's how".
Where should the new material be placed?
See above.
The associated pull request from the Radius code repo, if applicable
N/A
Additional context
N/A
AB#9996

Thanks @plwhite - this is great feedback.

@plwhite Thanks again for having called this out! We've added a menu item that can link users to all the supported Azure resources as well as their templating formats in Bicep. I hope that can clarify any confusion for future users. Let me know if you still think this might not be the best solution and we can discuss! If not closing this issue now!


Fix TensorFlow configure script invocation.

Invoke configure script from the tensorflow source directory.

@swift-ci Please test tensorflow

@swift-ci Please test tensorflow

@swift-ci Please test tensorflow

@swift-ci Please test tensorflow

@swift-ci Please test tensorflow

@swift-ci Please test tensorflow

@swift-ci Please test tensorflow

The GPU CI error appears to be fixed after this PR:
WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown".
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
/usr/bin/python: can't open file 'third_party/gpus/find_cuda_config.py': [Errno 2] No such file or directory
You have bazel 0.24.1 installed.
Please specify the location of python. [Default is /usr/bin/python]:

Invalid python path: yes  cannot be found.
Please specify the location of python. [Default is /usr/bin/python]:

Found possible Python library paths:
  /usr/local/lib/python2.7/dist-packages
  /usr/lib/python2.7/dist-packages
Please input the desired Python library path to use.  Default is [/usr/local/lib/python2.7/dist-packages]
Do you wish to build TensorFlow with XLA JIT support? [Y/n]: XLA JIT support will be enabled for TensorFlow.

Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: No OpenCL SYCL support will be enabled for TensorFlow.

Do you wish to build TensorFlow with ROCm support? [y/N]: No ROCm support will be enabled for TensorFlow.

Do you wish to build TensorFlow with TensorRT support? [y/N]: No TensorRT support will be enabled for TensorFlow.

Asking for detailed CUDA configuration...

Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7]:

Please specify the locally installed NCCL version you want to use. [Leave empty to use http://github.com/nvidia/nccl]:

Please specify the comma-separated list of base paths to look for CUDA libraries and headers. [Leave empty to use the default]:

...

Traceback (most recent call last):
  File "/home/swiftci/jenkins/workspace/swift-PR-TensorFlow-Linux-gpu/tensorflow/configure.py", line 1571, in <module>
    main()
  File "/home/swiftci/jenkins/workspace/swift-PR-TensorFlow-Linux-gpu/tensorflow/configure.py", line 1478, in main
    _DEFAULT_PROMPT_ASK_ATTEMPTS)
__main__.UserInputError: Invalid CUDA setting were provided 10 times in a row. Assuming to be a scripting mistake.

Maybe the logic that looks for third_party/gpus/find_cuda_config.py is not robust against current working directory location.


beacon sync: use weight unit and ballot weight for beacon sync

Motivation

Closes #3174

Changes

use number of weight units (eligibilities) instead of number of ballots for beacon sync condition
since beacon sync samples ballots for the correct beacon value of the epoch, use ballot weight instead of the whole atx weight for adding up total weight behind a beacon value to avoid undue influence on ATX whale
once enough weight unit is accumulated, take the beacon with majority weight for the epoch. if majority weight not available, take the plurality weight.

bors try

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge


Native deployment for Veraison

This pull adds a "native" deployment for Veraison. This is similar to the existing "docker" deployment, but does not create docker containers, and instead runs natively on the system. The downside is that it has non-trivial dependencies (the deployment features boostrap scripts for Arch, Ubuntu, and MacOSX). The upside is that it is significantly faster to create, easier to use for development and debugging, and does not rely on Docker being set up on the system.

@setrofim : Thanks for enabling the support for WSL users. We have validated the setup on machine and now it all works to completion!


Editor is unable to publish the post

Basic Info

Laravel v8
Canvas v6

Description
An editor is unable to publish the post written by the contributor. The error can be seen in the console as follows:

I believe the error is due to the following condition in the store method in src/Http/Controller/PostController.php
if ($request->user('canvas')->isAdmin) {
    $post = Post::with('tags', 'topic')->find($id);
} else {
     $post = Post::with('tags', 'topic')->where('user_id', $request->user('canvas')->id)->find($id);
}

if (! $post) {
    $post = new Post(['id' => $id]);
}

Here since the signed-in user is an editor and user('canvas')->id returns the id of the editor, thus the post is not being found. Hence a new post is created which results in Duplicate Entry error.

I'll get this fixed shortly.


[$500] Members - Invite message doesn't remain when User navigate back to Invite members page

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

Action Performed:

Create new Workspace
Navigate to Members
Tap on Invite button
Invite few users
Tap Next
Edit the Invite message and put new message
Navigate back to Invite Members page
Tap Next button

Expected Result:
Invite message should remain when User come back to final Invite page
Actual Result:
Invite message doesn't remain when User navigate back to Invite members page
Workaround:
Unknown
Platforms:

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

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

Version Number: 1.3.72-6
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/331d7c25-7476-445b-a0bf-fe8b0d51b121
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0111f805abe8b69c9a
Upwork Job ID:<PHONE_NUMBER>859646976
Last Price Increase: 2023-10-18

I'm unable to test right now due to the site issues and will be traveling for work later today. If I get plane wifi, then I'll try to test either tonight or this weekend.

I'm back online and will try to test soon.

Not overdue, CM tasks are a higher priority right now. I'll test this one soon.

I confirmed this experience but I'm asking in the Open Source room to verify if the lack of stickyness is on purpose.

No update in the Slack convo. I will try bumping again tomorrow.

I bumped the thread again

Only one response so far:

Just my opinion (not based on any expected behaviour that I know of) but to me it would make sense to reset the message if the list of users invited changes and keep it sticky if nothing changes

I'm going to keep shopping around for feedback early next week.

I'm OOO today but will work on getting more feedback tomorrow

I've sent another bump in the Slack thread.

Following some feedback that I received, I'm adding a screenshot to clarify the section of the product that this update would change:

I asked again here for feedback: https://expensify.slack.com/archives/C03U7DCU4/p1697498602091889

Assigning the external label, after much discussion, it's been decided that the copy sent in an invite should be saved for the next invite even if the tab is closed. If there are edits, then those are saved for the next invite.
@allroundexperts keep us posted if the proposal will work or if we need to wait for more.

Making this external again since the solution took time to get a clear path forward on how we wanted this section to work.

@allroundexperts can you review if the proposal will fix this issue?

Daily Update: waiting for @allroundexperts to review

Thanks @neonbhai for the proposal. I actually think this is more a feature than it is a bug, and I don't think it's worth it to implement the proposed solution, because it'll add a logic and complexity that imo is not worth the effort or the maintenance, for what imo is a big edge case.
I think we should close this issue

Ah yes I like that proposal better, I don't know how I missed it yesterday, maybe GH hid it. Does the solution support multiple workspace, ie, if you type something in the draft, and that gets saved in Onyx, and you go back and switch to another workspace and try to invite people, does the draft from the other workspace show up?

@cead22 I think it's confirmed here that it's a joint decision to make it sticky.

One clarification I want to make is that what was agreed there, and discussed on slack, was to save the welcome message after people get invited, not in this back and forth flow of selecting people, editing the messages, and going back to select more people.
Given that, I was going to insist we didn't fix this, but after reading @tienifr 's proposal, and seeing that we must already have some "magic" for saving drafts with shouldSaveDraft, I'm more inclined to fix this

@alexpensify you're going to need to hire folks manually for the job, for some reason auto-hiring isn't working right now.  Discussing here

Ok, I'll do so on Monday since I'm OOO today. Thanks for flagging @mallenexpensify!

@tienifr - can you please apply for this job, so I can prepare for the payment date:
https://www.upwork.com/jobs/~0111f805abe8b69c9a
Thanks!

Awesome and it looks like the PR is ready for review by @allroundexperts.

Now we wait for the automation to kick in here.

Whoops wrong issue disregard!

Reassigning another 🐛  team member, I'm going OOO until Tuesday, November 14, and will take it back if it's still open by my return date.
@muttmuure   - Required action from the team:
Please keep an eye out, I haven't been able to review the deploy blocker and it will delay the payment process for this one. Thanks!

I'm back and unassigning my buddy.

@allroundexperts - can you please confirm if there is regression here? I want to complete the payment process this week. Thanks!

@allroundexperts - any update here? I would like to close this one out tomorrow before I'm OOO again next week. Thanks!

Agreed

Reassigning another team member, I'm going OOO until Monday, November 27, and will take it back if it's still open by my return date.
@strepanier03  - Required action from the team:
I didn't get a chance to start the payment process and input a payment summary here. This one is ready for the payment process. Thanks for helping to make sure everyone here is paid out. Thanks!

Requested @strepanier03!

$500 payment approved for @allroundexperts based on summary above.


docs(samples): remove apiary lib from samples

Oh yikes, had no idea these weren't tested.  That having been said - the changes I made were fairly cosmetic in many cases, where the client was already entirely ignored.  The little bits of actual runtime code that changed had clear mappings to GAPIC methods.  I'm not concerned.


fix path of golint

Fix #30.
This PR changed import path of golint to golang.org/x/lint/golint.
https://github.com/golang/lint/commit/ead987a65e5c7e053cf9633f9eac1f734f6b4fe3
https://github.com/golang/lint/issues/415

Thanks!

Thanks for review  and merge 👍


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v3.16 to before v4.9.276",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=058504edd02667eef8fac9be27ab3ea74332e9b4",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=c5157b3e775dac31d51b11f993a06a84dc11fc8c"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "058504edd02667eef8fac9be27ab3ea74332e9b4",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "c5157b3e775dac31d51b11f993a06a84dc11fc8c",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "seq_file: disallow extremely large seq buffer allocations\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v4.9.276 by commit c5157b3e775dac31d51b11f993a06a84dc11fc8c, it was introduced in version v3.16 by commit 058504edd02667eef8fac9be27ab3ea74332e9b4. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1001442


bugfix/128 - Exit process on success

Call process.exit() when successfully creating a new db.

Thanks!


attempt schema generation for dealbot data

Also, to clarify - I agree that using composite literals and field accessors directly is nice, but it's just not a great idea with the codegen. That's one of the main reasons I'm doing the reflection experiment, to make the node API "Go type first".

I'm pretty fine with methods like this in the same package adding more domain-specific usability to the codegen types, fwiw.  I don't think it's terribly likely (and certainly, not going to be high frequency) for the codegen internals to change in ways that will make this a pain to maintain.
I mainly wonder if adding constructor functions like this Of(...) pattern on the Prototypes is something we should add to the codegen.  (I had thought about it before, and even have a half-completed diff that unfortunately didn't get carried to completion.  I'd merge proposals for it real fast if anyone wants to stab at it.)


Make it very clear this repo is not ready for prime time.

Post-merge LGTM. Thanks for clarifying the relationship to HELM!


Update Not enough XOR screen

Need update KYC description screen to Not enough XOR screen from figma
Disign: https://www.figma.com/file/5kaHWqH73Ekez7RVOpH36g/✅-SORA-Wallet-(on-Prod)?type=design&node-id=13169%3A6594&mode=design&t=nrKsV4g2BDxK0Lc3-1

Verified on 1.0. (259) develop version.
The issue is still repro.
Merge fix to develop from builds: https://jenkins.soramitsu.co.jp/job/sora/job/sora-ios/view/tags/job/3.7.1/

Verified on 3.8.3(9) Soralution version.
There is no text below the Get more XOR:
"You can swap for XOR or buy with card".

Verified on <IP_ADDRESS> Soralution version.
Add please "Your phone number: +358 50 633 12 89" field.
Because it would be useful to see, otherwise the user entering a number with 0 thinks that he entered it, but in fact we cut it off.

The feature task will be designed by Boris for the next sprint.


nixos/dendrite: private_key must be set and private_key can not be automatically generated

Describe the bug
When setting up the dendrite matrix server, one must specify a settings.global.private_key otherwise it will not build (error: The option 'services.dendrite.settings.global.private_key' is used but not defined). That is because the private_key option does not have a default. Additionally the private_key must be generated manually after boot, if the service module is not overriden. IMO that is very impractical.
Steps To Reproduce
Steps to reproduce the behavior:

Setup a minimal flake with a minimal dendrite config as follows:

services.dendrite = {
  enable = true;
  settings.global.server_name = "localhost";
};

Try to build the flake

Expected behavior
Should build without needing to specify a private_key explicitely and should generate a private_key on startup.
Additional context
Here is how I implemented the private_key generation locally:
systemd.services.dendrite.serviceConfig.ExecStartPre = lib.mkForce [
  ''${pkgs.bash}/bin/bash -c "if [ ! -f ${private_key} ]; then ${pkgs.coreutils}/bin/mkdir -p /etc/dendrite/keys; ${pkgs.dendrite}/bin/generate-keys --private-key ${private_key}; ${pkgs.coreutils}/bin/chmod 666 ${private_key}; fi;"''
  ''${pkgs.envsubst}/bin/envsubst -i ${configurationYaml} -o ${configPath}''
];

Note: private_key is defined in a let block.
Last tested with https://github.com/NixOS/nixpkgs/blob/2c19718beed29f1b627a3a143653487318d6511c/nixos/modules/services/matrix/dendrite.nix
Notify maintainers
@ma27 @fadenb @mguentner @ekleog @ralith @dandellion @sumnerevans
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
This the ouptut on the machine on which I want to build:
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.103, NixOS, 22.11 (Raccoon), 22.11pre431886.eac7da7b519-esg`
 - multi-user?: `yes`
 - sandbox: `relaxed`
 - version: `nix-env (Nix) 2.11.1`
 - channels(root): `"vas"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/vas/nixpkgs`

I think that this is not a security behavior to generate a private key when build time.

I think that this is not a security behavior to generate a private key when build time.

I agree, for that reason I would generate them before starting the service (see my example).


fix(demo): add instructions for entry file renaming

Preview environments are getting posted here, as soon as they are ready!


Tokenize css before beautifying

See #506.
This is the kind of bug that is much less likely to occur if you actually tokenize instead of just streaming through characters spewing output.

@bitwiseman Are you still interested in this? I might be willing to work on this a few tokens at a time instead of tokenising the entire beautifier at once.

@mhnaeem
Yes, I absolutely am interested in this. This task has high long term value - it will make it much easier to maintain and improve the css beautifier.  However, I think the bugs you've been fixing have much higher immediate value to the project.
I'm not sure how you'd convert to using tokens one or two at a time.
Maybe if we start by looking for strings.  So you'd have TK_RAW and TK_STRING and the raw processor is basically the current CSS beautifier.

@mhnaeem
I've started a branch for this feature/css-tokenizing.
If you see where I'm going from that mess off code, please go for it.  Otherwise hold off until I get comments and strings working.  Then it should be at a point where it is easier to add more tokens one at a time.

@bitwiseman Actually that is very similar to what I had in mind. I actually wrote a partially working tokenizer to understand the mechanics of CSS. My biggest issue was handling whitespace and newlines with the with partially tokenized code. You have to back track all the whitespace and newline characters in the input scanner if an unknown token comes along so the rest of the beautifier code can work as normal and peek for spaces if needed. I will let take a stab at fixing strings to see how you handle working with positions before I can take a look.
Things that I learned from experimentation:

Strings can be easily parsed because css natively doesn't support template literals or multiline strings. No need for recursion can repurpose this.eatString type code in tokenizer
Reducing direct usage of this._input is more important and local alternatives for lookBack and peekUntilAfter are important
No alternatives for this._input.back() in TokenStream
this.NON_SEMICOLON_NEWLINE_PROPERTY needs "grid-template-areas", added to it
The flags need to go in this._flags object instead of directly on this._insideSomething so we can check all the flags for the previous ones
Class and id selectors can be very easily tokenized

    var pattern_reader = new Pattern(this._input);
    this.__patterns = {

        // https://stackoverflow.com/questions/448981/which-characters-are-valid-in-css-class-names-selectors
        class_selector: pattern_reader.matching(/\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*/),
        id_selector: pattern_reader.matching(/#-?[_a-zA-Z]+[_a-zA-Z0-9-]*/)
    };

@mhnaeem
If you have already done the work even partially, please share your branch or submit a PR.  Even if it is incomplete it would make for good discussion.

I have created a draft PR #2032, not sure if it has any usefulness. I wasn't really focused on committing a lot of code because that was just me learning so most of the work I did is lost 😅.


Says that socket.connect() is undefined?

When I attempt to connect to a socket it says undefined is not an object (evaluating 'Sockets.connect') in my react native app, when it clearly isn't undefined, as doing a console.log(client.connect) gives [Function anonymous], and the debugger explicitly prints that my socket is connecting to its target. (socket-1 connecting, host: <IP_ADDRESS> port: 5668, presumably coming from said 'connect' function).

same issue happening for me although the error I am seeing is 'Cannot read property 'connect' of undefined'
`    initSocket (){
console.log('Starting connection...');
    let socketClient = new net.Socket();

    socketClient.connect(8080, socketURL, function() {
        console.log('Connected');
        //client.write('Hello, server! Love, Client.');
    });

    socketClient.on('data', function(data) {
        console.log('Received: ' + data);
        socketClient.destroy(); // kill client after server's response
    });
    socketClient.on('close', function() {
        console.log('Connection closed');
    });

    this.setState({tuningSocket: socketClient})
}`

are you targetting android, ios or windows?

Currently targeting android using Expo
On Sun, Jul 8, 2018, 12:06 AM rolodex<EMAIL_ADDRESS>wrote:

are you targetting android, ios or windows?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PeelTechnologies/react-native-tcp/issues/81#issuecomment-403260725,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AcokslcDAFZW2_562JhyPCdOkzxt99j4ks5uEYUvgaJpZM4UqtEr
.

i have the same problem

pretty sure this won't work on expo

pretty sure this won't work on expo

Could you elaborate? I need TCP-sockets in my Expo app and this module seems like the only way. Would you happen to know of a solution?

@VoxelBuster @rolodex @kadli01, did anyone of you ever find a solution?

Nope, never did. Ended up using a different solution.
On Wed, Feb 27, 2019, 4:09 PM Pål Nilsen<EMAIL_ADDRESS>wrote:

@VoxelBuster https://github.com/VoxelBuster @rolodex
https://github.com/rolodex @kadli01 https://github.com/kadli01, did
anyone of you ever find a solution?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PeelTechnologies/react-native-tcp/issues/81#issuecomment-468031531,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Acoksi8zxK7no5zjyba5lZ3wzYCRNnELks5vRvQIgaJpZM4UqtEr
.

Nope, never did. Ended up using a different solution.
…
On Wed, Feb 27, 2019, 4:09 PM Pål Nilsen @.***> wrote: @VoxelBuster https://github.com/VoxelBuster @rolodex https://github.com/rolodex @kadli01 https://github.com/kadli01, did anyone of you ever find a solution? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#81 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/Acoksi8zxK7no5zjyba5lZ3wzYCRNnELks5vRvQIgaJpZM4UqtEr .

What was your different solution?

Ended up not using react native altogether and went with Android Java
On Fri, Mar 15, 2019, 6:29 PM SamLand<EMAIL_ADDRESS>wrote:

Nope, never did. Ended up using a different solution.
… <#m_-4897593111920764534_>
On Wed, Feb 27, 2019, 4:09 PM Pål Nilsen @.***> wrote: @VoxelBuster
https://github.com/VoxelBuster https://github.com/VoxelBuster @rolodex
https://github.com/rolodex https://github.com/rolodex @kadli01
https://github.com/kadli01 https://github.com/kadli01, did anyone of
you ever find a solution? — You are receiving this because you were
mentioned. Reply to this email directly, view it on GitHub <#81 (comment)
https://github.com/PeelTechnologies/react-native-tcp/issues/81#issuecomment-468031531>,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Acoksi8zxK7no5zjyba5lZ3wzYCRNnELks5vRvQIgaJpZM4UqtEr
.
What was your different solution?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PeelTechnologies/react-native-tcp/issues/81#issuecomment-473460985,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AcokstzIVqA6l0pRHbA7y-h23-VkxR-Tks5vXB7PgaJpZM4UqtEr
.

I'm getting a similar error TypeError: undefined is not an object (evaluating '_reactNativeTcpSocket.TcpSocket.createConnection')

Is there anyone who solves this? I really need help ......


More const with MSRV 1.83

Once Color gets an MSRV of 1.83, some more methods can be marked const:

Missing::insert
Flags::set_missing
Flags::set_named_color_space
Flags::discard_name

I wouldn't necessarily be opposed to doing that MSRV bump now. OTOH, these are relatively minor wins that it's probably not worth it?

I don't think they're so important that it needs to land now, but I did want to track it so we remember to do this later. It can make some of the flag/missing manipulations in const contexts a bit more ergonomic.

My suggestion would be to add warn(clippy::missing_const_for_fn) on the specific items, so that when the MSRV bump does happen, we get a direct warning (I'd consider even enabling that lint globally, so that we are forced to make an explicit decision...)

I am already delaying trying to introduce color to some things due to MSRV, so I am happy to track these things, but less excited about them actually landing yet.


Allow Cursor option for the filepicker

Is your feature request related to a problem? Please describe.
It's nice to allow the user to set the cursor for the file picker. (Default is >).
Describe the solution you'd like
When the user sets the custom cursor option like the one below,

the output could be something like the below

Additional context
I'm unsure if this is a feature or a bug because the gum file-picker allows the option to set the cursor but it isn't working. Please see this issue

I'd love to raise a PR. Thanks:)


Add machine translated multilingual STS benchmark dataset

also see here https://github.com/PhilipMay/stsb-multi-mt

Hello dear maintainer, are there any comments or questions about this PR?

@iamollas thanks for the feedback. I did not see the template.
I improved it...

Should be clean for merge IMO.

@lhoestq CI is green. ;-)

Thanks again ! this is awesome :)

Thanks for merging. :-)


Walletconnect issues to Gnosis Safe + Android ends the active session with WalletConnect, due to gas-limit settings.

[hat tip to bsh666]
Situation:
Trying to connect alphawallet mobile app with Gnosis Safe via walletconnect as a signer wallet.
Issue #1: WalletConnect issues to Gnosis Safe
Not able to scan gnosis walletconnect code though is the camera would not focus in portrait mode. It does focus in landscape mode, but then it still does not scan, the bar code cannot fit in the scan rectangle in this mode.  Finally managed to do it on landscape and got the phone far enough to fit the barcode into the rectangle. It became too small and took a few attempts to scan.
Phone: Huawei P9 EVA-AL10 with Android 8
Request #1:

Since this needs to be done every time I need walletconnect, I hope you could fix this at some point

Going from landscape to portrait mode or vice versa tends to break up walletconnect session, and on landscape mode you cannot see the confirm button. You really need to work on testing both modes

Issue #2: Android ends active session with WalletConnect, due to gas-limit

If the app is closed by Android memory management while walletconnect session is active, it will destroy the session. I had to start my safe creation all over again. Maybe think about persisting this session somehow as it seems very fragile now.

When I finally managed to create my safe, I tried to send some small test funds from AlphaWallet to the safe address. However it failed repeatedly due to "out of gas error". I finally figured out, cause it was smart contract it requires more gas to complete the tx. The standard 21000 gas limit that you have would not do it. I set i to 40 000 and then it completed with:Gas Limit:
40,000
Gas Used by Transaction:
25,918 (64.8%)

Request #2:
I think you should detect that the receiver is a small contract and include a higher limit in that case. Same for other stuff like ICO tokens, etc Or if it is not possible include some kind of toggle so people can choose those types and then you could change your defaults accordingly.

Thanks for writing these out @sharonsylu, I'll get these updated


Cannot scroll in terminal

Type: Bug
Open terminal.
Enter enough commands so that the first one has scrolled off screen. e.g. cat my100line.txt
Try to use the trackpad (macOS) to scroll up to see the first line.
It won't do it. Instead it's scrolling through recent commands. Which is USELESS -- I can use the up and down arrows for that.
This has only just broken. Must have been the most recent update.
Please fix. I simply can't use your console now. I have to CMD+tab to an iterm window.
VS Code version: Code 1.72.2 (d045a5eda657f4d7b676dedbfa7aab8207f8a075, 2022-10-12T22:16:30.254Z)
OS version: Darwin x64 21.5.0
Modes:
Sandboxed: No

this is working for me - are you able to repro in insider's?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Error with true_rep parameter

Hi Kundajelab,
Thanks again for sharing and maintaining the pipeline. I have ran the pipeline successfully with both true_rep and no_idr once for our experiments. Now I would like to get the idr result so I reran the pipeline but take no_idr out and leave only the true_rep parameter (same output folder). The pipeline skipped the do_align(), finished call_peaks(), but encountered the following error during idr step:

Fatal error: /osc-fs_home/chang-j/software/atac_dnase_pipelines/atac.bds, line 1277, pos 33. Map 'idr_pr' does not have key '1'.

Is this due to I run twice with different parameters? The full stdout is attached here. Thanks in advance!
iMT_hg38.atac.bds.macs2.idr.teelog.txt

It's fixed in 6241adf

Thanks for the prompt response. I pulled and tried again. It passed the last error point and finished do_idr() , but seems encounter another similar error:

Fatal error: /osc-fs_home/chang-j/software/atac_dnase_pipelines/atac.bds, line 1402, pos 65. Map 'idr_pr_png' does not have key '1'.

Full stdout is here. Thanks!
iMT_hg38.atac.bds.macs2.idr.bugfix.teelog.txt

fixed in 3a48fa6. please pull and try again.

Another similar issue:

Fatal error: /osc-fs_home/chang-j/software/atac_dnase_pipelines/modules/ENCODE_accession.bds, line 195, pos 19. Map 'map' does not have key 'N1'.

Thanks a lot.

I am sorry bothering you so many times about this issue. It's finally fixed and tested in the commit a5d3efa.

The latest commit works for me now. Thanks a lot for your patient in fixing the bug.


Request help: Support extension of service Registration and Discovery for ServiceComb

Issue Description

Support extension of service Registration and Discovery for ServiceComb
README and UT should be covered
Executable example should be covered

Code Repository

registry-servicecomb

Kitex Extension API

Registry:

EN: https://www.cloudwego.io/docs/kitex/tutorials/framework-exten/registry/
CN: https://www.cloudwego.io/zh/docs/kitex/tutorials/framework-exten/registry/

Discovery:

EN: https://www.cloudwego.io/docs/kitex/tutorials/framework-exten/service_discovery/
CN: https://www.cloudwego.io/zh/docs/kitex/tutorials/framework-exten/service_discovery/

ServiceComb

OpenAPI: https://github.com/apache/servicecomb-service-center/blob/master/docs/openapi/v4.yaml
go client: https://github.com/go-chassis/sc-client

Implementation reference

registry-nacos

may i pick this？

may i pick this？

Great ! Looking forward to it ~ @bodhisatan

https://github.com/kitex-contrib/registry-servicecomb/pull/1

Finished and well done @bodhisatan


Crossed, Nested, and Crossed & Nested structures; Additional sampling tree levels

Hello and nice work.
From looking at the code I believe the 'classical' gage R&R is implemented, where each operator measures the same set of parts, so measurement is nested under part, and part and operator are crossed.
Do you have any plans to support a fully nested sampling plan where each operator measures their own set of parts (mentioned in the article you referenced as a case in destructive testing)?
Additionally, it would be great to be able to analyze the variance components for a larger sampling plan. A simple example: each operator uses two gages, so parts are crossed with gages, and gages are crossed with operators.

Hi Jim,
thank you very much for your comment.
You are rigth, current algorithm is based on crossed analysis. Nested one was not in the roadmap but if it is interesting for the users I'll include in the next 0.3.0 milestone.
Regarding last topic, may I'll be wrong, but if we have all measurement in a dataframe, I would split it in two, one per gage. Then, I would run one analysis per gage. Variability added by Operators must be the same, so we could check if each gage add different variability. Will it work?

Hello,
Nested is not so critical as is primarily for those doing destructive testing.
Your suggestion could work to some extent but couldn't directly quantify the interactions between gage and other effects. I'm inspired to start working on some code.
Best, Jim

After some test I could check that this kind of processes where the sample is destroyed could be analyzed using the existing repeatability module. It was developed for automatic measurement system, where operator doesn't add variability to the system and reproducibility analysis is not required.
I tested some web datasets and result given by repeatability module match with the source of the data.
Thanks¡


x1238 client—As TS (Katy), I want to add a decoding consumables lot number to the Xenium Analyser operation, to help move away from Excel lot tracking

Lot is 6 digits
One per labware

@sabrine33 @khelwood can you move the box to the analyser details part of the page? as ti would be the same lot number for the run /both slides

@KatyTudor, yes, sure. I added it there since the story specifies "per labware." Do you want it to behave like the SGP number field and populate the labware entries upon change?

@sabrine33 sorry yes its per run not per labware


Modify how to install

Hi👋, @abdullah-alaadine !
The install method described in the README did not allow installation, so I changed it to the method that does !
~
12:52:17 > go get github.com/abdullah-alaadine/local-git-contributions-visualizer
go: go.mod file not found in current directory or any parent directory.
        'go get' is no longer supported outside a module.
        To build and install a command, use 'go install' with a version,
        like 'go install example.com/cmd@latest'
        For more information, see https://golang.org/doc/go-get-install-deprecation
        or run 'go help get' or 'go help install'.
~
12:53:40 > go install github.com/abdullah-alaadine/local-git-contributions-visualizer@latest
go: downloading github.com/abdullah-alaadine/local-git-contributions-visualizer v0.0.0-20230602134514-e8aa3b981c75
go: downloading github.com/go-git/go-git/v5 v5.7.0
go: downloading github.com/ProtonMail/go-crypto v0.0.0-20230518184743-7afd39499903
go: downloading github.com/go-git/go-billy/v5 v5.4.1
go: downloading github.com/emirpasic/gods v1.18.1
go: downloading github.com/imdario/mergo v0.3.15
go: downloading github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376
go: downloading golang.org/x/sys v0.8.0
go: downloading github.com/pjbgf/sha1cd v0.3.0
go: downloading golang.org/x/crypto v0.9.0
go: downloading github.com/kevinburke/ssh_config v1.2.0
go: downloading github.com/skeema/knownhosts v1.1.1
go: downloading github.com/xanzy/ssh-agent v0.3.3
go: downloading golang.org/x/net v0.10.0
go: downloading github.com/cloudflare/circl v1.3.3
~
12:58:16 > which local-git-contributions-visualizer
/mnt/c/DEV/workspace/GO/bin/local-git-contributions-visualizer
~
12:59:19 >

I'm sorry! I have another change to make and I will rework the PR!


feat(icon): support for store and stores folders

Think it would make sense to use the DB folder by default and then use project detection.

Closing this as this solution is not acceptable. Thanks for your contribution, though.


Add ENTRY_POINT env.

Related issues:

https://github.com/facebook/create-react-app/issues/1084
https://github.com/facebook/create-react-app/issues/3941
https://github.com/facebook/create-react-app/issues/3052

With this change, you can build different bundles via:
ENTRY_POINT=src/admin react-scripts build
ENTRY_POINT=src/shop react-scripts build
ENTRY_POINT=src/blog react-scripts build

This is exactly what we need to get CRA working with acceptance testing. We need a way to bundle the tests using the same bundler that bundles the app. Currently there is no way to do that in CRA without ejecting which is not very ideal.

? No activity?


Migrate ModalBottomSheet to Material 3

Wouldn't it be better to make a new module for Material 3? People still use Material 2 and this would block updating for them.

@Syer10 I agree, it's better to make another module. Then I will close this PR


fix: Unhandled Exception: 128: Not a supported op.

Description
A simple shader example compiled and generated successfully, however, fails on execution with the following error Unhandled Exception: 128: Not a supported op.
Steps To Reproduce
Sample shader
uniform float time;

const float Pi=3.14159;
const int complexity=40;// More points of color.
const float fluid_speed=3000.;// Drives speed, higher number will make it slower.
const float color_intensity=.225;

vec4 fragment(vec2 uv,vec2 fragCoord){
    vec2 p=(2.*gl_FragCoord.xy-resolution)/max(resolution.x,resolution.y);
    for(int i=1;i<complexity;i++)
    {
        vec2 newp=p+time*.0003;
        newp.x+=.6/float(i)*sin(float(i)*p.y+time/fluid_speed*float(i+2000))+.5;
        newp.y+=.6/float(i)*sin(float(i)*p.x+time/fluid_speed*float(i+1909))-.5;
        p=newp;
    }
    vec3 col=vec3(0.,color_intensity*sin(3.*p.x)+.25,color_intensity*sin(3.*p.x)+color_intensity);
    return vec4(col,1.);
}

Flutter code:
import 'package:flutter/material.dart';
import 'package:shader/shaders/hello_world.dart';

void main() async {
  // Ensure bindings are initialized otherwise we can't user rootBundle.
  WidgetsFlutterBinding.ensureInitialized();

  runApp(const MaterialApp(home: MyApp()));
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  // Compile the binary into a Fragment program.
  var _value = 0.5;
  HelloWorld? program;
  @override
  void initState() {
    super.initState();
    initProgram();
  }

  Future<void> initProgram() async {
    program = await HelloWorld.compile();
    if (mounted) {
      setState(() {});
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            SizedBox(
              width: 300,
              child: Slider(
                value: _value,
                onChanged: (value) {
                  setState(() {
                    _value = value;
                  });
                },
              ),
            ),
            program == null
                ? const CircularProgressIndicator()
                : SizedBox(
                    width: 512,
                    height: 512,
                    child: FlutterShaderTest(
                      shader: program!.shader(
                        resolution: const Size.square(512),
                        time: _value,
                      ),
                    ),
                  ),
          ],
        ),
      ),
    );
  }
}

class FlutterShaderTest extends StatelessWidget {
  const FlutterShaderTest({Key? key, required this.shader}) : super(key: key);

  final Shader shader;

  @override
  Widget build(BuildContext context) {
    return CustomPaint(painter: ShaderPainter(shader));
  }
}

class ShaderPainter extends CustomPainter {
  ShaderPainter(this.shader) : _paint = Paint()..shader = shader;

  final Shader shader;

  final Paint _paint;

  @override
  void paint(Canvas canvas, Size size) {
    canvas.drawRect(const Rect.fromLTWH(0, 0, 512, 512), _paint);
  }

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) => true;
}

Expected Behavior
Output of the painter should look similar to this example:
https://glslsandbox.com/e#81872.0
Stacktrace
Launching lib\main.dart on Windows in debug mode...
Connecting to VM Service at ws://<IP_ADDRESS>:58165/tK7yafOyS04=/ws
[ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: 177: Not a supported op.
#0      _Transpiler.parseInstruction (dart:_spirv/src/transpiler.dart:564:9)
#1      _Transpiler.transpile (dart:_spirv/src/transpiler.dart:169:7)
#2      transpile (dart:_spirv:73:5)
#3      new FragmentProgram._ (dart:ui/painting.dart:3881:44)
#4      FragmentProgram.compile.<anonymous closure> (dart:ui/painting.dart:3872:58)
#5      new Future.<anonymous closure> (dart:async/future.dart:252:37)
#6      _rootRun (dart:async/zone.dart:1418:47)
#7      _CustomZone.run (dart:async/zone.dart:1328:19)
#8      _CustomZone.runGuarded (dart:async/zone.dart:1236:7)
#9      _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1276:23)
#10     _rootRun (dart:async/zone.dart:1426:13)
#11     _CustomZone.run (dart:async/zone.dart:1328:19)
#12     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1260:23)
#13     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
#14     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
#15     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
#16     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

Additional comments
I'm not new to shaders, but it's been at least 14 years since the last time I wrote one, back with glsl and GLUT when I was doing my Computer Graphics Specialization. I feel rusty and lost, like it is totally new for me and since Flutter added shader support I've been looking forward to get into this again, at least as a hobby. I found your work (it's amazing!) and I've been following you since that first medium article you wrote.
Today, after a few months of being swamped in work I can finally give it a try and when trying to transcribe one simple example from GLSL Sandbox I get runtime errors that I can't figure out.
I believe that the main issue is that I'm using glsl instructions that don't fully translate to spir-v (for which I have ZERO experience with).
I've also tried to find information about which instructions from glsl are not available or have a different counterpart when translated to spir-v. If you can point me into the right direction, I'd be more than grateful! I don't really know which instruction is a not supported operation, I whish this tool was a bit more explicit on which line of the shader code is having an issue (I know that's almost impossible, but one can dream).
Anyways, thanks again for your amazing work!

First of all, thank you for your kind words! And glad you are picking up shader stuff again (and this time in Flutter)!
To get to your issue, what you are saying is correct. Your code is using the OpIAdd instruction, which is not yet supported by the Flutter SPIRV library.
Sadly there isn't any good documentation on what is implemented and what is not except for this constant.dart file.
While knowing which exact line is the culprit is indeed a difficult dream to achieve, it might be interesting for Umbra to add a feature where it converts the unknown OP codes to readable string so developers know what "feature" in their GLSL code is at least throwing the OP code exception.

@wolfenrain that helped a lot!
I found that there were many more things I had in that code that didn't work, for instance, the LessThan < is not supported either.
The specific problem with op 128 was the += so, that's an easy fix, but there were more issues, like operating int + float and the for loop (because of the <)
Anyways, I managed to get the shader loading, but, it fails with a totally different exception this time (Unhandled Exception: Invalid SkSL), it points to the generated glsl file, still, I have no idea where it is.
Here is the updates shader code, as you can see, I removed/changed all the offending ops that are not supported and expanded the loop (just a few times)
uniform float time;

const float Pi=3.14159;
//const int complexity=40;// More points of color.
const float fluid_speed=3000.;//
}

And this is the StackTrace:
Restarted application in 292ms.
[ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: Invalid SkSL:
const float i25 = 0.0003000000142492354;
const int i30 = 0;
const float i33 = 0.6000000238418579;
const int i37 = 1;
const float i42 = 3000.0;
const float i47 = 2000.0;
const float i52 = 0.5;
const float i68 = 1909.0;
const float i79 = 2.0;
const float i98 = 0.0;
const float i108 = 1.0;
const float i228 = 0.22499999403953552;
const float i229 = 3.0;
const float i235 = 0.25;
const float i264 = 3.141590118408203;
uniform float i99;
uniform float2 i86;
float2 i14(float2 i11, float i12, float i13) {
  float i26 = i12 * i25;
  float2 i22 = (i11 + (float2(i26, i26)));
  (i22[i30]) = (((i22[i30]) + ((i33 / i13) * (sin((((i13 * (i11[i37])) + ((i12 / i42) * i13)) + i47))))) + i52);
  (i22[i37]) = (((i22[i37]) + ((i33 / i13) * (sin((((i13 * (i11[i30])) + ((i12 / i42) * i13)) + i68))))) - i52);
  return i22;
}
float4 i20(float2 i18, float2 i19) {
  float i94 = max((i86[i30]), (i86[i37]));
  float2 i78 = ((((float2(i81[0], i81[1])) * i79) - i86) / (float2(i94, i94)));
  float i97 = i98;
  float2 i100 = i78;
  float i102 = i99;
  float i104 = i97;
  i78 = (i14(i100, i102, i104));
  i97 += i108;
  float2 i110 = i78;
  float i112 = i99;
  float i114 = i97;
  i78 = (i14(i110, i112, i114));
  i97 += i108;
  float2 i119 = i78;
  float i121 = i99;
  float i123 = i97;
  i78 = (i14(i119, i121, i123));
  i97 += i108;
  float2 i128 = i78;
  float i130 = i99;
  float i132 = i97;
  i78 = (i14(i128, i130, i132));
  i97 += i108;
  float2 i137 = i78;
  float i139 = i99;
  float i141 = i97;
  i78 = (i14(i137, i139, i141));
  i97 += i108;
  float2 i146 = i78;
  float i148 = i99;
  float i150 = i97;
  i78 = (i14(i146, i148, i150));
  i97 += i108;
  float2 i155 = i78;
  float i157 = i99;
  float i159 = i97;
  i78 = (i14(i155, i157, i159));
  i97 += i108;
  float2 i164 = i78;
  float i166 = i99;
  float i168 = i97;
  i78 = (i14(i164, i166, i168));
  i97 += i108;
  float2 i173 = i78;
  float i175 = i99;
  float i177 = i97;
  i78 = (i14(i173, i175, i177));
  i97 += i108;
  float2 i182 = i78;
  float i184 = i99;
  float i186 = i97;
  i78 = (i14(i182, i184, i186));
  i97 += i108;
  float2 i191 = i78;
  float i193 = i99;
  float i195 = i97;
  i78 = (i14(i191, i193, i195));
  i97 += i108;
  float2 i200 = i78;
  float i202 = i99;
  float i204 = i97;
  i78 = (i14(i200, i202, i204));
  i97 += i108;
  float2 i209 = i78;
  float i211 = i99;
  float i213 = i97;
  i78 = (i14(i209, i211, i213));
  i97 += i108;
  float2 i218 = i78;
  float i220 = i99;
  float i222 = i97;
  i78 = (i14(i218, i220, i222));
  float3 i227 = (float3(i98, ((i228 * (sin((i229 * (i78[i30]))))) + i235), ((i228 * (sin((i229 * (i78[i30]))))) + i228)));
  return (float4((i227[0]), (i227[1]), (i227[2]), i108));
}
half4 main(float2 iFragCoord) {
  float4 i81 = float4(iFragCoord, 0, 0);
  float4 oColor;
  float2 i251 = ((float2(i81[0], i81[1])) / i86);
  float2 i258 = i251;
  float2 i260 = (float2(i81[0], i81[1]));
  oColor = (i20(i258, i260));
  return oColor;
}
SkSL Error:
error: 30: unknown identifier 'i81'
error: 30: unknown identifier 'i81'
error: 32: unknown identifier 'i78'
error: 35: unknown identifier 'i78'
error: 35: unknown identifier 'i100'
error: 37: unknown identifier 'i78'
error: 40: unknown identifier 'i78'
error: 40: unknown identifier 'i110'
error: 42: unknown identifier 'i78'
error: 45: unknown identifier 'i78'
error: 45: unknown identifier 'i119'
error: 47: unknown identifier 'i78'
error: 50: unknown identifier 'i78'
error: 50: unknown identifier 'i128'
error: 52: unknown identifier 'i78'
error: 55: unknown identifier 'i78'
error: 55: unknown identifier 'i137'
error: 57: unknown identifier 'i78'
error: 60: unknown identifier 'i78'
error: 60: unknown identifier 'i146'
error: 62: unknown identifier 'i78'
error: 65: unknown identifier 'i78'
error: 65: unknown identifier 'i155'
error: 67: unknown identifier 'i78'
error: 70: unknown identifier 'i78'
error: 70: unknown identifier 'i164'
error: 72: unknown identifier 'i78'
error: 75: unknown identifier 'i78'
error: 75: unknown identifier 'i173'
error: 77: unknown identifier 'i78'
error: 80: unknown identifier 'i78'
error: 80: unknown identifier 'i182'
error: 82: unknown identifier 'i78'
error: 85: unknown identifier 'i78'
error: 85: unknown identifier 'i191'
error: 87: unknown identifier 'i78'
error: 90: unknown identifier 'i78'
error: 90: unknown identifier 'i200'
error: 92: unknown identifier 'i78'
error: 95: unknown identifier 'i78'
error: 95: unknown identifier 'i209'
error: 97: unknown identifier 'i78'
error: 100: unknown identifier 'i78'
error: 100: unknown identifier 'i218'
error: 101: unknown identifier 'i78'
error: 101: unknown identifier 'i78'
error: 102: unknown identifier 'i227'
error: 102: unknown identifier 'i227'
error: 102: unknown identifier 'i227'
49 errors
#0      FragmentProgram._init (dart:ui/painting.dart:3894:73)
#1      new FragmentProgram._ (dart:ui/painting.dart:3885:5)
#2      FragmentProgram.compile.<anonymous closure> (dart:ui/painting.dart:3872:58)
#3      new Future.<anonymous closure> (dart:async/future.dart:252:37)
#4      _rootRun (dart:async/zone.dart:1418:47)
#5      _CustomZone.run (dart:async/zone.dart:1328:19)
#6      _CustomZone.runGuarded (dart:async/zone.dart:1236:7)
#7      _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1276:23)
#8      _rootRun (dart:async/zone.dart:1426:13)
#9      _CustomZone.run (dart:async/zone.dart:1328:19)
#10     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1260:23)
#11     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
#12     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
#13     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
#14     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

Disregard my previous comment!! after some more tinkering with the generated code I found out I'm stupid! I was trying to use gl_FragCoord instead of the nicely already provided vec2 fragCoord by the fragment method!
All the operations I was using were ok, it's just that using ints is not fully supported yet (the operations like < are actually supported for floats)
So, I went back to the original code, replaced i and complexity with floats and voila! it works now!
This is how the shader looks now:
uniform float time;

const float Pi=3.141592653589793;
const float complexity=40.;// More points of color.
const float fluid_speed=3000.;// Drives speed, higher number will make it slower.
const float color_intensity=.225;

vec4 fragment(vec2 uv,vec2 fragCoord){
    vec2 p=(2.*fragCoord.xy-resolution)/max(resolution.x,resolution.y);
    for(float i=1.;i<complexity;i=i+1.){

        vec2 newp=p+time*.0003;
        newp.x+=.6/float(i)*sin(i*p.y+time/fluid_speed*(i+2000.))+.5;
        newp.y+=.6/float(i)*sin(i*p.x+time/fluid_speed*(i+1909.))-.5;
        p=newp;
    }
    vec3 col=vec3(0.,color_intensity*sin(3.*p.x)+.25,color_intensity*sin(3.*p.x)+color_intensity);
    return vec4(col,1.);
}

Yea the integer stuff is a bit of a problem. But I think mapping OP code exceptions to readable/understandable errors would at least make life a bit easier!
I'll keep this issue open for now until I either add that or write up a good proposal for it. If you have any ideas, be my guest as well for writing a proposal.

Absolutely! the list you gave me with the supported/unsupported operations helped a lot! otherwise, I would've been in the blank!
I have successfully managed to transcribe a few shaders from the sandbox site and my own old shaders from when I was in university! I'm now going to try my raymarching volume rendering shader that took me ages to write back in 2009 hahahaha

Once #34 is merged I'll provide a PR that will allow Umbra to provide more meaningful messages. Got the bare functionality already done


Customers should grow bigger as you feed them

Customers should scale based on the number of points in your combo. Logically they should scale based on the cube root of the combo, since that's how volume works. But if that's not exaggerated enough, we can throw realism to the wind and just make them scale however we want.
A +100 point combo is pretty typical, so they should probably just look fed.
A +500 point combo is a good accomplishment, so they should look big.
A +1,500 point combo is a tremendous accomplishment, so they should look ridiculously gargantuan.

Tasks:
-2x size
-3x size
-5x size
-10x size
-more?
-shadows should scale with customer size
-table should push out as customer grows
-camera should track customer
-integrate 'growing logic' into game, so it scales with your combo

After the combo ends, customer should blink out of existence and a new customer should replace them

Customer's arms/legs should bob similar to how their head does.

This was partially fixed by #44 , although there are a few outstanding issues with the customer's appearance I'd like to resolve. Most notably, I'd like to make it so the table gets swatted away and the torso isn't 100% in shadow, as those are most noticable.

I'll go ahead and marked this as fixed for now, as other 0.04 issues are higher priority. I've created #50, #51 and #52 for future work. It might also be good to defer some of these kinds of stories since they'll likely be made easier after the enhancements from #30 and #32


Fix/support non mandatory key file

What this PR does:
While storageSecretRef is optional, there is no way to configure medusa without passing a secret. But when we want to user role with IRSA , we don't want to passe a ~/.aws/credentials file to medusa.
Checklist

[X] Changes manually tested
[ ] Automated Tests added/updated
[ ] Documentation added/updated
[ ] CHANGELOG.md updated (not required for documentation PRs)
[ ] CLA Signed:  DataStax CLA

Hello @adejanovski
Could you give me a hint about this error https://github.com/k8ssandra/k8ssandra-operator/actions/runs/7120365184/job/19387445258?pr=1129#step:6:402 ?
I've no clue why is this failing.

I've restarted it, since we have some flakes on the K8ssandraTask tests. Let's see how it goes.

it passed ;)

Hello @adejanovski
Could you please review my PR and let me know if there's anything to add ? Are there any additional tests or documentation updates required to support this change?
Thank you for your guidance.

This is blocking us at the moment as well - what's required to get this into the operator? Happy to help if I can.

This is blocking us at the moment as well - what's required to get this into the operator? Happy to help if I can.

Hi @yesterdays-vigilante,
if you could test this PR and verify that the feature works as expected, it would be much appreciated.
I think it's going to need a rebase on top of main first to get the upgrade to the latest patch release of Medusa which supports role based auth.
@JBOClara, do you think you could rebase and force push?

Hi @adejanovski! I've deployed this PR into our staging environment, and it seems to work alright - Medusa is able to put the backups in S3 using role-based authentication, and Cassandra still seems to be running fine.
If needed I can also rebase this branch on my own fork and make a new PR.

thanks a lot for the quick turnaround on testing this @yesterdays-vigilante 🙏
Let's give @JBOClara a tiny bit of time to get back to this. That PR has been open for a while and I'm the one who dropped the ball on following up with it.

Hi @JBOClara, it looks like you still have a conflict on go.sum.

@JBOClara, for the unit tests to pass you'll need to regenerate the manifests I think (using make manifests) and commit the new CRDs before pushing again.

Thank you so much for working through this issue! I had worked around it in the past by providing an empty file via the referenced secret, but that always felt like a hack. Thanks again!

Hello @JBOClara , thank you so much for this change!
We were doing the same hack than @bradfordcp .
Is it also planned to support service account based auth for Google storage and workload identity based auth for Azure storage?
We have to implement similar hacks to those we used for S3 in order to support Google Cloud and Azure backups.
FYI @adejanovski

Hi @c3-clement,
I'm not able to test it on GCP or Azure.
But, did you already tried ?
Unfortunately, I'm not planning to dedicate time to this topic.

Thank you so much for working through this issue! I had worked around it in the past by providing an empty file via the referenced secret, but that always felt like a hack. Thanks again!

I tried the fake the secret, and using sa I created with S3 policay and role setup, I still not able to get around on this.  I am getting erros inside medusa-stanadalone
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the AssumeRoleWithWebIdentity operation: Not authorized to perform sts:AssumeRoleWithWebIdentity
Any suggestion? @adejanovski

There is no need for a fake secret. Just use role-based as credentialsType.
Then, check this is correctly configured :

Medusa runs with a specific k8s service account.
This k8s sa is annotated with the IAM Role ARN annotation for IRSA.
this IAM role has the permissions to write to the backup bucket
this role has a trusted policy, that allows to assume role with web identity, with a condition based on the namespace and k8s SA name (see AWS Doc).
your k8s cluster has a correctly configured IAM oidc provider https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-enable-IAM.html
this oidc provider is used in the trusted policy.

That's a great explanation that we'd need to put in the docs @JBOClara !

Hi @c3-clement,
I'm not able to test it on GCP or Azure.
But, have you already tried? Could you share the errors encountered?
Unfortunately, I don't plan to dedicate time to this topic.

Hello @JBOClara,
Yes I already tried. I had to patch k8ssandra-operator and medusa - I don't have anymore error logs, but here is what went wrong:
Azure:
medusa was crashing at this line https://github.com/thelastpickle/cassandra-medusa/blob/master/medusa/storage/azure_storage.py#L48 because it's expects a key to be provided, which is not needed with Workload identity. Only the storage account name is needed.
Also, Azure Workload Identity auth requires to set the label azure.workload.identity/use: "true" to pods, and k8ssandra-operator does not propagate labels set in data centers to the medusa standalone deployment.
Google:
In the backup secret mounted to medusa pods, we have to set a field credentials with an arbitrary value, otherwise medusa will crash.
Also, in medusa codebase, the GCS list implementation is accessing unsafely the field 'md5Hash' in the object returned by Google API
https://github.com/thelastpickle/cassandra-medusa/blob/master/medusa/storage/google_storage.py#L81
However, if the GCS bucket is KMS encrypted, the Google API does not expose the 'md5Hash' field (I have talked with Google cloud support about this)
So if the bucket is KMS encrypted, Medusa will crash. We fixed it by using the etag field instead.
I will open proper GitHub issues for all of this when I got a sec.
I will also like to offer fixes for those issues I got time @JBOClara  @adejanovski

Thank you so much for working through this issue! I had worked around it in the past by providing an empty file via the referenced secret, but that always felt like a hack. Thanks again!

I tried the fake the secret, and using sa I created with S3 policay and role setup, I still not able to get around on this. I am getting erros inside medusa-stanadalone botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the AssumeRoleWithWebIdentity operation: Not authorized to perform sts:AssumeRoleWithWebIdentity Any suggestion? @adejanovski

I believe that the serviceAccount configured in datacenters is not propagated to the Medusa standalone deployment.
Could it be the cause of your issue @JamesXu2017 ?
FYI @JBOClara

Here is a PR https://github.com/k8ssandra/k8ssandra-operator/pull/1293 @adejanovski


Civ 3178 b

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-3178
Change description
Set preferred hearing location
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[X] No

closed until agreed on a double non-prod approach


Resolve image and font urls relative to css location. And resolve node packages.

There's two commits here. The first fixes image and font url resolution. I found out the problem I encountered was just a misunderstanding of the css-loader and file-loader docs. This patch makes it some images in your css are re-written to urls relative to your css.
It assumes your assets like images and fonts are located in assets/img and assets/fonts. I'd be open to making it more configureable but this PR can at least get the basic idea across.
The second patch, that we all know and love, is the module resolution of npm-link'd packages locally. I figured I'd include it so we can try that out on snoo guts.
👓 @nramadas

💇  re-added the production loader settings, I can squash that back into the first commit

lgtm :fish:


Add Vector3

Also includes Vector2 subtraction

Coverage decreased (-0.06%) to 97.84% when pulling cc821f023b40adf75582fa0480499713aa600e0c on CodeKingdomsTeam:vector3 into b42d32f690e330a170b10561710fc1f081285e3d on LPGhatguy:master.

Using this internally, works in my testing.

Looks great, thanks a bunch!