Build issue (Docker CLI bug) - no meta tag updates

Due to  https://github.com/docker/cli/issues/954 : tags are not updated correctly by script. Must delete them before update.

Worked around in fb07b15ff774dfad474f38dfb1d2cf4cfff5a807


[FLINK-17458] Stop TaskSubmissionTestEnvironment.testingRpcService when closing the environment

Stop TaskSubmissionTestEnvironment.testingRpcService when closing the environment

Thanks for the review @XComp. Merging this PR now since the failing test case is unrelated.


Do not check that CSV files are rectangles

Hey :)
Sometimes we want to upload CSV files that are not perfect rectangles. Like, some lines have 10 fields, some have 7.
By default Go checks against that. This small commits changes this. I think it's not the role of your tool to check whether our CSV makes sense.
WDYT?
Have fun :) happy hacking, super useful tool.
Matcha

Thanks @matchaxnb... sorry I didn't notice this PR until now!
I agree that by default the tool should accept any shape of data. I can imagine some cases where it would be nice if an upload would fail for non-rectangular data... but if anyone ever needs that, we could expose it as an option with a --rectangular flag or similar.


esp/gpio_regs.h: Add info about strapping pins captured in GPIO.IN register.

Specifically, in the high 16 bits of GPIO.IN register.

@pfalcon Thank you for the contribution!


Frame capture testing tool

Objective

Provide a way to test the rendered output images from various scenes.
Implements #4572 as a testing tool. This should allow us to start using this functionality for testing without needing to settle on the ideal API for inclusion in the engine first.

Solution

A plugin for copying images from vram back to an Image
A plugin for testing scenes.
An example test scene.

There would be a folder of test images,
Currently main.rs creates a new bevy app and tests with an example scene. The .run() returns after the test so there could be a set of scenes tested here (or elsewhere if appropriate)

Cool! I'll give this a review another time, but just wanted to note an initial thought: it would probably be good to integrate into scene_viewer so we can load scenes and take screenshots of those, then compare against references or something for regressions testing. Maybe we'd need to add some kind of configuration file for scene_viewer to be able to set up some known configurations (camera, lighting, etc) for tests.

Very cool! This is a great resource. I used some of this code to build a plugin for exporting image sequences out of Bevy: https://github.com/paulkre/bevy_image_export
Unfortunately, it doesn't work with the 2D pipeline yet (2D shapes are invisible in the output image). Using a RenderTarget::Image for a 2D camera works fine though. It seems like the copy_texture_to_buffer method is being called too early in the pipeline. I can't figure out where to insert the custom "image copier" node in the render graph, so that it runs after 2D shapes have been rendered.

Apparently, a 2D camera does not work properly if it is parented to another 2D camera. I could not find the source of the problem though.

I have been trying this out, and I think that as it is written it only works correctly for images which have a width of a multiple of 256.
It seems that two different padded_bytes_per_row are being used:
https://github.com/bevyengine/bevy/blob/0aa4a49863421d3f102246924de10ac515c77113/tools/frame_capture/src/image_copy.rs#L87-L88
https://github.com/bevyengine/bevy/blob/0aa4a49863421d3f102246924de10ac515c77113/tools/frame_capture/src/image_copy.rs#L150-L153
Changing the first one to:
 let padded_bytes_per_row =
            RenderDevice::align_copy_bytes_per_row((size.width) as usize * 4);

produces the same padded_bytes_per_row in both situations and produces the correct image regardless of width.

@AlanRace Good catch! I need to figure out how to make it not depend on there being 4 color channels though. Will probably reference https://github.com/gfx-rs/wgpu/blob/c434b94ca20e9ccab8b0afdd7406c595dd37e7c3/wgpu/src/util/device.rs#L112

@DGriffin91 Hello, I want to use your tools, but I got this error. Is there something to need before cargo run?
thread 'Compute Task Pool (1)' panicked at 'called `Result::unwrap()` on an `Err` value: IoError(Os { code: 2, kind: NotFound, message: "No such file or directory" })', tools/frame_capture/src/scene_tester.rs:177:22
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at 'task has failed', /Users/gim-yujin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.4.0/src/task.rs:452:45

@Youdiie I'm guessing that's because this test_images dir doesn't exist. https://github.com/bevyengine/bevy/pull/5550/files#diff-630fc550358d7e46d3891918b8dd2edb1a225c06337f82b07ce657ac9afadba8R165
Not sure if you are aware of the new screenshot feature that landed in bevy 0.11, if you can do what you need with it, it would be probably easier than trying to use this code: https://bevyengine.org/news/bevy-0-11/#screenshot-api

@DGriffin91 Thanks for replying!
I wanted to save high quality frame capture and couldn't resize with screenshot feature in bevy 0.11.
Thanks for @paulkre, I could resize frame capture with bevy_image_export.


Webpack error

When i run webpack, i have some error.
Module parse failed: Unexpected token (4:7)
File was processed with these loaders:

./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.

Project: https://github.com/huijiewei/react-agile-ui

When upgrading packages I'm also seeing a similar error:

Gatsby is also reporting this as a webpack error:

I could try to bisect the package versions later this week.

I have the same problem in my project.

I tried to figure it out using the create-react-app example
(https://github.com/hactrz/vanilla-extract-example), but got a new error:

Thanks for the report. Fix should be out soon.

@hactrz In your vanilla-extract-example you're adding the babel plugin on the wrong line so it's not being registered at all, hence the dynamic styles error. Swapping lines 423 & 424 might be enough to get you going.
https://github.com/hactrz/vanilla-extract-example/blob/0f73188fbf53bfbb95fb387e38fb6f5b19733cca/config/webpack.config.js#L423


Update README.md

updated readMe

Add a one-liner description like "Open-Source Native App Framework Created by Google"

@fs0sp can you make a cleaner single PR for the resources? Also, one which adheres to the comments I provided in the previous PR

Closing this out


Change the background color for all answers completed from green to orange

This is for the acordian headings when all answers have been completed.  Note: not all answers need to be correct, just completed.
The orange matches the color in the OpenChain logo.
Suggested by @shanecoughlan to avoid confusion with all answers being correct.
Signed-off-by: Gary O'Neall<EMAIL_ADDRESS>

Note: the color code was taken from the OpenChain main website buttons of the same color.


BigQuery metadata extractor doesn't fully work

The extractor was tested on a limited dataset and I found that when there are > pagesize tables in a dataset, the pager doesn't work properly, because it's calling datasets() instead of tables().

pr is merged. Issue is closed now. Thanks @gtoonstra .


wagtailcore.models.Site should probably inherit from django.contrib.models.Site

I thing it would make sense for Wagtail Site to inherit from Django Site. Right now Django's sites are independent of Wagtail's which makes a huge configuration mess for some third-party Django apps relying on Django sites but not Wagtail sites.

Hi @ppershing,
There's not enough detail here to evaluate this suggestion, sorry. If you can give a description of the specific problem you're having, and how inheriting from django.contrib.models.Site would fix it, then we'd be happy to consider this further.

The specific problem is probably just more nuisance.
Because Wagtail sites and Django sites are completely independent (and the latter is not visible in the Wagtail admin), it takes quite some time to track down issues where third party apps use "example.com" as a domain for various tasks. This happened to me with django-comments-xtd but I can see that the same thing will happen for anybody using django-registration or generally any other Django app that uses sites framework.

I have also experienced this problem. We solved it by writing code that syncs Wagtail sites to Django sites every time a Wagtail site is modified. Making Wagtail sites extend Django sites via MTI would ensure they are kept in sync, and third party apps will work as expected.

I'm not sure I would characterise it a mere nuisance! I must have spent the past day trying to work out why installing Wagtail impacted functionality on other parts of my site...
wagtail.wagtailcore.middleware.SiteMiddleware is fundamentally incompatible with django.contrib.sites.middleware.CurrentSiteMiddleware as they both set request.site. But the Wagtail Site object does not have the same field names as the Django Site object. Specifically, the Django Site model uses domain and name, whereas the Wagtail Site model uses hostname and site_name.
No warnings are given when the clash occurs--functionality just disappears.
At a minimum, the clash should be documented in the Wagtail installation notes at Integrating Wagtail into a Django project. (also in the Puput docs.).
I'm note sure which Site model came first. The Django version is documented as far back as Django 1.7. I am also not familiar enough with Wagtail to have a view as to whether the two Site models are conceptually similar. They certainly look similar. But the Django sites framework is an official part of Django and is used by many other apps.
I would say the options are:

Make Wagtail Site object inherit from the Django Site object; or
Sync between the two objects using signals; or
Change the names of the properties on the Wagtail Site model to match those on the Django model and document a warning that the two bits of middleware should not be used at the same time; or
Add properties to the Wagtail Site object which match those of the Django Site object and pick up the relevant fields from the Wagtail object, again with appropriate documentation.

Personally, I am currently trying to work out how to globally monkey patch the Wagtail Site object for my project to achieve 4 above. I think the long-term solution is 1.
Given that this is a fundamental clash with the Django project, and a potential source of frustration and wasted time for new to Wagtail developers, which can discourage people from the project, it is not clear to me why this issue is closed.

This is a tough one for sure.
While I agree that 1 is the cleanest out of all the proposed solutions, it's still not ideal. With multi-table inheritance, there are obvious performance-related issues to consider - particularly since wagtail.wagtailcore.middleware.SiteMiddleware attempts to populate request.site for each request. The two models also take significantly different approaches to solving the same problem - the updated model would have to store the same data two different ways... forcing us to override clean/save methods to ensure both are populated correctly.
I feel like part of the solution should include the introduction of a new Manager with built-in caching to help mitigate the performance-related issues (similar to that which Django's Site model uses, and also the refactoring of wagtail.wagtailcore.middleware.SiteMiddleware to use a lazy object for  request.site, so that queries don't occur until they are needed.

I am not sure I would call it two different purposes but whatever, I guess they should be kept in sync even if they are different. In the meantime, can we maybe explicitly warn users that they may need to edit also Django's sites? Best would be when you hit the save button.

@ppershing There is no need to warn users that they may to also edit the Django sites model, because the two pieces of middleware are straight out incompatible! They both set request.site and the model you get in the variable depends on the ordering of the middleware calls in settings.py. The warning in the docs. should be that you can't use both, and that if you are already using the Django sites model in your project expect to see any code or template references to the domain and name variables break.

A few days ago i was trying to use django allauth to integrate SingleSignOn into my wagtail project only to find out that wagtail doesnt play well and even breaks the Sites framework of Django.
After reading this conversation i understand that wagtail has some other needs, but why not rename the wagtail Site and thus not breaking 3rd party modules? @gasman?

The model name isn't the issue - Django can still distinguish them because they exist within different apps. The issue is that both Wagtail and Django have middlewares that try to set request.site, which is why I'm proposing to eliminate Wagtail's middleware in #3834.

Awesome plan! Im looking forward to that rewrite! Does the real-soon-now milestone refer to sometime this or early next year? I know that you cant promise anything .. just a mere guess?

@kakulukia real-soon-now roughly translates as: "no-one on the core team has resources allocated to work on this right now, but we know it's a pain point, and it will be prioritised whenever we next get a chance to choose something new to work on."
In practice, that kind of free choice doesn't happen very often - there are lots of pressures determining what we work on from day to day. Realistically, we won't get to it this year - we have a full quota of tasks for the Wagtail 2.0 release due in December (see https://github.com/wagtail/wagtail/projects/1). Early next year is possible, but it's much more likely to happen if someone outside the core team contributes it as a pull request.

Thx .. i might look into this myself then depending on the urgency of this feature

As i can see, the question is still open.
Is there a way to get Django-Allauth work with Wagtail? Workaround, maybe, or other oauth packages could be suggested?

I need wagtail and allauth as well. Have you found any workarounds?

We postponed the feature. I’d didn’t have the time to look into the issue.

I agree that there should be a note in the docs under Integrating Wagtail into a Django project that says "Wagtail is incompatible with any Django app that depends on the Django sites framework". I'd love to find a solution to this so that allauth is usable, but docs would be helpful in the mean time.

To be more specific, it's incompatible with django.contrib.sites.middleware.CurrentSiteMiddleware - projects that use the Django sites framework but not that specific middleware should be OK, I believe. Happy to add that to the docs (or accept a PR if someone else gets round to it first)...

PR opened to add this note to the docs: #5523

Current work on eliminating Wagtail's SiteMiddleware (as proposed in #3834) is open as PR #5332. Note that this might need updating to account for the Page.dummy_request changes in #5427.

Does https://github.com/wagtail/wagtail/pull/5787 being merged mean that m Wagtail should be compatible with allauth?
I've been lurking for a few years now waiting for Wagtail to support allauth (or just some kind of oauth).
Is now the time to dive in and try to make them work together? Is master/current 2.9 in a stable enough state to try it out (on non prod deployments of course)?

@Ramblurr Definitely worth a try, yep. Master should always be in a usable state - I'd suggest trying the nightly build from https://releases.wagtail.io/nightly/index.html .

@Ramblurr They have always been compatible.
from django.contrib.sites.models import Site as ContribSite
from django.dispatch import receiver
from wagtail.core.models import Site as WagtailSite

@receiver(post_save, sender=WagtailSite)
def myhandler(sender, **kwargs):
    ''' create a new contrib site based on the wagtail site instance or update or anything you desire '''


Addition of two more headers

I added two headers to the later part of the talk.

Yay!!! Another contribution by @aernlund 🐻


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/85403

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/89601

Triggering TagBot for merged registry pull request
This extra notification is being sent because I expected a tag to exist by now, but it doesn't.
You may want to check your TagBot configuration to ensure that it's running, and if it is, check the logs to make sure that there are no errors.

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/111835


acts-as-taggable-on missing from gemspec?

I'm using blogit on rails 4, so I bundled the gem from the rails4 branch. After finishing the installation instructions, I encountered this error:
undefined local variable or method `acts_as_taggable' for #<Class:0x007fd01890a728>

I'm assuming this is because 10bce41fb1a7e04c9f9cb0d982bc77a462ce47db added the acts-as-taggable-on dependency to the Gemfile instead of the gemspec?
I was able to get the app working by adding this to my own Gemfile:
gem "acts-as-taggable-on", github: "mbleigh/acts-as-taggable-on"

I'd be happy to submit a pull request if someone can confirm that updating the gemspec is the proper solution.

I"m still getting this error in the rails4 branch

Same here.

Fixed in version 1.0.0


Switching Scene Collections crashes OBS

This happens when switching from a Scene Collection that uses discrop to another that doesn’t use it. I can only make it happen on complex enough scenes…

It crashes silently without any info in the log or the crashes folder, so I don’t know what to do.


Control when session cookies get set

When using the SessionMiddleware, any user gets a session cookie as soon as he visits the page.
In order for any AdonisJS app to be GDPR-complient, this cookie can only get set after the user gave their consent or when the cookie is strictly required for the website to work. In this case, the cookie is not required yet (only when the user is trying to sign in) but with AdonisJS I can't find a way to block setting the session cookie before consent is given.

Hey @AbinashMaharaj! 👋
I may be wrong, but I believe the current behaviour is GDPR-compliant.
It wouldn't be if you directly use this cookie to track the user and save information about him.
If you have more information, could you please link any source saying that GDPR remove the usage of Cookie by default?

Closing since not actionable.


Do not resolve FileCollections in non-file task inputs

FileCollection instances should not show up as regular @Input properties.

@bot-gradle test QFL please.

OK, I've already triggered the following builds for you:

QuickFeedbackLinux build

@bot-gradle test QFL please.

OK, I've already triggered the following builds for you:

QuickFeedbackLinux build

@bot-gradle test QFL please.

OK, I've already triggered the following builds for you:

QuickFeedbackLinux build

@bot-gradle test and merge this.

No milestone for this PR. Please set a milestone and retry.

@bot-gradle test and merge please.

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.

Pre-tested commit build failed.

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.

Pre-tested commit build failed.

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.


⚠ ClamAV has degraded performance

In f79b36f, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 55 ms

Resolved: ClamAV performance has improved in b6aa259 after 15 minutes.


[wxchartdir] update to 2.0.0

Fix #24315
Update [wxchartdir] version to 2.0.0
Note: no ferature need to test

Thanks for the update and quotes!


Rework the setup.cfg with the help of configparser

Using string.template for more complicated templates like setup.cfg is quite cumbersome and would also not allow to update setup.cfg in case of new versions. We should use configparser instead to create setup.cfg as well as to update it later on.
This can be postponed to version 3.1 since an update from pre 3.0 versions will not be possible anyway.

This issue seems to be actually way more complicated than initially thought. After some investigation there seems to be no Python package right now that allows to read, manipulate and write a config file without potentially changing the order of the key/value pairs and dropping all comments of the original config file.
I appreciate any hints on this.

The order of the key/value pairs seems to be easy to be kept if an OrderedDict is used, however keeping the comments is a little bit trickier...
In order to write comments, PyScaffold would have to use some hacks, but storing the comments in a read operation, changing the options and then writing seems pretty much impossible.
In order to do that, PyScaffold would need something that reads the cfg file and returns an AST, but I don't think this is somehow easily available.
Are there other alternatives than writing a parser by hand?

Maybe the alternative is to check if large parts of Python's internal configparser could be used. Using an OrderedDict at least keeps the order when reading a config file. No we would just need to include comments somehow and make sure that they also are written back.

I am trying to implement the needed functionality in an own project named ConfigUpdate that can later be included as contrib package. It's making good progress but needs some more time.

@abravalheri, I just released a first 0.1 version of ConfigUpdater. Let me know what you think.
My next step would be now to include it into PyScaffold and use it to allow updating setup.cfg from version 3.0 to version 3.1, i.e. moving setup_requires and options.entry_points over as well as updating the pyscaffold section.

Done


Revert "Change person class"

Reverts AY2021S1-CS2103T-W10-3/tp#13
fails the tests

Hey, i think this revert is not needed anymore since we're reverting an earlier version of the repo in PR#16


Using Regionmask to mask bottom

Addresses #193
Successfully tested this on the 2017 and 2019 survey data.

@valentina-s Thanks for the review, I'll push some changes soon to address your comments!


Adding reverse/ addition/substration operations to the Polyline class

Details:
Polyline(A,E) + Polyline(E,M) = Polyline(A,M)
reversed(Polyline(M,A) = Polyline(A,M)
Polyline(A,M) - Polyline(A,E) = Polyline(E,M)

I suppose if a task wanted to force a particular destination, it could send only that one - those that want to let the walker decides will send multiple requests

To add a bit of context to @mjmadsen comment.
We had a chat on gitter.im and the driving force behind the purpose of this change is so that we can prioritise cell_worker tasks an precompute a walking route...
For this to work the best I would need to modify the Polyline class to support the operations mentioned above in order to be able to re-use Polyline objects as line segments that we can put together or split as we'd want.


Testing React-Capacitor App with Jest getting me wasm file error

Hi y'all 👋 I use this library via the capacitor-community/sqlite library within my application. I am hoping to write some unit tests with Jest where each test has a db instance that I can seed and use to test. I've ran into an issue implementing this db instance in my test file where jeep-sqlite cannot load the specified wasm file. Here is my test file I am trying to implement
import { resolve } from 'path';
import { CapacitorSQLite, SQLiteConnection, SQLiteDBConnection } from '@capacitor-community/sqlite';
import { defineCustomElements as jeepSqlite, applyPolyfills, JSX as LocalJSX  } from 'jeep-sqlite/loader';
// ...

const dbName = config.databaseName;

type StencilToReact<T> = {
    [P in keyof T]?: T[P] & Omit<HTMLAttributes<Element>, 'className'> & {
        class?: string;
    };
} ;

declare global {
    export namespace JSX {
        interface IntrinsicElements extends StencilToReact<LocalJSX.IntrinsicElements> {
        }
    }
}

applyPolyfills().then(() => {
    jeepSqlite(window, {});
});

it('test', async () => {
  const sqlite: SQLiteConnection = new SQLiteConnection(CapacitorSQLite);

  const jeepEl = document.createElement('jeep-sqlite');
  document.body.appendChild(jeepEl);
  const element = await customElements.whenDefined('jeep-sqlite');

  const assetPath = resolve(`${__dirname}/../../../public/assets`); // we've also tried '.../assets/sql-wasm.wasm'
  jeepEl.setAttribute('wasmPath', assetPath ); // attempt to set the wasmPath

  const sqlite: SQLiteConnection = new SQLiteConnection(CapacitorSQLite);
  await sqlite.initWebStore();

  const ret = await sqlite.checkConnectionsConsistency();
  const isConn = (await sqlite.isConnection(dbName, false)).result;
  let db: SQLiteDBConnection;
  if (ret.result && isConn) {
      db = await sqlite.retrieveConnection(dbName, false);
  } else {
      db = await sqlite.createConnection(dbName, false, 'no-encryption', 1, false);
  }
  try {
      await db.open();
  } catch (err) {
      // ...
  }
  // ...
}

And we get the following errors:
console.error
      Error: Error: connect ECONNREFUSED <IP_ADDRESS>:80
          at Object.dispatchError (<omitted>/node_modules/jest-environment-jsdom/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:63:19)
          at Request.<anonymous> (<omitted>/node_modules/jest-environment-jsdom/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js:655:18)
          at Request.emit (node:events:539:35)
          at ClientRequest.<anonymous> (<omitted>/node_modules/jest-environment-jsdom/node_modules/jsdom/lib/jsdom/living/helpers/http-request.js:121:14)
          at ClientRequest.emit (node:events:527:28)
          at Socket.socketErrorListener (node:_http_client:454:9)
          at Socket.emit (node:events:527:28)
          at emitErrorNT (node:internal/streams/destroy:157:8)
          at emitErrorCloseNT (node:internal/streams/destroy:122:3)
          at processTicksAndRejections (node:internal/process/task_queues:83:21) undefined

      at VirtualConsole.<anonymous> (node_modules/jest-environment-jsdom/node_modules/jsdom/lib/jsdom/virtual-console.js:29:45)

    console.warn
      Aborted(both async and sync fetching of the wasm failed)

      at E (node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:101:136)
      at ab (node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:102:149)
      at node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:103:256

    console.warn
      failed to asynchronously prepare wasm: RuntimeError: Aborted(both async and sync fetching of the wasm failed). Build with -sASSERTIONS for more info.

      at node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:158:377

    console.warn
      Aborted(RuntimeError: Aborted(both async and sync fetching of the wasm failed). Build with -sASSERTIONS for more info.)

      at E (node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:101:136)
      at node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:158:425

  ● getLookupRecordData › updateOfflineData › test db

    both async and sync fetching of the wasm failed

      at Object.Module.onAbort (node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:40:20)
      at E (node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:101:106)
      at ab (node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:102:149)
      at node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:103:256

  ● getLookupRecordData › updateOfflineData › test db

    RuntimeError: Aborted(RuntimeError: Aborted(both async and sync fetching of the wasm failed). Build with -sASSERTIONS for more info.). Build with -sASSERTIONS for more info.

      at E (node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:101:154)
      at node_modules/jeep-sqlite/dist/cjs/node_modules/sql.js/dist/sql-wasm.js:158:425

So I guess a two questions:

Is there anything that stands out as wrong above code?
Is there are preferred way to run jeep-sql lite in Jest (ie do we need mount the component within JSDom, or some other machanism?)
Are there any common gotchas when testing with jeep-sql?

Any hints would be highly appreciated! Thanks!

The solution that worked was spinning up a server before running the test. So we added the following scripts to our package.json:
  "scripts": {
    "serve": "cp node_modules/sql.js/dist/sql-wasm.wasm build/assets && serve -l 80 build/",
    "test": "{Your test script here}",
    "test:serve": "npm-run-all --parallel -r serve test",
  },

Then we ran npm run test:serve when running the test. The test:serve script serves a local host that jeepSqlite is trying to reach out to in order to retrieve the sql-wasm.wasm file.


helm: add ability to exclude alertmanager from kube-prometheus

Some of us use an external alertmanager. Add an option to exclude alertmanager. It still includes it by default.

thanks @cspargo


[Request] add streaming support

sqlite3 appears to have streaming support:
https://www.sqlite.org/c3ref/blob_open.html
There are several use cases where streaming would be hugely beneficial. Often data is received via a stream, and is written to a file piecewise, likewise for reading a large file. A common example would be a scraping library downloading and storing large json or html files, which need to be parsed at a later time. Storing those as strings in sqlite is preferred for structuring, but if the data is large enough that it is slow to read all at once, it makes sense store that data outside of the database. That is assuming we cannot stream the data to and from the database.
outstanding questions:

How feasible is this request?
does an open blob lock the database until it is closed?
do others agree that there is substantial value add here?

node-sqlite3 has a similar open issue: https://github.com/mapbox/node-sqlite3/issues/835

How feasible is this request?

It's feasible, but it would be a significant/large feature to support (see below).

does an open blob lock the database until it is closed?

Technically speaking, no. However, better-sqlite3 currently blocks any attempt to perform writes to the database while there are active reads on the same connection (see this issue). To support blob streaming in any reasonable manner, such a restriction would need to be lifted.

do others agree that there is substantial value add here?

I would personally argue that any large blobs (large enough to warrant streaming) should be stored outside the database. While it is possible to stream blobs in SQLite3, doing so is inherently an asynchronous task, which complicates things significantly. In Node.js, if you're reading from the database asynchronously, the rest your app (which might be handling network requests concurrently, etc.) might corrupt your blob if they modify the database while you're streaming. Your app would essentially have to use a different database connection for each network request, which is possible, but would have a drastic effect on performance.
If it can be proven to have substantial benefits, better-sqlite3 could support this feature in the future, but my current opinion is that it seems a bit like an anti-pattern.

Fair enough, I can see for obvious reasons why anything of an async nature is an anti-pattern for this library. Still, it would be neat if a small async sqlite library existed specifically for streaming.
This could address your third message nicely. A standard project would open two database connections, one for streaming large blobs, and one for inserting all other data. If a write happens to the row that is currently streaming, an exception will be thrown (which is exactly what sqlite will do if this happens)
const CREATE_TABLES_SQL_STR = '...'
const INSERT_FILE_INFO = '..'
const MARK_FILE_DOWNLOAD_COMPLETE = '...'

const Database = require('better-sqlite3')
const StreamDB = require('sqlite3-stream')

const database = new Database('./db.sqlite')
database.exec(CREATE_TABLES_SQL_STR)
const streamDB = new StreamDB('./db.sqlite')

const insertFileMetadataStmt = database.prepare(INSERT_FILE_INFO)
const markFileDownloadComplete = database.prepare(MARK_FILE_DOWNLOAD_COMPLETE)
const insertFileBlobStream =  streamDb.prepare('tableName', 'columName')

const writeFile = async ({ fileStream, originalUrl }) => {
  // blocking
  const info = insertFileMetadataStmt.run(originalUrl)
  // non-blocking
  await fileStream.pipe(insertFileBlobStream(info.lastInsertRowid))
  // blocking
  markFileDownloadComplete.run()
}

I am definitely not heaving the work onto you here! Instead Im just trying to gather interest and discussion.

Closing this as it's arguably solved via support for worker threads.

Closing this it's arguably solved via support for worker threads.

@JoshuaWise would you mind elaborating on this? Do worker threads solve the issue of reading/writing data all at once being too heavy? If you are referring to simply keeping a http connection open for a long time, worker threads arent necessary. there either.

Do worker threads solve the issue of reading/writing data all at once being too heavy?

Yes, that's what I meant to say.

I don't understand in what way using workers truly solves this, like I don't think I can just use workers to put a file that's larger than the amount of available memory I have in the database, right? Doesn't it just entirely move the problem to another thread?

const statement = db.prepare(sql);
db.exec('BEGIN');

inputStream // line by line
  .pipe(new Stream.Writable({
    write(chunk, encoding, next) {
      statement.run(chunk.toString());
      next(null);
    },
  }))
  .on('finish', () => {
    db.exec('COMMIT');
    callback(null);
  })
  .on('error', (error) => {
    if (db.inTransaction) {
      db.exec('ROLLBACK');
    }
  });

https://github.com/WiseLibs/better-sqlite3/issues/182#issuecomment-429213016


querySelector errors when resizing columns in 2.x

Using ember-light-table version 2.0.0-beta.4 and Ember 3.9, I am seeing these thrown when using the resize handles to alter a column's width, which breaks any following attempts to resize the same column:
TypeError: table.querySelector(...) is null [lt-column-resizer.js:89]
TypeError: null has no properties [lt-column-resizer.js:89]

It appears that the selectors here in /addon/components/lt-column-resizer.js are not finding a matching element and thus triggering the error -- compare to pre-2.x which used jQuery instead of querySelector, which IIRC will not error out if the selector fails. I'd guess this difference is most likely causing this issue.
Also to note, I attempted to work around this by turning on enableScaffolding in the table body, but it seems to still not generate the scaffolding cells -- poking around the templates, it seems these might only generate in the header when using sub-columns (I'm providing a flat column array).

@cwsault Thanks for reporting I'll try and look into this soon and hopefully ship a fix with beta5

@fran-worley FWIW, I think there may exist a deeper-running issue with resizing at the moment as well -- I tried adding in null checks locally (and also just adding some cells matching the selector to an extra table header/footer...), and while it does fix the errors, the header will only resize once (meaning until the mouse is released -- it expand and shrink freely until then).
Once released, future attempts to resize the same column only resize the main table cells, while the header cell remains the same size. It seems to be that during resizing, the width property of the table cell is altered, but on mouse release this value is assigned to style="width: n" and not altered by future resizings. Not actually sure where the style value is being set though; it still gets set even when I remove the lines I linked

I found few issues with the resizing(2.x), including:

query selector error(as mentioned)
header cells not moving while footer cells are being resized
the header resizing only once(GJ @cwsault on extensive description)

...I believe I already fixed all of those. I hope I will be able to make a PR tomorrow once I test everything.

@offirgolan @fran-worley Could you take a look at the fix I provided? We need this issue to be fixed, would be great to know when can we expect new version :)


Improvements

Lazy resolving of msbuild ensures proper take in account of the set version field
Generic windows msbuild resolving, without the need for hardcoding the versions.
Also, most important: I've changed from a StopException to a normal GradleException. It doesn't make sense to mark the task as successful if it didn't find msbuild IMO. Or is there a specific reason for that?

Will get back soon with the unix/os x generic resolving of xbuild :)

:shipit:


TypeError: Cannot read property 'service' of undefined

On the spaceDetails page, services can't be loaded due to the following error:
libs.min.js:100 TypeError: Cannot read property 'service' of undefined
    at application.min.js:3
    at Object.s [as forEach] (libs.min.js:7)
    at application.min.js:3
    at libs.min.js:109
    at h.$eval (libs.min.js:123)
    at h.$digest (libs.min.js:120)
    at h.$apply (libs.min.js:123)
    at n (libs.min.js:80)
    at O (libs.min.js:84)
    at XMLHttpRequest.D.onload (libs.min.js:85)

It is this part of the code:
        angular.forEach(response.data.services, function(service, i) {
          var objectService = {
            id: service.guid,
            name: service.name,
            servicePlan: service.service_plan.service.label + ', ' + service.service_plan.name,
            nrOfBoundApps: service.bound_app_count,
            dashboardUrl: service.dashboard_url,
            supportURL:'https://support.'+service.service_plan.service.label+'.com/',
            docsURL: 'http://docs.run.pivotal.io/marketplace/services/'+service.service_plan.service.label+'.html'
          };

Don't know if it is a general bug. Anyway, I am trying to fix it now.

Ok I see.. user-provided services do not have a service_plan field. That's why it crashes. You should check whether the service has a service_plan field and if not display -user-provides- or just skip it.


Second-person approval of a workflow

Summary
Record the user who creates a workflow, and the user who approves a step in the workflow using intermediate parameters, and make sure the user who approves the workflow is not the one who creates the workflow.
Currently it seems like we can record who approves a step using intermediate parameters in https://github.com/argoproj/argo-workflows/blob/master/workflow/util/util.go#L383-L386, and there's no way I can find it in the UI with the example in https://argoproj.github.io/argo-workflows/intermediate-inputs/#intermediate-parameters-approval-example and with SSO auth enabled.
Use Cases
This is needed for compliance use cases where we need a second person to approve some operations.

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Maybe just record the author information somewhere, e.g. in a configmap. And then load configmap as parameters to validate whether the approver is the same as the author.

We should consider having a dedicated input type for approval so we can support more logic validation logic and show a better UI for this particular input. Picking from a list of YES/NO enum is not the best UI for this case.
Something like this perhaps:
- name: whalesay
  suspend: {}
  inputs:
    parameters:
    - name: approval
       approval:
         groups: "approvers"

Maybe just record the author information somewhere, e.g. in a configmap. And then load configmap as parameters to validate whether the approver is the same as the author.

One thing to note is that author is different from executor. What we want is to have different approvers from the executor of the workflow.

We should consider having a dedicated input type for approval so we can support more logic validation logic and show a better UI for this particular input. Picking from a list of YES/NO enum is not the best UI for this case.
Something like this perhaps:
- name: whalesay
  suspend: {}
  inputs:
    parameters:
    - name: approval
      approval:
        groups: "approvers"

+1 on this. Having a group of approvers is also what we are looking for.
I'm happy to implement both functionalities.

Does there has any feedback regarding this enhancement?

@kangyanzhou do you have any progress on this feature? I started an identification of what needs to be done as this sounds like a very neat addition to the current flow.

@kangyanzhou do you have any progress on this feature? I started an identification of what needs to be done as this sounds like a very neat addition to the current flow.

No I never started working on it

I think we need to design an approach of doing this securely if we want to support it in core. This may also be a good use-case for a plugin as approval is nuanced and use-case specific (compared to Argo's genericism)
As I outlined in https://github.com/argoproj/argo-workflows/discussions/13079#discussioncomment-9848829, simple metadata or status changes would not be sufficient, as any user with edit access to Workflows could make the same changes and also impersonate anyone. It requires some care to do with proper security attributes.
In that comment, I mentioned that a CR for this purpose that only the Server could modify, similar to https://github.com/argoproj/argo-workflows/issues/6490#issuecomment-1961246329 would be more secure, but would still need some thought to make it function like an immutable audit log

Hi thanks for your extensive comment.
I tried to translate your comments into a visual proposal, maybe you can give some feedback on this as well?

As for the plugin, I will look into this for the short term. Would this allow me to make this plugin persist the approval data within the plugin and checking the authentication from the dex server and contiueing the workflow from its server?


Not an Issue, A Question

Is this the source for the black M3U player? Or is this just a rendered version prepped for sideloading onto a Roku? In other words, can the community start developing with this code alone or is there missing data?

black M3U was forked once from this project. I write some improvements when I see it is good and interesting, but not quite often, only when I know exactly what to write. sideload it if you like, it will work well. do you want to develop? I would be glad to see your pull request and investigate it.

Yes, I am interested in developing on it. However I cannot sideload the application because I am being told the manifest isn't correct.

Install Failure: No manifest. Invalid package.

First of all make sure you have your manifest in the root of the archive:
unzip -l YourApp.zip | grep manifest
and the second: if it doesn't work anymore, write your own, you're big boy now, I suppose :-)

LOL

Back on github.  Just forked over the project again and will try to merge the current m3ublack player code I have.  Appears I went to a different scenegraph template.  Not sure how this merging will work back to the original fork.

Keeping/merging the previous many changes made - "I had to rewrite many things, but he made good job." Might have it in a few days.

Install Failure: No manifest. Invalid package.

you have to unzip the folder, select all the files inside it and then make a new .zip without the folder (only the files inside it)


Get the admin console running with the new thirdparty library setup

Now that thirdparty libraries won't be JPF plugins, this will require some work to get the required libraries on the webstart classpath.

The admin console is runnable via SBT/Intellij now


Error: offset is longer than source length!  is thrown when I try to update inline snapshot

Describe the bug
node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^

Error: offset is longer than source length! offset 947 > length 278
    at Object.numberToPos (/home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/source-map-f7a4da05.js:3390:11)
    at prepareSnapString (/home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/entry.js:700:44)
    at replaceObjectSnap (/home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/entry.js:696:59)
    at replaceInlineSnap (/home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/entry.js:715:12)
    at /home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/entry.js:679:7
    at async Promise.all (index 0)
    at async saveInlineSnapshots (/home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/entry.js:671:3)
    at async SnapshotState.save (/home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/entry.js:839:9)
    at async packSnapshotState (/home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/entry.js:1007:18)
    at async SnapshotClient.saveSnap (/home/capaj/work-repos/mindmed/node-comparison/node_modules/vitest/dist/entry.js:986:20)

Reproduction
I have this spec file
import { beforeAll, describe, expect, it } from 'vitest'
import { request } from 'undici'
import prismaClient from '../prisma/prismaClient'

describe('suite', () => {
  beforeAll(async () => {
    await prismaClient.questionnaire.deleteMany()
    await (
      await import('../server')
    ).listenPromise
  })

  describe('questionnares', () => {
    it('should GET', async () => {
      const res = await request('http://localhost:9090/questionnaires')

      expect(await res.body.json()).toMatchInlineSnapshot('[]')
    })

    it('should POST', async () => {
      const res = await request('http://localhost:9090/questionnaires', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          accept: 'application/json'
        },
        body: JSON.stringify({
          name: 'test',
          description: 'test',
          questionnaire: []
        })
      })

      expect(await res.body.json()).toMatchInlineSnapshot(
        {
          id: expect.any(Number)
        },
        `
          Object {
            "description": "test",
            "id": Any<Number>,
            "name": "test",
            "questionnaire": [],
          }
        `
      )
    })
  })
})

when I run the tests, I get this:
AssertionError: Snapshot `suite > questionnares > should POST 1` mismatched
 ❯ api/apiRoutes.spec.ts:34:36
     32|       })
     33|
     34|       expect(await res.body.json()).toMatchInlineSnapshot(
       |                                    ^
     35|         {
     36|           id: expect.any(Number)

  - Expected  - 1
  + Received  + 1

  - Object {
  + {
      "description": "test",
      "id": Any<Number>,
      "name": "test",
      "questionnaire": [],

then I just hit u on the keyboard, error is thrown.
System Info
System:
    OS: Linux 5.13 Ubuntu 21.10 21.10 (Impish Indri)
    CPU: (24) x64 AMD Ryzen 9 5900X 12-Core Processor
    Memory: 7.60 GB / 62.75 GB
    Container: Yes
    Shell: 5.8 - /usr/bin/zsh
  Binaries:
    Node: 16.13.1 - ~/.nvm/versions/node/v16.13.1/bin/node
    Yarn: 1.22.17 - ~/.yarn/bin/yarn
    npm: 8.3.0 - ~/.nvm/versions/node/v16.13.1/bin/npm
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 97.0.4692.99
    Firefox: 96.0
  npmPackages:
    vitest: ^0.2.1 => 0.2.1

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

This is really hard to test with this reproduction, since I don't have other files.
Does this error still happen to you? If so, can you make a reproduction on Stackblitz?

Closed because of no activity/reproduction.

I have a minimal repro here: https://stackblitz.com/edit/vitest-dev-vitest-hopf5m?file=test/suite.test.ts

when it runs, just hit u key to trigger snapshot update and you will see the bug.

@sheremet-va can you please reopen?

any temp solution?


[bug]: "subprocess-exited-with-error" during execution of install.sh

Is there an existing issue for this?

[X] I have searched the existing issues

OS
Linux
GPU
cuda
VRAM
No response
What happened?
Hello,
I was executing install.sh when the installation was interrupted with the following error. Now I am stuck. I can't uninstall, I can't proceed with the installation. What can I do please?
(The code formatting is not working properly for some reason).
Collecting basicsr>=1.4.2
Using cached basicsr-1.4.2.tar.gz (172 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [114 lines of output]
/home/ernest/invokeai/.venv/lib/python3.10/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
warnings.warn(
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
WARNING: The wheel package is not available.
ERROR: Exception:
Traceback (most recent call last):
File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 437, in _error_catcher
yield
File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 560, in read
data = self._fp_read(amt) if not fp_closed else b""
File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 526, in _fp_read
return self._fp.read(amt) if amt is not None else self._fp.read()
File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 90, in read
data = self.__fp.read(amt)
File "/usr/lib/python3.10/http/client.py", line 465, in read
s = self.fp.read(amt)
File "/usr/lib/python3.10/socket.py", line 705, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3.10/ssl.py", line 1274, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib/python3.10/ssl.py", line 1130, in read
return self._sslobj.read(len, buffer)
TimeoutError: The read operation timed out
  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
      status = run_func(*args)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 247, in wrapper
      return func(self, options, args)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/commands/wheel.py", line 170, in run
      requirement_set = resolver.resolve(reqs, check_supported_wheels=True)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve
      result = self._result = resolver.resolve(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve
      state = resolution.resolve(requirements, max_rounds=max_rounds)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 348, in resolve
      self._add_to_criteria(self.state.criteria, r, parent=None)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 172, in _add_to_criteria
      if not criterion.candidates:
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/structs.py", line 151, in __bool__
      return bool(self._sequence)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in __bool__
      return any(self)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in <genexpr>
      return (c for c in iterator if id(c) not in self._incompatible_ids)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built
      candidate = func()
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link
      self._link_candidate_cache[link] = LinkCandidate(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 297, in __init__
      super().__init__(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 162, in __init__
      self.dist = self._prepare()
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 231, in _prepare
      dist = self._prepare_distribution()
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 308, in _prepare_distribution
      return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 491, in prepare_linked_requirement
      return self._prepare_linked_requirement(req, parallel_builds)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 536, in _prepare_linked_requirement
      local_file = unpack_url(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 166, in unpack_url
      file = get_http_url(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 107, in get_http_url
      from_path, content_type = download(link, temp_dir.path)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/network/download.py", line 147, in __call__
      for chunk in chunks:
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_internal/network/utils.py", line 63, in response_chunks
      for chunk in response.raw.stream(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 621, in stream
      data = self.read(amt=amt, decode_content=decode_content)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 559, in read
      with self._error_catcher():
    File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
      self.gen.throw(typ, value, traceback)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 442, in _error_catcher
      raise ReadTimeoutError(self._pool, None, "Read timed out.")
  pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
  Traceback (most recent call last):
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/setuptools/installer.py", line 82, in fetch_build_egg
      subprocess.check_call(cmd)
    File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['/home/ernest/invokeai/.venv/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmp5nuj9tss', '--quiet', 'nvidia-cudnn-cu11==<IP_ADDRESS>']' returned non-zero exit status 2.

  The above exception was the direct cause of the following exception:

  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "/tmp/pip-install-7_pmfkkf/basicsr_64d9fbad37964234be4314447a00a2e4/setup.py", line 147, in <module>
      setup(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/setuptools/__init__.py", line 152, in setup
      _install_setup_requires(attrs)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/setuptools/__init__.py", line 147, in _install_setup_requires
      dist.fetch_build_eggs(dist.setup_requires)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/setuptools/dist.py", line 812, in fetch_build_eggs
      resolved_dists = pkg_resources.working_set.resolve(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 771, in resolve
      dist = best[req.key] = env.best_match(
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1056, in best_match
      return self.obtain(req, installer)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1068, in obtain
      return installer(requirement)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/setuptools/dist.py", line 883, in fetch_build_egg
      return fetch_build_egg(self, req)
    File "/home/ernest/invokeai/.venv/lib/python3.10/site-packages/setuptools/installer.py", line 84, in fetch_build_egg
      raise DistutilsError(str(e)) from e
  distutils.errors.DistutilsError: Command '['/home/ernest/invokeai/.venv/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmp5nuj9tss', '--quiet', 'nvidia-cudnn-cu11==<IP_ADDRESS>']' returned non-zero exit status 2.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Screenshots
No response
Additional context
No response
Contact Details
<EMAIL_ADDRESS>

Hello,
The error makes it look as though there was a network issue preventing one of the required packages from downloading. If possible, I'd try to think about anything that could cause network issues (bad wifi reception, VPN, firewall, etc), and disable/fix them before trying again.
If you'd like to completely restart the install, you should just be able to delete the 'invokeai' folder from your home folder - the installer won't see anything there and consider it a fresh install at that point.

I have the same exact issue too . Also on linux and cuda .
I can't find any issues with my network everything works as it should . Could there be another reason? Thank you so much!

The issue was in the network. Many thanks for your help.

Maybe I should check again haha :)

It was disk space for me :)

I had the same problem while downloading pytorch and it was about network issue but the thing is I can't fix the network problem because of the place I live with restriction and so. Is there any way to manually download the torch .whl file and make it a cached file for the installer so the installer doesn't need to download it using "pip" (but install it from the cache) ?!

Same issue, I paused my vpn and the install ran great.


Bug in de-serialization of cv2 numpy image array

The commented code in train.py does not print the image as was before serialization!
Upon printing out the image through imshow, it just prints white washed image.
sess = tf.Session()
sess.run(tf.global_variables_initializer())
features, labels = train_input_fn()

img, label = sess.run([features['image'], labels])
print(img.shape, label.shape)

# Loop over each example in batch
for i in range(img.shape[0]):
    cv2.imshow('image', img[i])
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    print('Class label ' + str(np.argmax(label[i])))

Hi Vishal.
Sorry that my instructions in the comment might have been a bit vague. It actually works if you have the image data. But as I cast the image data to float in the parser it will not be the correct data to be printed in this commented code.
So to view the images you need to comment out this line in the parser
image = tf.cast(image, tf.float32)
Hope this helps.
Best regards
Daniel

Hi Daniel,
Thanks a lot! It does work. I somehow missed that original image was serialized from uint8 to string (or bytes) and reverse has to be done in de-serialization step.
Cheers,
Vishal


ImportError: cannot import name 'SO_REUSEPORT'

Hello!
I've encountered the following error:
ImportError: cannot import name 'SO_REUSEPORT'

After some googling around, I found this:
https://docs.python.org/3/library/asyncio-eventloop.html

reuse_port tells the kernel to allow this endpoint to be bound to the same port as other existing endpoints are bound to, so long as they all set this flag when being created. This option is not supported on Windows and some UNIX’s. If the SO_REUSEPORT constant is not defined then this capability is unsupported.

HTH

Hello @0asa, Windows support is currently under development, I'm aware of this limitation, anyway, many thanks!

I can confirm, the same issue happened on Ubuntu 16.04

On linux, this works as a workaround:
import socket
socket.SO_REUSEPORT = 15

I'm having the same issue on Arch Linux, linux version 4.17.14.arch1-1
Importing socket before vibora is imported, and manually adding the SO_REUSEPORT variable, fixes the issue.


Multiline imports, # unimport:skip comments, and isort formatting

isort (version 5.5.4) wants to relocate the # unimport:skip comments to a place where unimport doesn't recognize them.
Before isort (works)
from package import (  # unimport:skip
    module
)

After isort (doesn't work)
from package import (
    module
)  # unimport:skip

I'm starting with this project to ask if it's possible for unimport to recognize comments in this alternate formatting layout.

Nodes from ast in py3.6 and py37 do not have col_offset, end_lineno, end_col_offset attributes, so it does not seem possible, but it seems possible thanks to the get_source_segment function and these attributes in py3.8.
I will send a PR

No, my fault. I forgot that AST was ignoring whitespace and comment I couldn't find any result, I'll keep trying.


Editor Duplicating

Hi, I use react-codemirror2 7.2.1 and React 18, I got the editor duplicating. When I use React17, it worked fine. Is there anyway to fix ?

This issue is caused by a new feature in React18: https://reactjs.org/docs/strict-mode.html#ensuring-reusable-state
I saw this question for a friend, and solved this way. I simply removed the editor dom, there should be a more appropriate way.
function App() {
  const editor = useRef()
  const wrapper = useRef()
  const editorWillUnmount = () => {
    editor.current.display.wrapper.remove()
    wrapper.current.hydrated = false
  }
  return (

      <CodeMirror
        value='
I ♥ react-codemirror2
'
        ref={wrapper}
        options={{
          mode: 'xml',
          theme: 'material',
          lineNumbers: true
        }}
        onChange={(editor, data, value) => {
        }}
        editorDidMount={(e) => editor.current = e}
        editorWillUnmount={editorWillUnmount}
      />

  );
}

@jdz321 Thanks a lot! This works for me too. I'd like to add a note for the ones who use TypeScript like me: this is not type safe solution, since display and hydrated properties aren't exposed as public properties of the corresponding interfaces. So you'll have either to add type assertions to any for them, or add ignore comment. Sounds dirty, but the whole solution is a hack.

for anyone looking for TS solutions
          editorDidMount={editorElement => {
            (editorRef as React.MutableRefObject<
              codemirror.Editor
            >).current = editorElement;
          }}
          editorWillUnmount={() => {
            const editorWrapper = (editorRef as React.MutableRefObject<
              CodeMirror.Editor
            >).current.getWrapperElement();
            if (editorWrapper) editorWrapper.remove();
            if (wrapperRef.current) {
              (wrapperRef.current as { hydrated: boolean }).hydrated = false;
            }
          }}


multiple tooltips

is it possible to have 2 tooltips on the same chart while having them both custom?
i successfully used the formatter to create a custom tooltip, but i need to have another tooltip on the x Axis showing the date, is it possible to make it while also using the formatter?
thanks

Closing and there has been no activity in this issue for a while.
if this is still relevant, please feel free to reopen


pkg/bisect: add more tests for various possible bisection results

Add tests for the following cases(1 each for cause and fix):

bisection returns the correct commit
bisection failed due to crash not occurring on the original commit
bisection failed as crash occurs on oldest/latest commit
bisection is inconclusive

Codecov Report

Merging #1477 into master will increase coverage by 0.15%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1477      +/-   ##
==========================================
+ Coverage    56.2%   56.35%   +0.15%
==========================================
  Files         140      140
  Lines       26292    26292
==========================================
+ Hits        14777    14817      +40
+ Misses      10807    10775      -32
+ Partials      708      700       -8

Impacted Files
Coverage Δ

pkg/bisect/bisect.go
61.4% <0%> (+17.54%)
:arrow_up:

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 5ea87a6...48bfd2f. Read the comment docs.

Nice! These table-driven tests should be easy to understand, maintain and extend.


upgrade to clang17 in CI and build docs.

Describe what's wrong

we are using an old version clang16

brew 17.0.6 works correct with cmake ..
[0/2] Re-checking globbed directories...
[19/6513] Building CXX object contrib/...d.dir/__/libunwind/src/libunwind.cpp.o
In file included from /Volumes/41plus/proton/contrib/libunwind/src/libunwind.cpp:31:
In file included from /Volumes/41plus/proton/contrib/libunwind/src/UnwindCursor.hpp:83:
/Volumes/41plus/proton/contrib/libunwind/src/DwarfInstructions.hpp:104:23: warning: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost(). [-Wdeprecated-declarations]
  104 |   return ptr && (0 == syscall(SYS_mincore, (void*)(ptr / page_size * page_size), 1, &mincore_res) || errno == ENOSYS);
      |                       ^
/Applications/Xcode-beta 2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:748:6: note: 'syscall' has been explicitly marked deprecated here
  748 | int      syscall(int, ...);
      |          ^
1 warning generated.
[6505/6513] Linking CXX executable programs/proton
ld: warning: ignoring duplicate libraries: '-lpthread', 'programs/client/libclickhouse-client-lib.a', 'programs/server/libclickhouse-server-lib.a', 'src/Common/StringUtils/libstring_utils.a', 'src/libclickhouse_common_io.a'
ld: warning: __eh_frame section too large (max 16MB) to encode dwarf unwind offsets in compact unwind table, performance of exception handling might be affected
[6513/6513] cd /Volumes/41plus/proton/build_clang17/programs && /opt/homebrew/Cellar/cmake/3.28.0/bin/cmake -E create_symlink proton proton-klog-benchmark
re@res-Mac-mini build_clang17 % clang -v
Homebrew clang version 17.0.6
Target: arm64-apple-darwin23.0.0
Thread model: posix
InstalledDir: /opt/homebrew/opt/llvm/bin


HBASE-28703 Data race in RecoveredEditsOutputSink while closing writers

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 39s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
hbaseanti
0m  0s

Patch does not have any anti-patterns.

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
3m  5s

branch-2 passed

+1 :green_heart:
compile
2m 46s

branch-2 passed

+1 :green_heart:
checkstyle
0m 37s

branch-2 passed

+1 :green_heart:
spotbugs
1m 28s

branch-2 passed

+1 :green_heart:
spotless
0m 44s

branch has no errors when running spotless:check.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
2m 50s

the patch passed

+1 :green_heart:
compile
2m 45s

the patch passed

+1 :green_heart:
javac
2m 45s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 37s

the patch passed

+1 :green_heart:
spotbugs
1m 34s

the patch passed

+1 :green_heart:
hadoopcheck
10m  7s

Patch does not cause any errors with Hadoop 2.10.2 or 3.3.6.

+1 :green_heart:
spotless
0m 45s

patch has no errors when running spotless:check.

_ Other Tests _

+1 :green_heart:
asflicense
0m 10s

The patch does not generate ASF License warnings.

29m 52s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/6045

Optional Tests
dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless

uname
Linux 1f9b5129c3f9 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / fe75dedd48f65ed2609af8d0989503f966dfcdc4

Default Java
Eclipse Adoptium-11.0.23+9

Max. process+thread count
79 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/console

versions
git=2.34.1 maven=3.9.8 spotbugs=4.7.3

Powered by
Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 51s

Docker mode activated.

-0 :warning:
yetus
0m  6s

Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
4m  4s

branch-2 passed

+1 :green_heart:
compile
1m 12s

branch-2 passed

+1 :green_heart:
javadoc
0m 38s

branch-2 passed

+1 :green_heart:
shadedjars
6m  1s

branch has no errors when building our shaded downstream artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
2m 55s

the patch passed

+1 :green_heart:
compile
0m 54s

the patch passed

+1 :green_heart:
javac
0m 54s

the patch passed

+1 :green_heart:
javadoc
0m 25s

the patch passed

+1 :green_heart:
shadedjars
5m 46s

patch has no errors when building our shaded downstream artifacts.

_ Other Tests _

+1 :green_heart:
unit
205m 27s

hbase-server in the patch passed.

232m 21s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/6045

Optional Tests
javac javadoc unit compile shadedjars

uname
Linux 3b8e0403f53d 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / fe75dedd48f65ed2609af8d0989503f966dfcdc4

Default Java
Eclipse Adoptium-17.0.11+9

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/testReport/

Max. process+thread count
4426 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/console

versions
git=2.34.1 maven=3.9.8

Powered by
Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 40s

Docker mode activated.

-0 :warning:
yetus
0m  4s

Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
2m 35s

branch-2 passed

+1 :green_heart:
compile
0m 39s

branch-2 passed

+1 :green_heart:
javadoc
0m 24s

branch-2 passed

+1 :green_heart:
shadedjars
5m 17s

branch has no errors when building our shaded downstream artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
2m 20s

the patch passed

+1 :green_heart:
compile
0m 39s

the patch passed

+1 :green_heart:
javac
0m 39s

the patch passed

+1 :green_heart:
javadoc
0m 23s

the patch passed

+1 :green_heart:
shadedjars
5m 13s

patch has no errors when building our shaded downstream artifacts.

_ Other Tests _

+1 :green_heart:
unit
212m 13s

hbase-server in the patch passed.

234m 24s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/6045

Optional Tests
javac javadoc unit compile shadedjars

uname
Linux fc59c1cb38fb 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / fe75dedd48f65ed2609af8d0989503f966dfcdc4

Default Java
Temurin-1.8.0_412-b08

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/testReport/

Max. process+thread count
4292 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/console

versions
git=2.34.1 maven=3.9.8

Powered by
Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 42s

Docker mode activated.

-0 :warning:
yetus
0m  6s

Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+1 :green_heart:
mvninstall
3m 14s

branch-2 passed

+1 :green_heart:
compile
0m 48s

branch-2 passed

+1 :green_heart:
javadoc
0m 25s

branch-2 passed

+1 :green_heart:
shadedjars
6m 10s

branch has no errors when building our shaded downstream artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m  0s

the patch passed

+1 :green_heart:
compile
0m 49s

the patch passed

+1 :green_heart:
javac
0m 49s

the patch passed

+1 :green_heart:
javadoc
0m 25s

the patch passed

+1 :green_heart:
shadedjars
6m 23s

patch has no errors when building our shaded downstream artifacts.

_ Other Tests _

+1 :green_heart:
unit
228m 33s

hbase-server in the patch passed.

254m 57s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/6045

Optional Tests
javac javadoc unit compile shadedjars

uname
Linux fcb031166198 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / fe75dedd48f65ed2609af8d0989503f966dfcdc4

Default Java
Eclipse Adoptium-11.0.23+9

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/testReport/

Max. process+thread count
4055 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6045/1/console

versions
git=2.34.1 maven=3.9.8

Powered by
Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.


Slimmer function: new field

When executing a slimmer / function query: @cmungall @deepakunni3 is it ok to change the response to add a field "aspect" in assocs/object ?
Current response:
[
    {
        "subject": "MGI:88276",
        "slim": "GO:0008150",
        "assocs": [
            {
                "id": "4d4749094d47493a38383237360943746e6e62310909474f3a30303030313232094d47493a4d47493a333631333238327c504d49443a31363034303632390949444109095009636174656e696e2028636164686572696e206173736f6369617465642070726f7465696e292c20626574612031096265746120636174656e696e7c626574612d636174656e696e7c4361746e620970726f7465696e097461786f6e3a3130303930093230303630333037094d4749096861735f726567756c6174696f6e5f746172676574284d47493a4d47493a31333437343736290909",
                "subject": {
                    "id": "MGI:88276",
                    "label": "Ctnnb1",
                    "taxon": {
                        "id": "NCBITaxon:10090",
                        "label": "Mus musculus"
                    }
                },
                "object": {
                    "id": "GO:0000122",
                    "label": "negative regulation of transcription by RNA polymerase II"
                },
...

Desired:
[
    {
        "subject": "MGI:88276",
        "slim": "GO:0008150",
        "assocs": [
            {
                "id": "4d4749094d47493a38383237360943746e6e62310909474f3a30303030313232094d47493a4d47493a333631333238327c504d49443a31363034303632390949444109095009636174656e696e2028636164686572696e206173736f6369617465642070726f7465696e292c20626574612031096265746120636174656e696e7c626574612d636174656e696e7c4361746e620970726f7465696e097461786f6e3a3130303930093230303630333037094d4749096861735f726567756c6174696f6e5f746172676574284d47493a4d47493a31333437343736290909",
                "subject": {
                    "id": "MGI:88276",
                    "label": "Ctnnb1",
                    "taxon": {
                        "id": "NCBITaxon:10090",
                        "label": "Mus musculus"
                    }
                },
                "object": {
                    "id": "GO:0000122",
                    "label": "negative regulation of transcription by RNA polymerase II",
                    "aspect": "GO:0008150"
                },
...

For instance in the Ribbon, through part_of or regulates relationship, we retrieve MF annotations under BP aspect and inverse is true too. This could be used as a way to filter those results.

If we can have a generic field that can apply to all objects then that would be more aligned with the spirit of the BioLink Model. This field can refer to aspect when the object is an ontology term.
Perhaps this information can also be provided in 'meta' property of an object?
Ex:
{
    "object": {
        "id": "GO:0000122",
        "label": "negative regulation of transcription by RNA polymerase II",
        "meta": {
            "aspect":  "GO:0008150"
        }
    }
}

Note: Not sure if I am overloading the meaning of 'meta' here.

Well... if you want to put meta, then put also the label as the label of an object is IMO a meta, not the object itself nor a reference.
More generally, this triggers the question that we really have to simplify the complexity of the payload response. Right now, the slimmer function for 4 genes is 8mb of data to retrieve, that's a lot, and the more we add this kind of possibly useful abstraction, the larger those data transfer will be. In the same train of thoughts, I have a difficulty understanding why we repeat the whole "subject" structure for every "object" associated. We could still have a upper parent "assocs", then an intermediary parent being the "subject", and then the list of associated "object"
However, to have something more general and not specific to GO, we could name the field "parent_id" or "root_id". Anyhow, as long as this is not done, I have to rely on a temporary fix / API for that, which is not great.

@deepakunni3 any update on that ? Thanks !

 https://github.com/biolink/biolink-api/issues/238


add nix flake

What is this? Why is this? What problem does it solve?

Nix is a package manager and a programming language

It creates one universal description package builds and development environments, a bit like virtualenv in python, but for everything, not only python

Getting started with this repo is super easy. Let's presume two things: your computer has an internet uplink and you have a version of nix recent enough to support flakes installed. Now, what can you do?

nix flake run github:wucke13/eframe_template downloads, builds and executes my fork of the repo!
Suppose you have the repo checked out locally your PWD is the repos root dir: nix flake run . - the thing is build and executed!
Ok, most people probably want to modify the repo, and not only run it. I get it. Ok, with the repos root dir as PWD: nix develop .. A shell is launched, which has all required dependencies already in view. In this shell, you can just cargo run and eframe_template builds, all dependencies are readily available.
For the above, please note, that there really is no other prerequisite than having a recent nix installed, and something running which can display, e.g. an X server available via $DISPLAY and $XAUTHORITY. So the

sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev

from the README can be completely ignored when using nix.

Nix can be used on all Linux distributions, and to a certain degree on Darwin based OS's. The changes made should have no effect on non-nix users, e. g. the use of nix is completely optional.

As a consumer of the template, I find this would be creep/bloat for a template. This seems like something packagers exist for and should not be part of a getting started template.

This has nothing to do with packaging though. It only makes it trivial to build, run and develop this crate, on any Linux distribution. It can be compared with a configuration for GitHub Codespaces or a pre-built Docker image that has the dependencies installed.
I don't want to advocate for or against including this in the template, but I think there is at least no better place for such a file than inside the repository.

I guess there is no upstream interest in this.


Add a diff function for a file to the git plugin

E.g. Allow syntax like this:
ff files_modified.include? "Thing.xcodeproj"
  diff = git.file_diff "Thing.xcodeproj"
  fail "don't change team ID" if diff.include? "TEAM_ID"
end

I guess a file diff could have:

before all text that was changed
after all text that was changed
include? all of the text, for before and after

And then maybe expose the individual hunks if that's easily accessible?

Implemented in #385