Closes #1495 - improve the behavior when agent commands fail (or are not available) due to missing configuration - frontend

Closes #1495
Implementing the DynamicallyServiceObserver to register all the available services (e.g. Prometheus, Jaeger, LogPreloader) and their current state enabled/disabled.
In the UI when clicking the agents name (on the status page) a dialog window opens with a data table, listing all the services and their current state enabled/disabled.
Currently the states are being shown as disabled buttons with the labes (enabled/disabled) to show the user the current state. In the future there is the possibilty to implement a feature to activate those buttons and let the user active/deactivate a service by a simple button click.

This change is

Everything seems to be working as expected.
@heiko-holz in our last conversation we talked about the badge that is being shown in the status view and the badge overlapping the buttons.
The badge doesn't overlap with the buttons anymore, but slightly overlaps the agents service name, if the name is very long (See screenshot)

Since we talked about improving the styling in that part, I was wondering if we should open a new Issue to resolve this or if we should at least solve the overlapping with the badge and the name at the moment.

Hey @danipaniii, good catch!
I just fixed this by reducing the max-width for the service name.
Anyhow, we can open an issue after this PR to improve the code and style of the Agent Status Table.


No way to delete or rename named objects from the db

Older version of MapDB (1.x) had a
db.remove
and
db.rename
The latest 3.x version does not have any way to delete a table or rename the named objects.
How are we supposed to do that in the 3.x version?

In order to work around, you need to create a "name map". The name map will alias the names of named objects.
So every time you want to get a named object from the db, you need to first get the "real" name, then get that instead.
Now deleting is simply a task of clearing out the real entry and delete the name from the name map.
And renaming is just renaming the name in the alias map.

wontfix


Add Twitter authentication

When a young voter fills out the survey, they can optionally authenticate via Twitter to keep a record of their results, and speed up the survey process.
This task is to program Twitter authentication when they submit their Twitter name ... it will result in a 'person' entry in the database against which their survey data will be stored.

I am thinking whether the votesavvy web really needs the user authentication function or not.
There are two kinds of twitter authentication: application-level and user-level. Both of the kinds allow an application to retrieve from twitter the information of a user, for example, the user object and the tweets of the users, The user-level authentication further allows an application to publish tweet through the user's username.
Since votesavvy is interested in the tweets or the activities of their participants, application-level authentication should be fine.
However, if votesavvy wants to get the permission from its participants for accessing their tweets, we may call this function as twitter access authorization.

I am implementing the function on retrieving user information with application-level authentication now. If you have some comments, please let me know.

we thought about using it to authenticate to see their information - they can come back and log in to see their answers, suggestions

so, the user-level authentication is used for login with twitter authentication. OK, this is a good point. I will see what I can do now.

The app votesavvyrhok has been transferred successfully to the twitter account @votesavvyrhok now.
I have updated the votesavvy code with the function of signing in with twitter. There are several problems now.
Currently, after a user signs in, the first page is returned with the sign in button enabled. Two problems is here. First, the sign in button should be disabled. Second, do we allow a user to sign in at any stage of the survey? In this case, we may need some mechanism to remember where the user is at before the signing in.
The third problem is related to the users' sessions, do we need to manage the session for a user who has signed in? Or, in a simple way, we record the status of a signed in user in db only. The information of a signed in user includes the credentials of his/her twitter account, and his/her status in the survey.
Any suggestion?

Nice work, Ying ...
My thoughts ...
1] If the young voter is signed in via Twitter, we'll want to replace the sign in button with the avatar or username of their twitter account to indicate that they're signed in. You should be able to tell if they're signed in from session information - there's probably a well documented way of doing this, if you search - lots of other people do it.
2] We want them to be able to sign in at any point, or not at all - so we need a way of uniquely identifying the young voter when they haven't signed in - for the duration of their session. Maybe a cookie, or local storage attribute that identifies an id for them. If you make a temporary id for them and keep it in local storage, then every time they come back to the page, we can retrieve their data, until they flush that id.
3] I would say that ideally we would store their data in the database every time they change an answer - although this will might spike our usage of the Cloudant API and cost more ... we'd have to see. It's the most efficient way to synchronize the data, and an obsessive way for us to gather it. An alternative is to save only when they press the save button, or navigate away from/close the the page.
I'm finishing off a form today - just the view component of the form - I'll complete the part that would trigger a save on Thursday afternoon - I have a couple of high priority work tasks to focus on between now and then.
I think each of your three observations is worthy of an issue in itself - maybe you could make those issues? Gerald might be able to comment too.

Note - I also really like the idea that they can come back to the form anytime when they have an account, so if it is only half completed, they can come back and finish it off later.

Thanks for your comments, Anton.
I will take a look of session management tomorrow.
Yes, I agree with you that the session management should be separated from this issue. I will close this issue by committing the code, and open several issues.


Shutdown and wait for messaging.

I'm not 100% sure why that code doesn't run. Daniel should be around tomorrow so I'll let him answer before merging.


Amend PR Procedure

This follows a conversation with @hweng on clarifying the need to both:
a) push to the remote branch after rebasing and running tests locally
b) using the --force-with-lease option in the case where a remote branch already exists.
The issue with (b) may need a bit more investigation, since while this has normally worked fine in my experience, we ran into an issue just today with a feature branch of Huawei's that didn't work using the lease option. We'll test more and verify.
Also, when merging this PR, please use the "Squash and Merge" option and squash the minor markdown syntax tweaks... commit so that's not in the history.
@ucsdlib/developers - please review

👍

@VivianChu - now that you're back and this is yet to be merged, please take a look as well. Thanks!

👍


Update pending state after submitting review

ext version: 1.7.1
Repro:

Add comment(s) to review
Submit review

Closing as I'm not able to reproduce this with the latest version of the extension


etags should be in double quotes

minor nit:
https://github.com/simple-repository/simple-repository-server/blob/fe353669c64ca77ef9621d377bb728a13e6c33ae/simple_repository_server/routers/simple.py#L135
See the spec:
https://www.rfc-editor.org/rfc/rfc9110#field.etag
I've literally once, ever, seen this be an issue, with virgin media's web-to-cable-tv caches back in 2001.  But that client just dropped responses with misformatted etags on the floor.

Turns out this was a problem with starlette too... recently fixed (https://github.com/encode/starlette/issues/2298#issuecomment-1793391343).
This will be fixed in >v0.5.0 (and >0.5.0 of simple-repository core also)

Fixed in v0.6.0. Thanks for the nit - it is always good to improve this stuff.

Note that it is also necessary to update simple-repository at the same time (to v0.7.0) to have local files have correct etags.


New song

this isnt a issue or a feature but could add more songs? idc what songs they are, just be cool if there were more songs

i can't really add more content since the project already hit the 200mb size limit


Mixed adapter models

This PR is a follow up to, and supersedes, #1069. That PR is no longer necessary, as the base layer refactor PR has been merged.
Description
This PR allows to add adapters of different types, e.g. LoRA and LoHa:
base_model = ...
config0 = LoraConfig(...)
peft_model = get_peft_model(base_model, config0, mixed=True) config1 = LoHaConfig(...)
peft_model.add_adapter(config1, "other")
peft_model.set_adapter(["default", "other"])
peft_model(x)

At this point, both adapters are active at the same time.
Existing code should not be affected by this change, since users need to opt into this behavior by setting mixed=True, and a completely different class is being used (PeftMixedModel).
Also interesting is that this method can be used for a single adapter type but with very different configs. Right now, we have limited support for that (e.g. for LoRA, different r values by using rank_pattern), but with this, we don't need to special case the differing arguments anymore.
Not implemented

I'm not yet sure if the same logic can be applied to IA³ or if it may fail because IA³ can apply its scaling to the input, not the output.
It is currently not possible to represent a mixed adapter model as a single config. I think we can come up with a solution but I don't think it is necessary for a first version of this.
Saving and loading is not yet implemented for mixed models for the reason above.

Those could potentially be added in a future PR.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


RHEL only?

Hi,
I haven't read all of the Ansible tasks, but I'm currently using Ubuntu distros for the nodes, and fixing here and there for the difference in packages (such as replacing crond with cron, audit with auditd, and so on). I'm beginning to wonder, or maybe it is mentioned somewhere in the README, is it tested / meant for CentOS only? I gave up at the error: "Update Grub and Initramfs /RedHat". Thanks.

Hi @aldycool
I think it is written in the blog post that is based on this project that it has been tested on CentOS but it should work on Debian family distros too
Anyway, using host_vars you can override the package names, just override
aide_package: 'aide'
auditd_package: 'audit'
modprobe_package: 'kmod'

with whatever is the package name variation

For the update grub part, the code supports both
- name: Update Grub and Initramfs /RedHat
  command: '{{ item }}'
  with_items:
    - 'grub2-mkconfig -o /boot/grub2/grub.cfg'
    - 'dracut --force --regenerate-all -v'
  when:
    - grub_setup_1.changed or grub_setup_2.changed or package_update.changed
    - ansible_os_family == "RedHat"

- name: Update Grub and Initramfs /Debian
  command: '{{ item }}'
  with_items:
    - 'update-grub'
  when:
    - grub_setup_1.changed or grub_setup_2.changed or package_update.changed
    - ansible_os_family == "Debian"

So either it's not picking up the ansible_os_family correctly or I'm not really sure what else is happening.
Let me know if overriding the host_vars fixes your problem :smile:

Hi @89luca89 ,
It turns out that the ansible_os_family gets picked up with the right value ("Debian"), ONLY IF I restore all of the VMs to fresh start. If I'm continuing from some errors, then the ansible_os_family is not correct. This means, some of the tasks I think is not re-entrant. I'll see if I found which tasks get skipped that made the ansible_os_family incorrect. Thanks for your help.

Cool thank you!


Retrieve available issue labels

It would be super slick if hub could retrieve the current list of labels available for use when creating a repository -- vermiculus/magithub#6 (and other hub-wrapping scripts) could really benefit from this.

Good idea! Perhaps an hub issues labels subcommand would be in order.

@mislav I'd like to get my hands dirty with some Go – I've never worked with it before. Are there any license restrictions for contributions to hub?

@vermiculus Yes, all contributors have to accept GitHub's CLA. When you submit your first pull request, the automated status checks will fail with a link to accept the CLA. It's done by reviewing the agreement and pressing a button. It's easy. When you do that, the status check will start passing.

In case someone has time before I do (and so I don't forget), it would help greatly if labels were paired with some sort of ID and this ID was usable with issue --format as %L. Consider the following label setup:

A
B
A, B

Any given issue that lists %L=A, B would be ambiguous between 1+2 or just 3.

I propose that we make it a separate command (as opposed to a subcommand of the issue command).  My arguments:

Labels are naturally the children of the repository, not the issue. See: https://developer.github.com/v3/issues/labels/
You can also use these labels on pull requests.
As a user, I think of operations like creating a label or modifying a label as separate from operations I perform on issues.

I'm starting work on a branch that implements listing labels for a repository right now. But, I probably won't finish it in the 45 minutes before my next meeting.

This was done in #1667.


Added Nox to github actions

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@b636bee). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #95   +/-   ##
=========================================
  Coverage          ?   43.19%
=========================================
  Files             ?       29
  Lines             ?     1447
  Branches          ?        0
=========================================
  Hits              ?      625
  Misses            ?      822
  Partials          ?        0

Continue to review full report at Codecov.

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


Upgrade to react native 0.60

Hi, thanks for this great boilerplate! Do you plan to upgrade it with the last release of RN ?

Thanks for the kind words @pa-bouly ! We'd love a PR from the community, as we're focused on Bowser currently.

Thanks for the great work :)
@jamonholmgren Any guidance on how to do that ?

@karimmorta Thank you!
I would start with the files located here: https://github.com/infinitered/ignite-andross/tree/master/boilerplate
Have those open, and ignite a new project like so:
ignite new MyAndross -b ../ignite-andross

Go through the steps of upgrading (possibly just react-native unlink && react-native upgrade ?)
Then, once it's upgraded, look at the diff (git diff) and apply those same changes to the files in the boilerplate directory. And then generate a new Andross project the same way as before and see if it compiles with 0.60 to check your changes.
It's a little tedious but it isn't hard!

@karimmorta Thank you!
I would start with the files located here: https://github.com/infinitered/ignite-andross/tree/master/boilerplate
Have those open, and ignite a new project like so:
ignite new MyAndross -b ../ignite-andross

Go through the steps of upgrading (possibly just react-native unlink && react-native upgrade ?)
Then, once it's upgraded, look at the diff (git diff) and apply those same changes to the files in the boilerplate directory. And then generate a new Andross project the same way as before and see if it compiles with 0.60 to check your changes.
It's a little tedious but it isn't hard!

The app crash after upgrade to 0.60+

@nyl9488  i upgraded to latest version

@nyl9488 i upgraded to latest version

how did u do it?

I took a stab at this and was able to get:
ignite new MyProject -b ignite-andross
to work with a couple of caveats:

No react-native-i18n (anyway it has been deprecated)
No react-native-vector-icons
Need to add some code to the end of the Pod file to resolve an issue with react-native-config where the GeneratedDotEnv.h file cannot be found. this issue
Need to run pod install after the project generation to resolve [this issue] (https://github.com/software-mansion/react-native-gesture-handler/issues/676) with gesture handler

For #1 and 2, I looked at the bowser boilerplate.js file and noticed that there is no option to add those 2 libraries anyway, so I think is safe to omit. If required, the solution should be the same as #4
#4 I think I can use the ignite.patchInFile utility to include the necessary code in the Podfile, but the stumbling block is the running pod install part, which was supposed to be done by the final running of yarn after installing the boilerplate stuff, which doesn't really seem to work.
I'd be happy to contribute my stuff if I can get it to work seamlessly if anyone has any ideas


Missing value-field in md-checkbox

Dove deep into trying to find a reason to exclude the value field. Is there any plans on a native option to set the value of a md-checkbox or are we bound to Booleans? From experience of all the 100s of checkbox fields I have encountered they are rarely used for straight true/false value extraction.
It seems most solutions around this are that you will have to translate the input from the change attribute.

Indeed, value should be forwarded to the underlying native checkbox (which is used as the submission value for the form).


While running Gprofiler got error

gprofiler running in kubernets locally then I got this error. I capture kubernets logs while running gprofiler. would you help me how to fix.

Hi @sridharchary . First of all, this is only an auxiliary feature (as the error message suggests) so it doesn't harm your profiling in any way.
This feature requires your Pod to run in host net namespace, or in host PID namespace (and then gProfiler is able to change net namespace itself). I see you're passing --disable-pidns-check so I assume you're not running in host PID namespace. In that case, you can have gProfiler run in host net namespace, and if not possible, you can just ignore this error (again, it's not harmful).
If you'd like, I can add a flag to disable the use of proc_events, which is the mechanism we try to use that doesn't work in non-host net namespace.

Out of curiosity, why are you using --disable-pidns-check?


Protect main branch from direct push

We need to add protection to the main branch from direct pushes.
I don't think we need to require reviews yet as this would slow down maintenance and with the small number of maintainers we can use the honor system. Conversely, direct pushes to main are an easy accident to make (as I just did a few minutes ago).
/cc @vsevel @gsmet

Done.


WIP: feat(docker): add updated Docker setup for 0L

Motivation
I'm building a set of tools to allow easy validator, miners, and full-node onboarding and operating.
Goals

Easily create an account and get onboarded
Easily run tower, full-node, and validator on a VPS that has Docker installed
Ability to use custom upstream IPs, data directory, etc
Logging visibility

Test Plan
Not sure yet how to run tests against the built image. Also how and where to publish it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Did you try the Dockerfile in docker/validator/? Not sure how up-to-date it is

Did you try the Dockerfile in docker/validator/? Not sure how up-to-date it is

@Leibniz137 yes I checked all Docekrfiles and tried to make use of them. They haven't been updated for a long time except for the rebranding from libra to diem.

I'd not seen task and Taskfiles before. I really like the pattern you've laid out and the ability to spawn interactive workflows (like onboard) that write to the same shared volumes that the node, miner, etc use. It's worth ensuring that the docker images are well decoupled from this docker-compose based workflow, so that other orchestration methods (like Helm charts for Kubernetes targets) can easily reuse them. Nice work!

I'd not seen task and Taskfiles before. I really like the pattern you've laid out and the ability to spawn interactive workflows (like onboard) that write to the same shared volumes that the node, miner, etc use. It's worth ensuring that the docker images are well decoupled from this docker-compose based workflow, so that other orchestration methods (like Helm charts for Kubernetes targets) can easily reuse them. Nice work!

Thanks. Taskfile is the hipster version of Makefile :D Worth checking out their docs. Pretty simple syntax and has nice features.
I just committed a docker-compose file that shows that separation you mentioned. The result is nice to look at

I'm closing this PR in favour of the work being done here
https://github.com/nourspace/0l-validator-ops/pull/1
I don't want to block anyone from working on the existing docker files while I'm mostly interested in the ops.


@ConditionalOnProperty target property with no metadata

Several auto-configurations use a condition on a property that has no metadata. As a result, trying to use it to customize the auto-configuration lead to a warning in an IDE.
The report detected the following:
org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration [feign.httpclient.enabled]
org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration [feign.okhttp.enabled]
org.springframework.cloud.openfeign.FeignClientsConfiguration.HystrixFeignConfiguration#feignHystrixBuilder [feign.hystrix.enabled]
org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration [feign.compression.response.enabled]
org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration [feign.compression.request.enabled]
org.springframework.cloud.openfeign.ribbon.HttpClientFeignLoadBalancedConfiguration [feign.httpclient.enabled]
org.springframework.cloud.openfeign.ribbon.HttpClientFeignLoadBalancedConfiguration.HttpClientFeignConfiguration#customHttpClient [feign.compression.response.enabled]  org.springframework.cloud.openfeign.ribbon.HttpClientFeignLoadBalancedConfiguration.HttpClientFeignConfiguration#httpClient [feign.compression.response.enabled]
org.springframework.cloud.openfeign.ribbon.OkHttpFeignLoadBalancedConfiguration [feign.okhttp.enabled]

Closed via 77cdd40


[Monitor Application Insights] add Continuous Export configuration commands

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it mcr.microsoft.com/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/kairu-ms/azure-cli-extensions.git@fix-1640-configure-continuous-export-with-ai#subdirectory=src/$EXT&egg=$EXT"

Monitor


[continuous-integration] kill ot-rcp and ot-cli in pty check

This adds kill commands to POSIX pty check, to make sure all processes are stopped before the check completes. Fixes https://github.com/openthread/openthread/issues/5648.

I think the real issue is why do we have dangling ot-rcp processes when the test is already finished.
Should we fix the root cause instead?

I think the real issue is why do we have ot-rcp processes running when the test is already finished.
Should we fix the root cause instead?

The ot-rcp process will stop when socat is killed, but there may be a short delay.


TIMEOUT: bm_fullstack_streaming_pump --benchmark_filter=BM_PumpStreamServerToClient/0$ GRPC_POLL_STRATEGY=epollex

Seen in both opt and tsan:
https://sponge.corp.google.com/target?id=2372b9c4-4c3f-4ba9-9d94-389671761c24&target=github/grpc/c%2B%2B_linux_opt_native&searchFor=&show=ALL&sortBy=STATUS
Timeout
D1204 23:07:10.698270001   19773 ev_posix.cc:128]            Using polling engine: epollex
D1204 23:07:10.698363273   19773 dns_resolver.cc:307]        Using native dns resolver
Run on (32 X 2600 MHz CPU s)
2017-12-04 23:07:10

https://sponge.corp.google.com/target?id=dda1e6e2-34cf-4423-9b56-ef2af0827374&target=github/grpc/c%2B%2B_linux_tsan_native&searchFor=&show=ALL&sortBy=STATUS
Timeout
D1204 23:11:47.845452857    6874 ev_posix.cc:128]            Using polling engine: epollex
D1204 23:11:47.847424473    6874 dns_resolver.cc:307]        Using native dns resolver
Run on (32 X 2300 MHz CPU s)
2017-12-04 23:11:47
***WARNING*** Library was built as DEBUG. Timings may be affected.

duplicate of #13429


Chat hangs in PyCharm on first prompt

Before submitting your bug report

[X] I believe this is a bug. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that reports the same bug
[X] I've seen the troubleshooting guide on the Continue Docs

Relevant environment info
- OS:macOS 14.3 (23D56)
- Continue: 0.0.39
- IDE: PyCharm 2023.3.4 (CE)
- Tried with a few LLMs

Description
I installed Continue today through the plugin marketplace in PyCharm but haven't been able to successfully execute a first prompt yet following the instructions in continue_tutorial.py. The log seems to indicate that I don't have the most up-to-date version of Continue, but I do have 0.0.39, which seems to be the latest release. I tried to toggle the GitHub Copilot plugin on/off, in case that was interfering, but observed no change. I chatted with Tyler at the Austin Data Council conference and he wasn't able to quickly diagnose, so I am submitting a full issue ticket. Thanks for your assistance!
To reproduce
Here's the chat hanging:

and a confirmation of my Continue version:

Log output
(edited with full log file)
[info] Starting Continue core...
[info] Starting Continue core...
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "llm/streamChat":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_complete

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "llm/streamChat":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_complete

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "llm/streamChat":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
[info] Exiting Continue core...
[info] Starting Continue core...
[info] Starting Continue core...
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "llm/streamChat":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "llm/streamChat":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "command/run":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "llm/streamChat":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "llm/streamChat":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

{"message":"Please upgrade to the latest version of Continue to continue using the free trial."}
Error running handler for "llm/streamChat":  Error: HTTP 400 Bad Request from https://node-proxy-server-blue-l6vsfbzhba-uw.a.run.app/stream_chat

Great, this does work on my end now! Thanks for the speedy assistance and looking forward to exploring this exciting tool.

I have the latest version installed 0.0.39 in PhpStorm and my chat hangs with any of these models:

I would like to provide the logs but have not found out where they might be.


Please keep core cookbook module examples

@tjvantoll Has asked me to drop a line here reminding us to keep the core cookbook module docs for example, image-source, file-system, etc.

Indeed. Also http, etc. I’m glad we started with UI examples, but I think we need to make getting these utilities in the starters to make this as useful as the existing cookbook.

Core cookbook examples added for modules
DONE

application
application-settings
color
connectivity
fetch
file-system
formatted-string
fps-meter
http
location
platform
timer
trace

In Progress

nativescript-camera

@NickIliev - are these available in the docs already?

@valentinstoychev yep = all of them are placed n "Code Samples" section of the Angular part of the documentation.
lastest DONE

nativescript-camera
flexbox layout examples
common content screens


EmptyEpsilon 2021.06.23 -> 2023.06.17

Description of changes
Update EmptyEpsilon to 2023.06.17
Changelog: https://github.com/daid/EmptyEpsilon/releases/tag/EE-2023.06.17
Closes NixOS/nixpkgs#253183
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg build EmptyEpsilon


OpenCV with VC4CL

First of all sorry, i have many dumb questions for that:
.We know opencv support opencl with many functions like cv::gpu::, cv::umat::, cv::ocl::*** eg..
but i dont know how opencv compile each functions for opencl, or these compiled before?
.Opencl works with compiled gpu kernels, but how can i pick necessery opencv functions in my project for this compile? now i dont know too or how ??
.Finally, i assumed part of the opencv libs precompiled for vc4 opencl, good but how can we use it without compile procedure and what is ram usage for gpu ? (64mb std. for pi)
thanks a lot.

but i dont know how opencv compile each functions for opencl, or these compiled before?
.Opencl works with compiled gpu kernels, but how can i pick necessery opencv functions in my project for this compile?

This should be automatically handled by the OpenCL application (in this case OpenCV).

.Finally, i assumed part of the opencv libs precompiled for vc4 opencl, good but how can we use it without compile procedure and what is ram usage for gpu ? (64mb std. for pi)

Again, whether or not the kernel code is precompiled (either into machine code or an intermediate format) is in the hand of the OpenCL application (OpenCV). The GPU memory split required depends on what kernels you want to execute. In case of OpenCV, I don't know how much you need.


Allow specification of ssl verification for hipchat adapters.

Allow specification of ssl verification for hipchat adapters by adding an optional config variable to the chatbot instance.

Some information about input and output adapters https://github.com/gunthercox/ChatterBot/issues/528
The tests are failing due to pep8 issue
4.20s$ flake8
./chatterbot/output/hipchat.py:32:5: E303 too many blank lines (3)

Blinking test  tests/storage_adapter_tests/test_sqlalchemy_adapter.pyis also unstable on master.

@Achimh3011 Thank you.


Support wide output format for get commands (-o wide)

Refer https://gateway-api.sigs.k8s.io/geps/gep-2722/ for details

/area gwctl
/assign @jongwooo

I'll work on this once #2866 is completed.

Hi @jongwooo! Thanks for your contributions so far. Are you still interested in getting this one through?

Hi @gauravkghildiyal, Sorry for the late response. I am currently in the midst of a job search, which will restrict my time to work on this until early June. If anyone is interested in picking this up in the meantime, I'd be happy to hand it off. Otherwise, I'll be sure to tackle it in early June.

No worries @jongwooo. Thanks again for all your contributions. Best of luck with the job search! Just FYI, Gateway API release v1.1 includes your name as one of the contributors: https://github.com/kubernetes-sigs/gateway-api/releases/tag/v1.1.0
(I'll make this bug unassigned for the time being)

/unassign

/assign


Bug: Peer Dependency of pixi.js breaks any app <7.2

Current Behavior
Everything was working until pixi.js released v7.3.3 yesterday
Now our production build fails, local builds fail
Expected Behavior
Well existing packages shouldn't be affected!
Steps to Reproduce
So far haven't been able to pin it down, but we get the error of
Can't redeclare "SORTABLE_CHILDREN";
Environment

@pixi/react version: * 7.0.2*
pixi.js version: 7.1.2
React version: 18x
ReactDOM version: 18x
Browser & Version: e.g. Chrome 108
OS & Version: e.g. Ubuntu 22.04
Running Example: e.g. https://pixiplayground.com/

Possible Solution
Well, maybe pin the peer dep <= 7.3.3 ?
Additional Information
No response

Hi, i can't reproduce this
If you can provide me with an example i will reopen and look into this!

In any case, why would it make sense to not pin exact versions of PixiJS peer dependency?

this project should work for any pixi v6/7 version, so it shouldn't need to be pinned to a specific version, just a major version which >=6.0.0 should cover


Since the Federation Plugin adds some runtime code, how sure are we that this will remain compatible between multiple versions of webpack? Currently this is in webpack 5, as mentioned before there are plans to back port this to the version 4. Will those 2 be compatible. I mean if i create my Federation application in webpack 5, but my legacy applications are still on webpack 4 with the federation plugin, will I be able to consume them without issues?

Tnx, in advance to take a little bit of your time :) and keep up the good work!

Google my articles and YouTube playlists.
I haven’t put any effort into consuming code from other bundles. My guess is probably? Either use externals for that or shim the api inside another bundle so it’s got an interface.
I’m supporting the webpack 4 backport - interface layer will operate as a compatibility layer. 4&5 will work together. Today I’m using webpack 4 and 5 with a api shim.
The limitations of WP4 api makes it challenging to overcome some aspects. While we will likely get base level Federation, I will not backport any additional extensions I’ve created. It will work but it’s an unofficial backport. In the hands of the community to progress the tech for WP4 beyond my initial efforts to support it. It’s not yet stable but the intention is that I’ll be able to interchangeably load code between 4&5
However things like streamed federation will likely not be offered to v4 due to extensive use of wp5 only features.
An easy hack (shim) for non webpack. Copy paste the template of remoteEntry and hook it into another bundler. That’s what I’m doing at the moment on my WP4 builds. Require.context and the guts of a webpack 5 runtime. Somewhere in this thread I’m pretty sure i dropped a gist containing the shim

Google my articles and YouTube playlists.
I haven’t put any effort into consuming code from other bundles. My guess is probably? Either use externals for that or shim the api inside another bundle so it’s got an interface.
I’m supporting the webpack 4 backport - interface layer will operate as a compatibility layer. 4&5 will work together. Today I’m using webpack 4 and 5 with a api shim.
The limitations of WP4 api makes it challenging to overcome some aspects. While we will likely get base level Federation, I will not backport any additional extensions I’ve created. It will work but it’s an unofficial backport. In the hands of the community to progress the tech for WP4 beyond my initial efforts to support it. It’s not yet stable but the intention is that I’ll be able to interchangeably load code between 4&5
However things like streamed federation will likely not be offered to v4 due to extensive use of wp5 only features.
An easy hack (shim) for non webpack. Copy paste the template of remoteEntry and hook it into another bundler. That’s what I’m doing at the moment on my WP4 builds. Require.context and the guts of a webpack 5 runtime. Somewhere in this thread I’m pretty sure i dropped a gist containing the shim

@ScriptedAlchemy @brendonco
Thinking out loud in regards to the last two replies
I'm also exploring options for loading modules on demand - so the shell (core app) being able to load other apps subject to those containers running. core will load app1, app2, app3 and remoteEntry for core will always be there, the rest will be added with docker-compose during the build

Docker containers are ideal for Federation also for server side federation. I run in a fully serverless env so there’s a lot more challenges - hence streaming. Hydration in and out of s3 or redis also works well.
I’ve got blueprints for peer to peer streamed requests in the event of a failure, resolve to current users online. Load directly from their browser - leverages blockchain tech for consensus. Experimental but immutable - the code could never go missing. I tested the concept a few years back. Files lived on for months after they were deleted from origin. The more users connected, the faster the network got. With a service worker attached, clients could host their own dns server and remain fully decentralized. Again this is a highly experimental concept - cannot recommend for enterprise use, but it’s cool

Hello guys,
I have a case to integrate module federation into Angular 7 project. it is using webpack 4 and @angular-devkit/build-angular.
As i guess i have to build angular without any additional tools which overrides webpack config generated inside CLI. So i have to build and serve by pure webpack commands.
Is there any chances to integrate to old angular version ?

@ScriptedAlchemy @brendonco
Thinking out loud in regards to the last two replies
I'm also exploring options for loading modules on demand - so the shell (core app) being able to load other apps subject to those containers running. core will load app1, app2, app3 and remoteEntry for core will always be there, the rest will be added with docker-compose during the build

Docker containers are ideal for Federation also for server side federation. I run in a fully serverless env so there’s a lot more challenges - hence streaming. Hydration in and out of s3 or redis also works well.
I’ve got blueprints for peer to peer streamed requests in the event of a failure, resolve to current users online. Load directly from their browser - leverages blockchain tech for consensus. Experimental but immutable - the code could never go missing. I tested the concept a few years back. Files lived on for months after they were deleted from origin. The more users connected, the faster the network got. With a service worker attached, clients could host their own dns server and remain fully decentralized. Again this is a highly experimental concept - cannot recommend for enterprise use, but it’s cool

nice one

@alecoder the angular team is working on its but are blocked by us. There are workarounds https://www.angulararchitects.io/aktuelles/the-microfrontend-revolution-module-federation-in-webpack-5/

Here a few updates what happened on the dev-1 branch:

Overridables (shared) to no longer require wrapping in import(). So no unneccessary import("./bootstrap") in your app code because of container-related plugins. (Note: remote modules still require import(), that won't change.)
Persistent caching with container-related plugins is now possible.
Container-related plugins are now exposed under require("webpack").container.XXXPlugin and have typings
ModuleFederationPlugin doesn't create a container when no exposes are specified
Improved schema validation

Tobias, I pulled dev1 yesterday and rebased on my fork - saw lots of these changes.
Very very well done! You’re an absolute champ

Do you have any advice re: caching? I've noticed some cases where browsers will cache remoteEntry.js because it's a static filename. I wonder if I should append a random query parameter to bust the cache or perhaps configure the server response headers to not cache remoteEntry.js

No random query parameter. That's never a good idea. Configure correct caching headers on server. Revalidation and short cache live time.

@sokra are there some cache-control values you would recommend as a safe default?

after testing this out, it's important to note that if you consume exposes inside a remote app, you will need to use a dynamic import somewhere, perhaps not on the root of the app @sokra ?
import LocalButton from "./Button";
import React from "react";

const App = () => (

Basic Host-Remote

App 2

    <LocalButton />

);

export default App;

with
import React from "react";

const Button = () => <button>App 2 Button</button>;

export default Button;

and a webapck config that has this.
new ModuleFederationPlugin({
      name: "app2",
      library: { type: "var", name: "app2" },
      filename: "remoteEntry.js",
      exposes: {
        Button: "./src/Button",
      },
      shared: ["react", "react-dom"],
    }),

Will require you to either use import(bootstrap.js) in the REMOTE's entrypoint in order for it to work.
OR
you can dynamically import the file itself. Either way, you need a dynamic import on the remote in the execution chain - a promise must exist somewhere to hoist imports up.
import React, {Suspense} from "react";
const LocalButton = React.lazy(()=>import('./Button'));

const App = () => (

Basic Host-Remote

App 2

    <Suspense fallback={null}>
      <LocalButton />
    </Suspense>

);

export default App;

import(bootstrap.js) will allow you to do this
import LocalButton from "./Button";
Otherwise, if you don't want to have a dynamic import in entrypoint, you can use it like this
const LocalButton = React.lazy(()=>import('./Button'));

@sokra with import bootstrap solved (thank you again) .... do you think we are at a stage where we can release module federation with the next webpack beta <3

Looking for help!
Copied the basic-host-remote example, trying to use remotes in our legacy product as the "host".  Made few changes but can seem to load the component, the compiled code on the host side looks like this:
var MyComponent = React.lazy(function () {
  return Promise.resolve().then(function () {
    return __webpack_require__(/*! app2/MyComponent */ "?9bdf");
  }).then(function (res) {
    console.log(res);
    return res;
  })["catch"](function (err) {
    console.log('err', err);
  });
});

Error is:
TypeError: Cannot read property 'call' of undefined
    at __webpack_require__ (application.js:25737)

webpack seem to have a module 'container-reference/app2' available and i believe this is because the module is renamed to "?9bdf"/
Is another plugin or splitchunks conflicting with the ModuleFederationPlugin?  i have tried to using webpackIgnore comment, but nothing works and i don't know how to debug it any further.

Show me your implementation. Whats the code in legacy.

Whats the code in legacy
did you load the remoteEntry
is legacy running webpack 4

@bvkimball Judging by very little context. You're either attempting to call this, directly in your host.
var MyComponent = React.lazy(function () {
  return Promise.resolve().then(function () {
    return __webpack_require__(/*! app2/MyComponent */ "?9bdf");
  }).then(function (res) {
    console.log(res);
    return res;
  })["catch"](function (err) {
    console.log('err', err);
  });
});

If its not webpack 5, then you need to use window.app2.get('MyComponent').then(factory => factory())
Heres what mine looks like in legacy webpack 4
const DynamicComponent = dynamic(() => window.abtests.get('webpack4FederationComponent').then((factory) => {
    const Module = factory();
    return Module.default;
}), { ssr: false });

<DynamicComponent />

Make Sure you have publicPath set to something absolute in the remote
  output: {
    publicPath: "http://localhost:3002/",
  },

Thank you!
took me a bit to realize that dynamic was a nextjs thing. To get this working for me, I did the following:
const MyComponent = React.lazy(() => window['app2'].get('MyComponent').then((factory: Function) => factory()));
...
   ReactDOM.render(
      <Provider>
        <React.Suspense fallback="Loading...">
          <MyComponent />
        </React.Suspense>
      </Provider>,
      this.el
    );

needed to use window to build my library too
   new ModuleFederationPlugin({
      name: "app2",
      library: { type: "window", name: "app2" },
      filename: "remoteEntry.js",
      exposes: {
        MyComponent: "./src/MyComponent"
      },
      shared: ["react", "react-dom", "@zaius/hera"]
    }),

@sokra with import bootstrap solved (thank you again) .... do you think we are at a stage where we can release module federation with the next webpack beta <3

I'm very excited for next beta version with this feature. Cool stuff.

after testing this out, it's important to note that if you consume exposes inside a remote app, you will need to use a dynamic import somewhere, perhaps not on the root of the app @sokra ?

Sounds like a bug. That's not how it is intended. You only need to use import() when using a remote module. Own exposed or overridable modules should not need a import().

This may be a long shot but are there any plans to include the webpack-dev-server live reloading functionality in the exposed chunks? This is quite valuable for developing an app locally against a deployed container. I have also explored the clunky workaround of using https://www.npmjs.com/package/webpack-livereload-plugin but it is not yet compatible with Webpack 5. Ultimately, including the live reloading functionality in the exposed chunks would be the much preferred solution.

after testing this out, it's important to note that if you consume exposes inside a remote app, you will need to use a dynamic import somewhere, perhaps not on the root of the app @sokra ?

Sounds like a bug. That's not how it is intended. You only need to use import() when using a remote module in the app part of your build. Own exposed or overridable modules should not need a import().

@sokra ill send you my repo in both states

This may be a long shot but are there any plans to include the webpack-dev-server live reloading / overlay functionality in the exposed chunks? This is quite valuable for developing an app locally against a deployed container. I have also explored the clunky workaround of using https://www.npmjs.com/package/webpack-livereload-plugin but it is not yet compatible with Webpack 5. Ultimately, including the live reloading / overlay functionality in the exposed chunks would be the much preferred solution.

I ported livereload to webpack 5. There’s plans to bring hmr capabilities as far as I know. But don’t remember the full  details or release plan

This is really awesome and looks like it will solve a lot of problems we've been struggling with for the last year. However, I'm still not clear if this will actually fully solve our problem, so sorry for hijacking this issue to ask about this, and also sorry if I've missed the answer if it's already here in the thread. So here's the question:
Would this support SPAs offering a plugin system? This is the example I'm thinking about:

The main application is always loaded first on page load, so it would always be the host.
It fetches a list of active plugins from the server and would then need to do a fully dynamic import() of each plugin, without the plugins being known at the host application's build time.
The plugins are loaded and can then import shared vendored libraries as well as parts of the plugin framework from the host.

As far as I understand it, I'm positive this merge proposal will solve 1. and 3., but I'm not sure if this proposal would actually support 2., in particular since webpack does not support import() based on fully dynamic expressions as far as I'm aware.

It fetches a list of active plugins from the server and would then need to do a fully dynamic import() of each plugin, without the plugins being known at the host application's build time.

https://github.com/webpack/webpack/issues/10352#issuecomment-612292229

after testing this out, it's important to note that if you consume exposes inside a remote app, you will need to use a dynamic import somewhere, perhaps not on the root of the app @sokra ?

Sounds like a bug. That's not how it is intended. You only need to use import() when using a remote module in the app part of your build. Own exposed or overridable modules should not need a import().

@sokra ill send you my repo in both states

It should already be fixed

@sokra yep it is - just wiped locks and did a fresh install. Its working properly now. Im removing import(bootstrap) from all examples now

@ScriptedAlchemy You should also change require("webpack/lib/container/ModuleFederationPlugin") to require("webpack").container.ModuleFederationPlugin in the examples.

@sokra will do
Also want to discuss hooks with you, especially one added to remoteEntry allowing me to extend the API.
Where should hooks come from, i know webpacks hooks are abstracted heavily through other access points like getCompilationHooks and so on

Off-topic from this merge proposal. But I've created a plugin that extends module federation to accept streams. This is useful for server-side federation. In my case, i am using S3 as the remotes file system - webpack requires code streamed directly from S3. Pretty slick solution for users wondering how to access federated code in serverless environments.

@ScriptedAlchemy do you think you can release module federation in next beta version? Any plan?

@brendonco We are getting close to being able to merge this. That decision is up to @sokra to determine if we have reached a stage at which he is comfortable to merge this into Webpack.
https://twitter.com/wSokra/status/1255927801045286917?s=20

Hello guys,
getting error while trying to build my angular application production mode:
TypeError: Cannot destructure property 'startTime' of 'snapshot' as it is null.
    at FileSystemInfo._checkSnapshotValidNoCache (/home/alecoder/Projects/JS/ap/node_modules/webpack/lib/FileSystemInfo.js:1159:4)
    at FileSystemInfo.checkSnapshotValid (/home/alecoder/Projects/JS/ap/node_modules/webpack/lib/FileSystemInfo.js:1153:8)
    at processCacheResult (/home/alecoder/Projects/JS/ap/node_modules/webpack/lib/cache/ResolverCachePlugin.js:253:26)
    at /home/alecoder/Projects/JS/ap/node_modules/webpack/lib/Cache.js:93:5
    at Hook.eval [as callAsync] (eval at create (/home/alecoder/Projects/JS/ap/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:14:1)
    at Cache.get (/home/alecoder/Projects/JS/ap/node_modules/webpack/lib/Cache.js:75:18)
    at /home/alecoder/Projects/JS/ap/node_modules/webpack/lib/cache/ResolverCachePlugin.js:300:15
    at Hook.eval [as callAsync] (eval at create (/home/alecoder/Projects/JS/ap/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:20:1)

Production mode works. using AngularCompilerPlugin plugin.
there are production and development configurations:
Prod
    new AotPlugin({
      skipCodeGeneration: false,
      tsConfigPath: "./src/tsconfig.app.json",
      directTemplateLoading: true,
      entryModule: path.resolve(
        __dirname,
        "./src/app/app.module#AppModule"
      )
    }),

Development:
    new AotPlugin({
      tsConfigPath: path.resolve(__dirname, './src/tsconfig.app.json'),
      sourceMap: false,
      nameLazyFiles: false,
      skipCodeGeneration: true,
      compilerOptions: {
        enableIvy: false,
      }
    }),

Is this issue somehow linked to new webpack 5 ? It seems error comes from webpack itself.

https://github.com/webpack/webpack/releases/tag/v5.0.0-beta.16

@alecoder https://www.angulararchitects.io/aktuelles/the-microfrontend-revolution-module-federation-in-webpack-5/ this is for angular apps, written by one of the angular core contributors

@alecoder https://www.angulararchitects.io/aktuelles/the-microfrontend-revolution-module-federation-in-webpack-5/ this is for angular apps, written by one of the angular core contributors

Yeah, I saw this repo. But there is only production builds. I did the same but as soon as i switch mode to development, it stops working.

How are you guys handling multiple components being exposed in the exposes object? I could be having 100 components that need to be accessed

@vtrikoupis you will have to add each component as a key/value in the exposes object, which I had to do for about 500 util files.

it kind of goes back to my feedback item 2 where I think it would make more sense to have a standard JS file that exports shared components (and webpack looked at that) instead of a config file in the webpack settings itself. Seems more natural (and based on standards) than having to put it in a config.
But I don't know if there's a technical/philosophical reason to not do it that way.

How are you guys handling multiple components being exposed in the exposes object? I could be having 100 components that need to be accessed
edit: previous error seems to be unrelated

Create a loop that walks directories and adds the files to array

@ScriptedAlchemy In upgrading from git://github.com/webpack/webpack.git#dev-1 to 5.0.0-beta.16 we are getting a new error:
Service:2 Uncaught (in promise) TypeError: Cannot read property 'override' of undefined
while loading "ProfilePage" from webpack/container/reference/profile

We have a very similar structure to your shared routing example. The difference is we want the capability to only spin up one micro app + the shell rather than having to spin up all the micro apps. In shell we try to dynamically import each micro app & silently fail if it doesn't load. For example in Shell.js trying to import the profile app without starting its webpack:
import("profile/ProfilePage").catch(e => {})

transpiles away the .catch so the import failure causes the app to crash:
      return __webpack_require__.e(/*! import() */ "webpack_container_remote_some-micro-app_root").then(__webpack_require__.t.bind(__webpack_require__, /*! profile/ProfilePage */ "webpack/container/remote/profile/ProfilePage", 7));

Interestingly this error doesn't happen with React.lazy, but we are wondering if there are any alternatives?

Wrap it in a promise. So new Promise(import()).catch

Or try catch

Ahh your override thing is a bug. Add shared:[]
If shared isn’t there then no override object exists in the runtime. This is a temporary workaround that has already been flagged to Tobias.
If you have no shared. The overridables is not added so hosts can’t override anything or attempt to.

Thanks for the quick response @ScriptedAlchemy! Wrapping it:
try {
  import("profile/ProfilePage").catch(e => {})
} catch(e) {}
// OR
Promise(import("profile/ProfilePage").catch(e => {})).catch(e => {})

leads to the same error.
Your shell webpack already has shared in it, and adding "../profile/src/ProfilePage", to shared does not resolve this either.
Note that this error did not occur previously when specifying git://github.com/webpack/webpack.git#dev-1 as the webpack version. However since I re npm installed since the updates to that branch or using the latest beta webpack, this error is now occurring.
Any other options? 😅

You still need shared:[] on remotes or hosts. Even if your not sharing anything. It’s a bug

Show me all your webpack module Federation configs. I’ll spot the problem

how can it be downloaded from S3 many version federation module? I did not find it case in the docks. My cases:

I have many apps
I have many federation modules with many version and different type build: for client and server

Many apps load config when getting type and version modules.

On server - we load on https JS file modules/header/1.20.3/header_server.js, execute and run
On client - we load js modules/header/1.20.3/header_client.js, CSS files in CDN

You can see an example in https://www.tinkoff.ru/. Now works on a self solution
We could be helped by a method in which we can add a module ourselves after loading remote.js.

Streamed code is an implementation detail - not webpacks job. I wrote this for lambda federation. Currently streaming 10 separate remotes. Direct from s3 takes about 150ms, from Cloudfront it’s 17ms.
The plugin isn’t open-source. Will likely be licensed for a small amount. I’ll be releasing a trial key that’s good for 2 weeks. And once I’ve finished the ability to hot-reload in production (specifically in node) - I’ll be publishing it.

You can add modules manually if you tap into the lower level. Dynamic Federation pretty much. But you cannot modify a remotes modules it exposes. You could use shared which will allow you to dynamically override dependencies on the consumer side

@protoEvangelion could you create a repro repo and file an issue?

There is one problem with module federation - shared. Some modules are "expected" to be shared and some have to.
The simplest example - react could be presented only once, or some theme stuff, or anything else expected to be a singleton or use a singleton - like every single Redux application.
So

would it be beneficial to move remote configuration to a package.json. It already contain information about "imports and exports", and it would be logical to extend it a bit
would it be a good idea to mark some packages as a singletons, and force them to be shared
how check how many packages could be potentially shared, but were not? (probably some external tool)

@theKashey This could be done with a small update to ModuleFederationPlugin. Would not need to be in the webpack core either.

Ok. So another shared question - is there any versioning around it or not?
For example, I have Button@2, and remote actually needs Button@3, so it could not use my one - would it use own one?
Or the opposite example - I have Button@2 and a few remotes needs Button@3 - would the share Button@3 between each other, or will duplicate it (as it usually happens with node_modules and situation like this, unless you use special plugins)

Hi guys,
I'm trying to lazily import a regular javascript file, is there a standard much like the Suspense for rendering that has worked for you? I can't get it to resolve

would it be beneficial to move remote configuration to a package.json. It already contain information about "imports and exports", and it would be logical to extend it a bit

We don't have access to the package.json of a remote container. Module Federation is based on the concept of no-compile dependency between host and remote and they are build separately.
If you want to remove configuration somewhere then it can be move to runtime. There are some ideas about adding validation to containers that could ensure proper use of the container. This could be one additional validation.

For example, I have Button@2, and remote actually needs Button@3, so it could not use my one - would it use own one?

Assuming you e. g. Button@2 as shared key, yes.

Or the opposite example - I have Button@2 and a few remotes needs Button@3 - would the share Button@3 between each other, or will duplicate it (as it usually happens with node_modules and situation like this, unless you use special plugins)

No. One design concept was that overrides only happen from host to remote and not between siblings. The goal of this concept is to reduce the factors that can influence the behavior of the containers. With this design only host can influence shared modules of the remote. You only have to check configuration and shared modules of the host. If sibling container could influence each other this would end in chaos since a new container could be deployed which breaks another used container, maybe even depending on which one is included first.

Well for the life of me I can not repro the issue any more and I can catch failed imports. Forget what I said haha. Sorry for distracting!

@vtrikoupis this is working for me now to lazy load without Suspense:
const microAppImportMap = {
    someApp: () => import('some-app/root').catch(() => null),
    // ...other micro apps
}

If you are using Suspense, @ScriptedAlchemy has a ton of great examples here: https://github.com/module-federation/module-federation-examples

If you are using Suspense, @ScriptedAlchemy has a ton of great examples here: https://github.com/module-federation/module-federation-examples

Thanks a lot. I'm following the repo yes, using Suspense throughout.. works perfectly. I have a non functional component that needs to access a token in a global store.
I've seen in the same repo a store being shared between the two modules. The project I'm trying to apply this to is with easy-peasy. I wanted to avoid touching that code but it seems I may have to

@vtrikoupis that video was me uncovering another bug that i caused myself. But in the process of doing so - i discovered this possibility. You can make remotes exposes also shared and you could version them as well. hosts would only override remotes if their version matches. So you could have some secondary lookup or npm installed version or s3/fetch which would fall back to fetch the remote directly from a cdn or bucket.

Giving a talk on module federation tomorrow if anyone cares to join. https://twitter.com/sphereit_conf/status/1259874275969970176?s=21

@ScriptedAlchemy I've noticed when I set the remotes with hyphen (-), I got unexpected token.
remotes: {
  "meaningful-name-1": "meaningful-name-1"
}

Somewhere in the thread, this was addressed. It’s a variable so it’ll break. Vars cant be hyphenated. Something like “[‘thing-thing’]” should work. Global[thing-thing] for example

@brendonco you fix by adjusting the library key like so: library: { type: 'window', name: 'meaningful-name-1' },. You can also do type: 'this'.

Some new considerations we are evaluating for module federation - I’ll update once they are more finalized.
Outside webpack core. Some areas being actively developed.

Federation dashboard, offering graph visualization, code freezing, ability to see who uses what. The idea being you can have a command and control layer that gives you insights. We also will be adding the ability to hot reload server-side federated modules, and version lock modules that remotes exposes, with ability’s to rollback or upgrade what a host is consuming. Module Federation has power with its highly dynamic capabilities - the goal is to enable code-freezes Of ciritical business flows without freezing an entire codebase. Effectively freezing the graph so other teams can continue to deploy remotes that to other non critical hosts (checkout, product display pages during peak for example would be frozen) but other teams can still consume green remotes in production even though a specific host is frozen.

streaming is done, but needs some refinements after speaking to Tobias. We also need to verify cache busing specific webpack modules to enable hot reloading on servers over the wire.

automatic vendor federation, to version and share all vendor code possible without manually writing it to shared.

sandboxing exposed modules in a remote. To prevent global or prototype pollution within a host.

reverse overrides patterns to allow remotes to override hosts files - similar to shared.

cross remote queries. Allowing two remotes to share vendor code without the host needing a package installed as well

federated unit tests to preform bidirectional tests (nobody breaks anyone else depending on a remote)

More to come and again will provide an update on core changes in future webpack releases. All mentioned above is not intended to be part of the core - but solve problems and provide tools valuable at enterprise level where scale is a challenge.  As with any technology, tooling can make or break ability to scale reliably. We intend to provide supporting tools to enable well rounded capabilities that will reduce risk and cognitive complexity those of us who control 20-100+ repos.

Speaking about dashboards and rollouts - there is a subset of tests - contract testing (or pact testing in some places) which could shine with MFE.
In contract terms, a consumer of a remote is able to define tests (literally acceptance tests) for it. Existence of this test would be known for remote
As a result - a remote, once it "want to publish a new version" should be able to test itself against known consumers, by the tests defined by those consumers.
That would be a real game changer!

Yeah thats the plan. Internally I’m working on something like that

Pretty much bidirectional tests. Remotes can run tests of remotes to verify they don’t break anything and hosts can run check against remotes to make sure they don’t break.

I am getting __webpack_require__(...)(...).get is not a function error when trying to load the remote module by using:
import('demo/Button')
In the runtime.js:
var promise = __webpack_require__(data[0])(__webpack_require__(data[1])).get(data[2]);
data is ["webpack/container/remote-overrides/empty", "webpack/container/reference/demo", "Button"]
and
the __webpack_require__(data[0])(__webpack_require__(data[1])) results to a constant 1

@andrei-zhaleznichenka your splitChunks config means that your container entry is splitted into multiple files (just like your normal entries). This means you need multiple script tags to create a valid remote in the host HTML. Check stats output to get a list of files.

Thanks @sokra! Now it is clear.
I think for my case I can probably skip the optimization for the remotes since it is only required for my host as webpack fails to generate the source-map for the large chunks otherwise.

@ScriptedAlchemy

if I have app1 exposes a side nav
app2 is using the expose side nav from app1
App1 is running, and I didnt load app1 but go directly to route app2.  I've notice that if I include app1 remoteEntry.js before loading app2. The side nav will render. But If I didnt load remoteEntry.js of app1, the side nav doesnt work.

Question: The index.html file in app2 will not be used when deployed to an environment e.g dev env, if the entry point is from app1. Is there a way to configure in webpack to load remoteEntry.js of app1? Without using the dynamic script loader. 😀

@brendonco we will soon have a new external type script which will allow
remotes: {
  app1: "app1@https://example.com/app1/remoteEntry.js"
}

This would allow to omit the script tag in the html and webpack will load the script when needed. It still makes sense to preload the script in the HTML, but thats an optional performance optimization.

Theoretically, you could use MF to split chunks. Via shared or exposes. Slightly less control but if you have multiple builds on the page it would add an advantage to what splitchunks does now.

@brendonco we will soon have a new external type script which will allow
remotes: {
  app1: "app1@https://example.com/app1/remoteEntry.js"
}

This would allow to omit the script tag in the html and webpack will load the script when needed. It still makes sense to preload the script in the HTML, but thats an optional performance optimization.

This feature will be helpful.
@ScriptedAlchemy it will only work if you load remoteScriptEntry from App1.

@ScriptedAlchemy We are currently outputting 50+ npm deps in shared: [...]. Is this an appropriate usage? All of the examples I've seen have around 3 deps 😬
One optimization we are trying is madge to dynamically figure out the npm deps of each micro app so that the 50+ number is closer to 10+.
However, part of me wonders if there is a better way to do this "auto npm package detection" within a webpack plugin or the module federation plugin itself. It looks like webpack understands the module graph after module federation plugin runs so I'm guessing this isn't possible but wanted to verify 😄

@protoEvangelion probably you looking for something like https://github.com/module-federation/automatic-vendor-federation

@vankop thank you!
I like this approach, however in our situation with a reasonably sized enterprise app there are a few issues with this:

It assumes that all developers will properly add deps to "dependencies": [] & dev deps to "devDependencies": []. That's an assumption we can't make in our case.
We have a mono repo where 99% of the dependencies live in the root package.json and each micro app can have its own package.json with custom deps.
We only want micro apps to build the minimal amount of deps it needs rather than everything in deps. For instance app1 may use lodash so we want to add that to shared but app2 may not so we don't want that in shared.

anyone having a collision of dynamic class generated by styled-components when you add styled-component at shared in module fed? navigation with different content styles:
Example:
app1 nav content style:
import styled from 'styled-components';

export const ContentWrapper = styled.div`
  margin: -1.5em -1.5em 0;
`;

app2 using app1 navigation:
import styled from "styled-components";

export const Container = styled.div`
  padding-top: 1rem;
  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.1);
`;

Webpack config (App1):
      exposes: {
        SideNavigation: "./src/common/components/SideNavigation/index",
        Widget: "./src/App",
      },
        shared: [
        "react",
        "react-dom",
        "react-router-dom",
        // workaround to ensure code is provided before booting app
        "./src/common/components/SideNavigation/index"
      ]

@brendonco I think you need to add styled-components as a shared module. And check your console for styled-components warnings.

Yes I did add before. Same issue. Regardless I added or not as shared module.

Look like the styled-components Babel plugin generates a hash based on package.json name and the path relative to the package.json.
Do both apps have different names in their package.json?

Look like the styled-components Babel plugin generates a hash based on package.json name and the path relative to the package.json.
Do both apps have different names in their package.json?

different name in their package.json

styled generates hash based on style text. Different styles should always generate different hashes as well as same styles leads to the same hashed. Well, that's is a core idea of "hashing".
Something else is here.

yes, quite surprise why there are same hash generated.

Aww man. @brendonco youre having to override the host with itself. I was hoping we wouldn’t encounter the need to do this pattern a whole lot outside the YouTube video 😂 this is almost “reverse overrides” from the looks

Are you able to customize the hashing algorithm? I know in css loader you’re able to provide additional data to prefix

Are you able to customize the hashing algorithm? I know in css loader you’re able to provide additional data to prefix

I tried adding below hashing prefix, and I'm using another table library called ag-grid which got affected :(.  In my local is working fine with/without hashing algo. This issue only occured when deployed to a remote server.
      {
        test: /\.css$/,
        loader: 'css-loader',
        options: {
          modules: {
            localIdentName: '[path][name]__[local]--[hash:base64:5]',
            context: path.resolve(__dirname, 'src'),
            hashPrefix: 'custom-hash',
          },
        },
      },

I've been working on getting module federation to work with nrwl and angular, and have used the work done in https://www.angulararchitects.io/aktuelles/the-microfrontend-revolution-part-2-module-federation-with-angular/ as base. I've been having trouble while trying to import multiple federated modules. I have a host(shell) app which has two routes, each lazily loading one of the two federated modules. The first route loads by default on page load, and the other one is navigable by clicking on a tab. The default route always works - regardless of which module it points to. The second route always crashes by throwing an error: TypeError: Cannot read property 'ɵmod' of undefined. When I put a debugger on the route load function, I noticed that the import statement for the second route always resolved with an object containing the module which is already loaded by the default.
I've created a minimal repo that demonstrates the issue.  I'm not sure if webpack is going wrong here or I am 😕.
PS: Awesome job on this! I'm really excited by the work done here :)

Are you able to customize the hashing algorithm? I know in css loader you’re able to provide additional data to prefix

I tried adding below hashing prefix, and I'm using another table library called ag-grid which got affected :(. In my local is working fine with/without hashing algo. This issue only occured when deployed to a remote server.
      {
        test: /\.css$/,
        loader: 'css-loader',
        options: {
          modules: {
            localIdentName: '[path][name]__[local]--[hash:base64:5]',
            context: path.resolve(__dirname, 'src'),
            hashPrefix: 'custom-hash',
          },
        },
      },

Nevermind, found the solution :), just use babel-plugin-styled-components to hash the classnames.

Huge update here: https://github.com/webpack/webpack/pull/10960
This adds versioned shared modules.

@sokra awesome work <3

@sokra @ScriptedAlchemy will the new shared mechanism also work for multiple versions of local files / folders (non npm packages)?

Yes, but you either need to put a package.json there or specify a version in shared config.
npm package are also local files. webpack doesn't do anything special for them. You can do everything also with local files with a package.json.

Hmm, not sure if that's feasible, because the use case is sharing hundreds of utils from a local libs folder which needs to be versioned. Currently we are setting libs up as a remote & exposing all of the files through exposes. And trying to rewrite the internal requests to show something like import {foo} from '@libs-2/utils' when bumping the version. Would shared be a better solution for this?

You can. I’m doing this. It comes down to keeping previous artifacts of remotes. I’m able to swap remote versions on a host and working out module my module support. It’s complex tho


Recaptcha iframe and sandbox attribute

We recently ran a security scan on our website and one of the things it pointed out was

An external insecure or misconfigured iframe was identified.

This happened on a page that has no iframes, but includes a recaptcha.
Their suggested solution is to add the sandbox attribute to the insecure iframe, but I don't see a way on how I would do that for the recaptcha since all you put on the page is a div with your sitekey. Additionally I have my doubts that the recaptcha would work in a sandboxed iframe.
How would I resolve this issue?

We should have sandbox settings on our iframes within a few weeks, thanks for the report.

Are there any updates regarding this issue?


Fix the height of the Navbar

Hi, i suggest we fix the height of the Nav bar, as it's to big at the moment and not that appealing to the eye.

This issue already exists. Please check the existing issues before raising a new one. Find another issue or feature to contribute to. Thank you!


Android cmake

two fixes after cmake rule refactoring

Add -s for Android back
fix -DBUILD_TEST=ON -DBUILD_BINARY=ON for Android

@Maratyszcza , what's your take on the -s option?

@caffe2bot test this please

Hi @freedomtan , you said you tested building the observers, but when I tried the merged commit, I get the following errors:
[ 98%] Linking CXX executable ../../../../../bin/caffe2_benchmark /Users/feisun/caffe2/caffe2_origin/caffe2/share/contrib/observers/observer_config.h:42: error: undefined reference to 'caffe2::ObserverConfig::netInitSampleRate_' /Users/feisun/caffe2/caffe2_origin/caffe2/share/contrib/observers/observer_config.h:42: error: undefined reference to 'caffe2::ObserverConfig::netFollowupSampleRate_' /Users/feisun/caffe2/caffe2_origin/caffe2/share/contrib/observers/observer_config.h:42: error: undefined reference to 'caffe2::ObserverConfig::netFollowupSampleCount_' /Users/feisun/caffe2/caffe2_origin/caffe2/share/contrib/observers/observer_config.h:42: error: undefined reference to 'caffe2::ObserverConfig::operatorNetSampleRatio_' /Users/feisun/caffe2/caffe2_origin/caffe2/share/contrib/observers/observer_config.h:42: error: undefined reference to 'caffe2::ObserverConfig::skipIters_' collect2: error: ld returned 1 exit status

OK, mystery solved. I didn't know there is a new flag called USE_OBSERVERS. I didn't set that one. Thanks for the work!

@sf-wind maybe merge USE_OBSERVERS and BUILD_OBSERVERS?


duration over 60 minutes displays as eg. 01:75:15

#89 introduced the ability to display durations of above 60 minutes as h:m:s.
If minutes is higher than 60 there is an error that shows the amount of minutes as over 60

I will submit a fix to this today

I will submit a fix to this today


Use smart pointers instead of raw pointers for opening connections to avoid leaks

Currently the raw connection pointers are not exception safe and can leak. Replace all raw pointers for unique smart pointers - see e.g., wms::locations::BaseLocation::fetch_location and wms::internal::sql::QueryManager

Implemented in 4b4938b453a6c382f889541b3ec9df52c7bab957


Restore dictionaryObjectRepresentation for Objective-C

@maicki - PTAL. Would love if you have time to test this patch out and see if it works for your use case. The new exhaustive everything.json will help us make sure we are accounting for all property type cases in our integration tests.

          2 Warnings

:warning:
This is a big PR, please consider splitting it up to ease code review.

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger

Eagerly awaiting this :) LMK if there's anything I can do to help test out.

@connor - I'm looking forward to getting this in as well. I'm writing up some unit tests right now just to go through all the different property types here since we disabled it previously since it wasn't working for all types.

          2 Warnings

:warning:
This is a big PR, please consider splitting it up to ease code review.

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger

          2 Warnings

:warning:
This is a big PR, please consider splitting it up to ease code review.

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger

          2 Warnings

:warning:
This is a big PR, please consider splitting it up to ease code review.

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger

          2 Warnings

:warning:
This is a big PR, please consider splitting it up to ease code review.

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger

          2 Warnings

:warning:
This is a big PR, please consider splitting it up to ease code review.

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger

Some thoughts after the initial review:

Every NSSet should be an Array in json / js and every NSDictionary an Object / {} in json / js.
Sets and Maps in js need to be transformed from it to either Array or Object type before passing it through a bridge or can be parsed / initialized into a plank object.
In ObjC we know if the property is a NSSet and expect the json response to be an Array so we parse the Array into an NSSet via [NSSet setWithArray:array] and an object via normal object transformation into NSDictionary.

          2 Warnings

:warning:
This is a big PR, please consider splitting it up to ease code review.

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger

          2 Warnings

:warning:
This is a big PR, please consider splitting it up to ease code review.

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger


Added aggregated report endpoint

Added an endpoint to fetch the aggregated report which matches the endpoint that the official Sure PetCare application uses to provide a history of events for a given pet.

Hey @EdwardSalter, thank you for your contribution. I added some feedback and looking forward to an answer.

Hey @EdwardSalter, thank you for your contribution. I added some feedback and looking forward to an answer.

Hi @fabieu , I'm probably being a bit dense but I cannot see any further comments or feedback. Are you able to point out where it is?


Add support for instance IAM roles

This adds support for IAM roles.
This requires https://github.com/AdRoll/goamz/pull/433 to function.
The repo above isn't currently being using in this repo at the time of this PR.
There are some details regarding the surrounding packages but maybe this code will help someone.
I realize this may or may not be needed on the Pocket version. I unfortunately don't have time to check that out at the moment.

will this ever be merged in? its very useful.


Request to utilize the Send As or Send On Behalf functionality of SMTP email

Hi,
As Organisation Send-As policy allow user to send as or send on behalf of a group.
For example, if Megan Bowen is part of the Training Microsoft 365 group, and has Send as permissions on the group, if she sends an email as the group, it will look like the Training group sent the email.
The Send on Behalf permission lets a user send email on behalf of a Microsoft 365 group. For example, if Alex Wilber is a part of the Marketing Microsoft 365 group, and has Send on Behalf permissions and sends an email as the group, the email looks like it was sent by Alex Wilber on behalf of Marketing.
The above functionality is not achievable by the new Enhanced email functionality (SMTP) as it always take the "From address" from the "Email Accounts" record depending upon  the "Email Scenario" or the default one.
I am expecting the same functionality to be available as Microsoft Exchange gives the feature. for more details:
[https://docs.microsoft.com/en-us/microsoft-365/solutions/allow-members-to-send-as-or-send-on-behalf-of-group?view=o365-worldwide](Microsoft 365)

Hi @IndubhusanGiri, indeed, this sounds like a good idea, but I think this isn't really an extensibility request/defect, but rather a small feature request (normally to be logged on aka.ms/bcideas).
SMTP Connector is open-sourced here on GitHub, would you be interested in contributing code directly to introduce this functionality? 😊

Closing issue, as this isn't a extensibility request/defect. Please either log idea or submit a PR for us to process.


User preference for 24-hour versus AM/PM

Would be nice if a user could specify which they want to see by default.

I think I'm going to try and start with this one, @moveson.

@LivInAbsurdism Sounds great. Looking forward to seeing what you have in mind!


API to get list of alarms and timers

Are alarms and timers stored on the device somewhere?
It would be nice to have an API to get at the list of alarms and timers. As a bonus would be an API to create and update them as well.

@joeferner can you confirm which python packages you're using? (google-assistant-grpc or `google-assistant-library' ?)

I'm using google-assistant-library. Didn't think the grpc had alarms at all.

+1


DEPLOY - Repo formatting & Readme

Readme complete with

relevant subheadings filled.
Links to repo and project included
gif/img of deployed product
MIT licence added
Proofread
(including a unique name, description, technologies used, screenshot, and link to the deployed application).

mit licence to be added


"exectuor" → executor

Spelling error on "exectuor-memory" here: https://github.com/SparkTC/spark-bench/blob/master/PageRank/bin/yarn-run.sh#L28
It makes the script fail.

Thanks for submitting an issue to spark-bench!
Spark-bench has recently gone through a major rewrite, and it looks like this issue is targeted towards the legacy version.
If you'd like to reopen this issue for examination against the legacy branch feel free, but I am going to close this for now due to inactivity.


Favourites section issue, when no items are added to favourites its throws errors

When no favorites are added it shows null pointer issue in that section need to handle it and add UI for same.

Revamped the UI and UX for this and also fixed the bug


Number of available search results

Hi
It could be nice if you exposed the number of search results in the UI on the "Apps" overview page (e.g. https://appcenter.ms/orgs/MyOrg/applications). I can see that it is already there somewhere, because if I select everything on the page with "cmd+a" and paste it into a text editor there is actually a line saying e.g. "12 results are available" - but I cannot see it anywhere in the UI or maybe I just haven't found it yet? This feature is useful for e.g. finding out how many apps you actually have for a given search string to see if it matches the expected amount or if you've deleted/added all the apps you wanted to.
Best regards
Jens

This feature request is still wanted.

Hi bot
This is still very much a feature request but no one from the AppCenter team has responded to it. Please keep it open.


MB-11814-advance-backend

Jira ticket for this change
Summary
This PR is complete when:

[ ] The properties advanceRequested and advance should be added to the UpdatePPMShipment request definition in internal.yaml.

[ ] The property advance should be added to the PPMShipment response definition in internal.yaml

[ ] The payload to model functions and model to payload functions for PPM shipments should be updated to transform values from one to the other.

[ ] Add a boolean pointer field to the PPMShipment model for the advance_requested field that exists in the database but is not defined on the model.

[ ] In the ppm_shipment_updater service the mergePPMShipment method is updated to incorporate the advance fields

[ ] clear an existing advance value if the advanceRequested is marked as false

[ ] New validation rules areadded to prevent an advance from being set above the estimated incentive amount, an advance with a value less than 1, or advanceRequested being true and with no advanced amount provided.

[ ] A migration for the new field advance_requested and updated comments for advance

Setup to Run Your Code

##### Terminal 1
Regerate the server if it is not up to date
make server_generate

Terminal 2
Run tests
go test ./pkg/services/ppmshipment --testify.m TestMergePPMShipment -v

Verification Steps for Author
These are to be checked by the author.

[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

Verification Steps for Reviewers
These are to be checked by a reviewer.

Backend

[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.

Database
Any new migrations/schema changes:

[ ] Follows our guidelines for Zero-Downtime Deploys
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

Screenshots

Messages

:book:
:link: MB-11814

  Generated by :no_entry_sign: dangerJS against abd760cc5a7ba00c537ca7997a026d01e0e3726d

When I integrate with Pearl's PR I get this validation error when going over the 60% of the estimated incentive.  My understanding was this is supposed to be a soft validation to match the frontend and that we would only return an error if it exceeded the estimated incentive value itself. @pearl-truss

When I integrate with Pearl's PR I get this validation error when going over the 60% of the estimated incentive. My understanding was this is supposed to be a soft validation to match the frontend and that we would only return an error if it exceeded the estimated incentive value itself. @pearl-truss

I'm not seeing that error in my branch that has some of the changes from this branch pulled in


Problem streaming PDF on IPad

Hello,
I'm have an application that is streaming a pdf from server to client and then displaying it using pdf.js.  I finally got it working on desktop browsers but on the Ipad I get the error "file origin does not match viewwer's".  Here is the javascript code which I am using to pull the pdf stream (FileStreamResult) from the server and then load it to pdf.js:
    var xhr = new XMLHttpRequest();
    xhr.open('GET', '/DataProfile/GetPdf?projectId=M2419', true);
    xhr.responseType = 'blob';

    xhr.onload = function (e) {
        if (this.status == 200) {
            var blob = new Blob([this.response], { type: 'application/pdf' });
            var url = URL.createObjectURL(blob);

            var viewerUrl = '/pdfviewer/viewer.html?file=' + encodeURIComponent(url);
            $("#frmMain").attr("src", viewerUrl);
        }
    };

    xhr.send();

I'm guessing that for some reason the createObjectURL method is generating a url with a different origin even though it works just fine on all desktop browsers.  Any help would be appreciated.

The generic desktop viewer does not allow viewing cross origin URLs by default (see #6916). I wonder if iOS does not support URL constructor properly and PDF.js uses polyfill (at https://github.com/mozilla/pdf.js/blob/master/src/shared/util.js#L1681) which doesn't detect right origin for blob: URLs.

@mdstevens40 Can you provide iOS and Safari versions? Can you also verify if polyfill is used and also if createObjectURL() result contains origin information, e.g. "blob:http://mozilla.github.io/8af29137-6747-a642-89fc-e5d0db1dea3d"?


Component:  Masthead:  Accessibility - Masthead Search open by default - Voice over iPhone - controls which aren't visually present are read.

Detailed description
Device - iPhone
Pattern / Component - Masthead - Search by open default
Issue :-

visually only Search  edit combo , search icon, close icon and the text "stock chart"
is present , but for screen reader users  screen reader is reading  controls which are not available visually.
for example hamburger menu, IBM logo link,  user profile button etc.
screen reader is not identifying the mentioned controls, screen reader users will not come to know about the presence of the mentioned control in left and right swipe.
Note: in form navigation screen reader is identifying the mentioned control.

NOTE: The above issues are present on  Web components as well, need to fixed.
Expected :-

screen reader should not read visually hidden components
Screen reader should identify the control.

@kennylam Another bug that I am closing based on the MegaMenu discussions in the 7/13 QA meeting.


[swagger-maven-plugin-jakarta] Same OpenAPI used while generating two files in two executions

While using following config of the plugin and 2 executions which should result in 2 separate open API generations -> only the first config is taken and both generated files contain the same content.
Please fix this so that each execution takes their own config and generates the correct API.
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-maven-plugin-jakarta</artifactId>
                <version>2.2.17</version>
                <executions>
                    <execution>
                        <id>id1</id>
                        <configuration>
                            <outputFileName>file1</outputFileName>
                            <outputPath>apis/</outputPath>
                            <outputFormat>JSON</outputFormat>
                            <configurationFilePath>${project.basedir}/src/main/resources/swagger-1-config-file.json</configurationFilePath>
                        </configuration>
                        <phase>compile</phase>
                        <goals>
                            <goal>resolve</goal>
                        </goals>
                    </execution>
                         <execution>
                        <id>id2</id>
                        <configuration>
                            <outputFileName>file2</outputFileName>
                            <outputPath>apis/</outputPath>
                            <outputFormat>JSON</outputFormat>
                            <configurationFilePath>${project.basedir}/src/main/resources/swagger-2-config-file.json</configurationFilePath>
                        </configuration>
                        <phase>compile</phase>
                        <goals>
                            <goal>resolve</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

duplicate of #4471


Custom signing task to ignore sigstore sigs

This is the best I could do for this :shrug: ?
@ljacomet @vlsi wdyt?
It's basically re-implementing parts of the sign extension/task internals to ignore sigstore files. It not fully featured (doesn't handle whenObjectRemoved, etc)

I would rather expose it as dev.sigstore.unsign-sigstore-pgp plugin which removes pgp signatures if added by Gradle.
Then everybody can use the plugin as they see fit as long as https://github.com/gradle/gradle/issues/26760 is still open.
WDYT?

Sure, is it possible for it to just be a configuration setting on the sigstore sign plugin?

There might be use cases for not using sigstore's "sign everything with sigstore" dev.sigstore.sign plugin, however, users might still want to "unsign .sigstore.asc".
So the feature of "unsigning" is a well-defined one, and it fits for a new plugin just fine.
Of course, our umbrella dev.sigstore.sign plugin could automatically apply dev.sigstore.unsign.pgp (and allow an escape hatch), however, it makes perfect sense to factor unsign into its plugin.
See https://docs.gradle.org/current/userguide/designing_gradle_plugins.html#capabilities-vs-conventions for more details:

One way to provide these quality criteria is to separate capabilities from conventions. In practice that means separating general-purpose functionality from pre-configured, opinionated functionality

"unsign pgp" is a capability while "dev.sigstore.sign" is a convention to "sign everything with sigstore and unsign sigstore.pgp"

gotcha, is this something you might have some bandwidth for right now?