Informix datetime reading error

Environment
Liquibase Version: 3.8.9
Liquibase Integration & Version: maven
Liquibase Extension(s) & Version: 3.8.9
Database Vendor & Version: Informix
Operating System Type & Version: Linux
Description
Liquibase try to read datetime from informix, it follows the formula https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.sqlr.doc/ids_sqr_027.htm
However the formula is not applied to Informix.
Getting the following error:
Caused by: liquibase.exception.UnexpectedLiquibaseException: liquibase.exception.DatabaseException: Encountered unknown firstQualifier code (1) for column 'informix.databasechangelog.dateexecuted', basic date type 'DATETIME', while trying to decipher information encoded in the column length (25)
dateexecuted is YEAR TO FRACTION(5)
Steps To Reproduce
Create a simple liquibase app and build it with informix.
Run the app with correct changelogs, the app runs without error
Rerun the app with other changelogs. The app runs with the error above
Actual Behavior
After first run, the liquibase app with informix will have error
Expected/Desired Behavior
Should not have any error
Additional Context
The error is here
https://github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/snapshot/jvm/ColumnSnapshotGeneratorInformix.java#L65

I fixed it with the following code
package liquibase.snapshot.jvm;

import liquibase.database.Database;
import liquibase.database.core.InformixDatabase;
import liquibase.exception.DatabaseException;
import liquibase.snapshot.CachedRow;
import liquibase.snapshot.SnapshotGenerator;
import liquibase.structure.DatabaseObject;
import liquibase.structure.core.Column;
import liquibase.structure.core.DataType;

import java.util.HashMap;
import java.util.Map;

/**
 * Informix-specific parts of ColumnSnapshotGenerator to account for various quirks in IBM Informix.
 */
public class ColumnSnapshotGeneratorInformix extends ColumnSnapshotGenerator {

    private static final Map<Integer, String> qualifiers = new HashMap<>();

    static {
		qualifiers.put(8, "HOUR TO SECOND");
		qualifiers.put(5, "HOUR TO MINUTE");
		qualifiers.put(4, "YEAR TO YEAR");
		qualifiers.put(10, "YEAR TO DAY");
		qualifiers.put(16, "YEAR TO MINUTE");
		qualifiers.put(19, "YEAR TO SECOND");
		qualifiers.put(23, "YEAR TO FRACTION(3)");
		qualifiers.put(25, "YEAR TO FRACTION(5)");
    }

    @Override
    public int getPriority(Class<? extends DatabaseObject> objectType, Database database) {
        if (database instanceof InformixDatabase)
            return PRIORITY_DATABASE;
        else
            return PRIORITY_NONE; // Other DB? Let the generic handler do it.
    }

    @Override
    public Class<? extends SnapshotGenerator>[] replaces() {
        return new Class[]{ColumnSnapshotGenerator.class};
    }

    @Override
    protected DataType readDataType(CachedRow columnMetadataResultSet, Column column, Database database) throws DatabaseException {
        // For an explanation of the information encoded in the column length, please see
        // https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.sqlr.doc/ids_sqr_027.htm
        String typeName = columnMetadataResultSet.getString("TYPE_NAME").toUpperCase();
        if ("DATETIME".equals(typeName) || "INTERVAL".equals(typeName)) {
			int colLength = columnMetadataResultSet.getInt("COLUMN_SIZE");
			String type = "DATETIME".equals(typeName) ? "DATETIME" : "INTERVAL";
			String qualifier = qualifiers.get(colLength);

            DataType dataTypeMetaData = new DataType(type + " " + qualifier);
            dataTypeMetaData.setColumnSizeUnit(DataType.ColumnSizeUnit.BYTE);

            return dataTypeMetaData;
        } else {
            return super.readDataType(columnMetadataResultSet, column, database);
        }
    }

}

Thanks @LeeKevinCode for documenting this issue.  Can you please open a PR and  use the code you attached to fix it?

@tati-qalified - Could you verify the issue? Once verified, could you submit the code in this issue as a PR and test again to see if it's fixed? I thought this would be an interesting exercise.


Nested Documentation

When using Grape, Grape Entity and Grape Swagger and I have an entity with a nested object. Should we have the ability to provide nested documentation if that object has a nested object inside?
Example.
class User < Grape::Entity
  expose :id,        documentation: { type: 'Integer', desc: 'Id' }
  expose :firstname, documentation: { type: 'String', desc: 'First Name' }
  expose :lastname,  documentation: { type: 'String', desc: 'Last Name' }
  expose :username,  documentation: { type: 'String', desc: 'Username' }
  expose :email,     documentation: { type: 'String', desc: 'Email' }

  expose :location, using: API::Entities::Location, as: :location

But when I call

API::Entities::User.documentation

it doesn't include my location inside the documentation hash.

it can be exposed if a documentation is provided. Using
...
expose :location, using: API::Entities::Location, as: :location, documentation: { type: 'API::Location' }

@calfzhou - How would you get it working with API::Entities::Location.documentation?


datatable-header-cell-wrapper & headerTemplate HTML layout

I'm submitting a ...  (check one with "x")
[x] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here

Current behavior

When using column.headerTemplate, an empty span.datatable-header-cell-wrapper is created.
Expected behavior

.datatable-header-cell-wrapper should wrap the headerTemplate, or not be rendered.
Reproduction of the problem

Goto http://swimlane.github.io/ngx-datatable/#
TemplateRef example.
Inspect column.
You will see an empty span in front of template.
What is the motivation / use case for changing the behavior?

Simplify HTML.
Please tell us about your environment:

Table version: 6.0.2

Angular version: 2.4.7

Browser: all

Language: TypeScript 2.1.5

Relevant Code: header-cell.component.ts

        <input
          type="checkbox"
          [attr.checked]="allRowsSelected"
          (change)="select.emit(!allRowsSelected)"
        />

      <template
        *ngIf="column.headerTemplate"
        [ngTemplateOutlet]="column.headerTemplate"
        [ngOutletContext]="{
          column: column,
          sortDir: sortDir,
          sortFn: sortFn
        }">
      </template>

  `,

*ngIf="!column.headerTemplate" should be moved up to .datatable-header-cell-wrapper span, or maybe template should be nested in span.datatable-header-cell-wrapper?

Ya, you are right. Can you PR that please?

Sure, I just don't know what the correct solution is as far as HTML/CSS structure.
Do you want span.datatable-header-cell-wrapper to wrap the template like this?

    <template
        *ngIf="column.headerTemplate"
        [ngTemplateOutlet]="column.headerTemplate"
        [ngOutletContext]="{
          column: column,
          sortDir: sortDir,
          sortFn: sortFn
        }">
      </template>

Or not render the span.datatable-header-cell-wrapper element at all when a headerTemplate is provided?

Ya, move the ngIf to this https://github.com/swimlane/ngx-datatable/blob/master/src/components/header/header-cell.component.ts#L21

Resolved in latest.


Publishing functions as single modules

First, I know this is against one of the philosophies of 101. But as the library grows it would sometimes be nice if one could install only what he needs. i.e npm i 101-curry. We could create a cli-tool to publish only changed function and keep developing 101 in one repo.
What are your thoughts on this?

I think 101 is an acceptable size at the moment, but let's definitely revisit this topic in the future.


[release-1.3] Make HPA name consistent for ingressgateway

This is an automated cherry-pick of #321

/retest

/retest


Jupyter Notebook support

$ pydocstyle main.ipynb does nothing for my Jupyter :(

It's not python, what do you expect? There are jupyter tools to run flake8 in each cell iirc and flake8 can run pydocstyle.


Cannot read property 'childNodes' of undefined

Consider this runnable example:

Output
vdom.js?module:238 Uncaught TypeError: Cannot read property 'childNodes' of undefined
    at patchChildren (vdom.js?module:238)
    at patch (vdom.js?module:85)
    at patchInPlace (vdom.js?module:216)
    at patchChildren (vdom.js?module:255)
    at patch (vdom.js?module:85)
    at bugProgramTemplatePatchFalied.html:12

3rd argument to patch should be the mounted dom node itself (and not the parent)  (since https://github.com/yelouafi/petit-dom/pull/28)
var root = document.getElementById('root')
var domNode = mount(oldVnode)
root.appendChild(domNode)
patch(newVnode, oldVnode, domNode)

you can also use render directly
import {h, render} from 'https://unpkg.com/petit-dom?module'
// ...
var root = document.getElementById('root')
render(oldVnode, root)
render(newVnode, root)

should probably get a better error message

Hi @yelouafi sorry about that, didn't see the API changes. Just a question: Will this new rewrite be faster or slower than the previous versions?

Actually it's slightly slower (tested on 10.000 nodes so I doubt you'd notice) but I haven't yet added any optimization and there is muh room for that

Oh, I see. Too bad, I partly choose petit-dom because of excellent performance, almost on pair with Inferno despite only 3kb 🙈😅 I have a very special use-case.. 🧐
https://stefankrause.net/js-frameworks-benchmark8/table.html.


Add support for first/last for double/float/long #10702

Fixes #10702
Description
This PR revives https://github.com/apache/druid/pull/10949 which address issue #10702 by adding support for doubleLast, doubleFirst, FloatLast, FloatFirst, longLast and longFirst.
It follows the code flow similar to stringFirst and stringLast
Release note

Key changed/added classes in this PR

AbstractSerializableLongObjectPairSerde abstract class to share serde between double/float/long

SerializablePairLongDoubleComplexMetricSerde for double
SerializablePairLongFloatComplexMetricSerde for float
SerializablePairLongStringComplexMetricSerde for long

GenericFirstAggregateCombiner first  agg combiner to share between double/float/long
GenericLastAggregateCombiner first  agg combiner to share between double/float/long
DoubleFirstAggregatorFactory, DoubleLastAggregatorFactory
FloatFirstAggregatorFactory, FloatLastAggregatorFactory
LongFirstAggregatorFactory, LongLastAggregatorFactory

Further introduces new ColumnType

serializablePairLongDouble
serializablePairLongFloat
serializablePairLongString

To-Do
These will be taken up in a follow-up PR

SerializablePairLongStringComplexMetricSerde to extend AbstractSerializableLongObjectPairSerde
Add ingestion support from UI for first/last types
SQL compatibility for querying (latest/earliest) the new ingestion type (Today this is queryable via native json queries not via sql. Needs more discussion on making this SQL compatible)

This PR has:

[x] been self-reviewed.
[ ] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[x] added integration tests.
[x] been tested in a test Druid cluster.

Thank you @ankit0811 for reviving this PR. I will review this soon.

Thanks @ankit0811 for the PR!
This will also allow MSQ to use these aggregators for ingestion and querying. We should update the MSQ's limitations once this PR is merged in a follow-up PR (after testing).

Thanks for raising this PR!! I am relatively unfamiliar with the complex column's serde and am still going through the implementation, however, I have a few high-level comments, based on my understanding of the StringFirst/Last aggregators:

In the deserializeColumn, we should allocate the first byte for a version number. This would help if we decide to update the strategy down the line and want backward compatibility.
The current StringFirst/Last comparators use delta encoding and compression on the numeric column to reduce the size. Also, the PR (Improve String Last/First Storage Efficiency #12879) which introduced this change also added a few classes which help in this. I suppose that we would want it sometime. The versioning as mentioned above would help in making these changes if we decide that we don't want it now. However, the complexity of changing from one version to another is high and we require backward compatibility therefore we should question if that should be done in the original PR itself (check this comment: https://github.com/apache/druid/blob/d63eff3b1b6b15fac1bb278a784ce6c391a52ce2/processing/src/main/java/org/apache/druid/query/aggregation/SerializablePairLongStringComplexMetricSerde.java#L54-L66
)
Can we refactor the preexisting LongString serde classes to be subclasses of the newly introduced AbstractSerializableLongObjectPairSerde? I see that there are some similarities in the methods. In any case, it would be helpful if all of them are under the same umbrella, and we can further categorize the newly added classes as children of AbstractSerializableLongNumbericPairSerde

Best if we take this in a separate PR? else it will be too big a PR to be reviewed. It already touches quite a few classes

Best if we take this in a separate PR? else it will be too big a PR to be reviewed. It already touches quite a few classes

Seems reasonable to me, we can mark this as an improvement once we get the functionality in.

Thanks for resolving the merge conflicts and the comments. I'll test it from MSQ's perspective and check if it works fine with MSQ queries in a couple of days.

This PR doesn't actually solve hte problem it needs to solve as the columns that itproduces will be extremely large compared to the expected size.  The complex column serde needs to follow the pattern followed by SerializedPairLongStringComplexMetricSerde.  It's not okay to use the normal GenericIndexed for these columns.  While I'm not against merging this just to get something in place, I am against this code existing in any release as it will mean that some people might actually create segments with incredibly large columns, not realizing why, and hten we have to carry forward the bad versions of the code to read those columns back out all because we just didn't implement it according to the already existing pattern the first time around.

Generally speaking, I don't believe that we should merge the code with the GenericIndexed method of generating the columns.  That's going to create the need to always support that.  We have a better way to store things (the way that the String versions do it) and we shoudl follow those instead.  If we really want to do these in two PRs, I'd suggest leaving this PR as is and create another PR on top of it to switch the serde around and then merge them in quick succession.

There is a better way that the stringLast/First aggregators already use, can we please adjust the ComplexMetricSerde implementations to align with the pattern followed in SerializablePairLongStringComplexMetricSerde instead? Specifically in how that implements getSerializer() and deserializeColumn(). There are code paths for compatibility that use the GenericIndexed stuff, the pattern that we want to follow is the ones that use SerializableLongPairStringColumnSerializer and SerializablePairLongStringComplexColumn.Builder respectively.

Random drive-by comment, but I don't really think that is the best pattern to use here either though, since the pairs here are fixed width and so a much more appropriate way of compressing them that doesn't involve storing offsets separately could be used...

@imply-cheddar a qq for clarifications since this part of code is new to me

the current SerializablePairLongStringComplexColumn.Builder has a version check. I am assuming this is not required for long numeric type implementation. is the assumption correct here?

@ankit0811
1   {version=v1, timestamp=2013-08-31T00:00:00.000Z, event={continent=Asia, earliest_user=masterYi, latest_user=stringer, double_first_delta=111.0, double_last_delta=-9.0, long_first_delta=111, long_last_delta=-9, float_first_delta=111.0, float_    last_delta=-9.0}}],
  1 {version=v1, timestamp=2013-08-31T00:00:00.000Z, event={continent=Asia, double_first_delta=null, long_last_delta=null, double_last_delta=null, float_first_delta=null, earliest_user=masterYi, long_first_delta=null, latest_user=stringer, float    _last_delta=null}}]

There are some failing ITs. Can you please take a look at them? Looks like you should be able to identify the culprit after looking at the output diff. (A very wild guess - the new metric isn't hooked up properly perhaps? )
If you need help setting up the ITs for debugging, then please reach out, and I should be able to help with it.
We do want to get this change in, and a green build would expedite the process.

@LakshSingla this seems to be cos of some changes wrt vectorization. Will try and address this in a couple of days.

Will we see this in Druid 28? I see myself back on the need for a doubleLast or longFirst for way too long

@daniel-imgarena The branch for Druid 28 has been cut, and only release blockers & regressions are allowed at this point. Unfortunately, we won't be seeing this in the 28 release, since it's a new feature.

@LakshSingla thank you so much for reviewing this PR and being patient throughout the process. Have tried to address your comments let me know if theres any thing more left

Thanks for the patch @ankit0811.
I think there's some follow up that can be done, in this area

Make sure string pairs work as expected with null & empty strings - This has been a regression before the patch, and I have raised a PR for the same
Make the EARLIEST and the LATEST work with SQL
Add tests for MSQ
Look for some cleaner abstractions

Can you add a release note for the patch

I still believe that we can clean up the code a bit further if we get rid of the SerializablePairLongString abstractions and keep them as generics, however, I don't know what entails such a change. That would allow the reuse of multiple classes. However, that will be taken in a follow up PR, so its a go-ahead from my side.

SInce we have identified the caveats, we can merge this and work on it in a follow up PR.
Thanks @ankit0811 and @LakshSingla for the PR and reviews.


Allow specific channels for guests access

Allow specific channels for guests access instead of the whole team.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f737e278-7c89-e048-b60b-287615a829fb
Version Independent ID: 1df35258-7360-74c4-680a-e154c54291fe
Content: Microsoft Teams Guest Access checklist
Content Source: Teams/guest-access-checklist.md
Service: msteams
GitHub Login: @romanma
Microsoft Alias: romanma

@itak006 Thank you for this suggestion.
I know the product teams are always looking for user feedback and how to make Teams better. They keep a close tab on User Voice https://microsoftteams.uservoice.com/forums/555103-public/suggestions/31374577-guest-access-should-be-implemented-at-the-channel and if you don't mind it would be awesome if you could look through and give your input in User Voice. I have upvoted this as well. It does look like they are working on it but even still the more upvotes we get for this the better.
Thank you for your contribution to make the docs better! Much appreciated!


Pywrap documentation and sample application

The pywrap pull request is merged to the master branch.
But the wiki documentations are not added yet.
Please add one page about how to use the python wrapper. The environment setup page should also be updated to include 'jinja2' module as necessary module.
And I think maybe it is better to add one sample of using the python wrapper and run the network from python on FPGA. Please add one sample based on mobilenet to the 'application' repository.

Lyu-san,
Could you review Python Wrapper?
After the review, I will translate it into Japanese.

About sample code, I created an issue in application repository.

Kobayashi-san,
I've followed the instructions on the wiki page, but I met the following issues:

In the How to Build section, the 4th step, I need to add the following link flags, else the import gnet_wrap will fail:

 -ldmpdv -lboost_python3 -lboost_numpy3

In the Simple Sample section, the sample code has many typos: initalize should be initialize, load_weight should be load_weights

The line gnw.load_weights("path/to/DV_weight.bin/") fails with the following error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
LookupError: unknown encoding: utfi
>>> gnw.load_weights(weight_path)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Boost.Python.ArgumentError: Python argument types in
    gnet_wrap.load_weights(str)
did not match C++ signature:
    load_weights(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)

I can't find a way to solve it so I give up there.

Thank you Lyu-san,

You might need to install Boost.Python, Boost.Numpy.
Run apt install libboost-numpy-dev libpython3.6-dev.

fixed

I have to see the code

Kobayashi-san,
About 1, I already installed the two packages you mentioned, but I still need to set link flag as I said in my previous comment.
And I can successfully run the sample now. There are just some minor bugs:

you missed import numpy as np in the sample code
the get_conv_fc_usec should be get_fc_usec

Besides, the C++ version of get_final_output actually accepts one optional parameter int id, which if not given default to be 0. In some networks there might be more than one output layers, so to get the result of those layers, it is necessary to pass id > 0. But I think this should be handle by another issue.

Thank you Lyu-san,
I reflected all your suggestions

I created a new issue about the get_final_output() problem

Thank you
I added the flag.
I will translate

I created Japanese page.
Review will be done in the overall review of Japanese pages before the deliver.
So I close this issue.


Motion Sensor example?

Can you make a motion sensor example? I have a motion sensor from Arduino which works with the Button-Example but triggers single, double or long press. Can you build one with the correct event and motion-type?

You may want to check the following repository :
https://github.com/maccoylton/esp-homekit-motion-sensor

Works like a charm. Thank you.


[Bug]: DOM.requestNode returns nodeId=0

Bug description
Steps to reproduce the problem:

Visit a page with an element with id=demo_id and open a CDP session
Obtain the RemoteObjectId of the node, using Runtime.evaluate with {expression:"demo_id"}
Request the corresponding NodeId using DOM.requestNode
Issue: Get back nodeId=0..?
To compare: execute the following in the experimental Protocol Monitor console in the Chromium devtools:
{"command":"Runtime.evaluate", "parameters":{"expression":"demo_id"}}
{"command":"DOM.requestNode", "parameters":{"objectId":"<RemoteObjectId just obtained>"}}
Get back the actual nonzero NodeId
(If you execute this in the same browser as the previous steps, you will notice that that the RemoteObjectId obtained in step 5 is the same as in step 2. However, if you execute step 6 without executing step 5 you will get back Could not find object with given id. Not sure if this is by CDP design?)

This may well be an upstream issue, but I'm not sure what causes it to work fine in the devtools and not via Puppeteer.
Script:
import puppeteer from 'puppeteer';

const browser = await puppeteer.launch({headless: false});
const page    = await browser.newPage();
await page.goto('data:text/html,' + encodeURIComponent('<input id=demo_id />'));

const cdp = await page.target().createCDPSession();
await cdp.send('Runtime.enable');
await cdp.send('DOM.enable');
const {result: {objectId}} = await cdp.send('Runtime.evaluate', {expression: 'demo_id'});
console.log(objectId);  // Correct id
const {nodeId} = await cdp.send('DOM.requestNode', {objectId});
console.log(nodeId);  // 0 ??

Puppeteer version
18.2.1
Node.js version
18.9.0
npm version
8.19.2
What operating system are you seeing the problem on?
Windows
Relevant log output
3462418028677997700.3.1
0

I'm not sure what you are expecting here. Shouldn't the expression be document.getElementById('demo_id')?

@jrandolf That's equivalent, see https://html.spec.whatwg.org/multipage/window-object.html#dom-window-nameditem

In general, nodeIds exist only for the DevTools frontend and implement the mechanism by which the DevTools frontend gets updates for a subtree of elements. It appears that requestNode only returns an ID if the node is already known to the frontend. E.g., if you add await cdp.send('DOM.getDocument', {depth: 10}); before requestNode. I am not sure why it works like this but there are probably reasons. In any case, I think you should report this via crbug.com as it's not something we can fix within Puppeteer.

@OrKoN Ok thanks, that might be the cause, I guess I'll report it there then. I need the NodeId for DOMDebugger.setDOMBreakpoint btw.

(Chromium bug is now at https://crbug.com/1374241. Your workaround using DOM.getDocument seems to work, even with depth=0)


Add benchmarks

This PR doesn't use the benchmarks in the CI to check for performance regressions yet, but I plan to add that in the next PRs.

We can add a benchmark for this as well, to detect regression with fusion:
https://github.com/HigherOrderCO/ICVM-lazy/blob/typed/examples/neg_fusion.icvm


Website Cert Expired 2 Days Ago

Cert for https://hhvm.com/ expired 2 days ago, June 23.
Guess no one is monitoring. Sad.

Sorry about that, we've had some team changes and the certificate ownership needed updating. The site was briefly down, but monitoring picked it up and it's resolved now.


showArea and gaps in data

Guys, absolutely awesome job on this library. I've hit only one bump:

Is there a workaround, or even better, any hope for a fix to this?

Hi there. This should be fixed I guess. Lets track it as an open bug.

Good news :-) This is fixed with b7ebb604bc4a7251d1aae649b23f80a164c7ac46 and will be released with 0.8.3 this weekend. The demo site already has the development build.

Great stuff, thanks!
—
Sent from Mailbox
On Sat, Jun 6, 2015 at 5:47 PM, Gion Kunz<EMAIL_ADDRESS>wrote:

Closed #333.
Reply to this email directly or view it on GitHub:
https://github.com/gionkunz/chartist-js/issues/333#event-324348463


BUG: When using the visual designer, it often inserts one or more empty array elements to the route list

I find that the visual designer often inserts one (and sometimes more) empty array elements at the top of the route YAML:
Example:
# camel-k: dependency=mvn:org.apache.camel:camel-snakeyaml:3.17.0
-
- route:
    from:
      uri: timer:periodic

It seems to only happen AFTER I have added dependencies to the file.

Thanks for reporting, are you are using the VSCode plugin version 0.0.15 ?

Yes

Starting from the next version Karavan won't support dependencies in modeline. They will be in application.properties, ex.
camel.jbang.dependencies=mvn:io.quarkus:quarkus-container-image-jib


scope css bug with component

Vue.js version
2.x.x
Steps to reproduce
I have three .vue files, the name is grandfather.vue, father.vue, child.vue.
the code of grandfather.vue:
<template>
  <father class="father">...</father>
</template>

the code of father.vue(use the child component as the root element):
<template>
  <child>...</child>
</template>

the code of child.vue:
<template>

i am the child.

</template>

What is Expected?
the class .father should be normal display
What is actually happening?
however, the class .father style can not display. I find one of the attr data-v-xxx is not generated by the css scoped. so the class .father can not establish contact with the component father.

Please follow the guidelines on how to report an issue. In particular, provide an example on www.jsfiddle.net (or a similar service) that reproduces the problem. If necessary, create a repository for us to clone with a minimal reproduction. repositories of actual projects will generally not be accepted.
Thank you.

The issue cannot be reproduced on my end; Closing due to inactivity. Please open a new issue with a reference to this one if you can follow up with more information.


Added requirements file for the project

Added a requirements.txt file for the project in case someone would want to install dependencies manually, or build from source etc.

we already have a Pipfile for that :)


Need for new "Deprecation" BadgeType (simlar to TechPreview)

Is your feature request related to a problem? Please describe.
We have a need to identify to users that some Features, Services and Products are in the process of being deprecated with a visual identifier.
Describe the Solution you'd like
The proposed solution is to have a new BadgeType for "Deprecation" that will allow a corner icon to identify Features, Services and Products that are going through the deprecation process.
Example mock-up here:

Describe alternatives you've considered
No response
Additional context
No response

Attaching the SVG created by @VincentChabot1:

Please can you clarify if the change would be to AppUI or iTwinUI? As Clas,h we can take the latest version of AppUI but we are limited to iTwin V2.8.0 (It is an OKR for Q3 to upgrade to the latest iTwinUI)

The change would be in AppUI.


remove dependency on system.web

prevents errors when the system.web assembly isn't loaded

Does it still work when it is loaded?

yes
From: J.Townsend<EMAIL_ADDRESS>Sent: Thursday, March 4, 2021 6:05 PM
To: dafthack/MailSniper<EMAIL_ADDRESS>Cc: YanIllusive<EMAIL_ADDRESS>Author <
<EMAIL_ADDRESS>Subject: Re: [dafthack/MailSniper] remove dependency on system.web (#88)
Does it still work when it is loaded?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dafthack/MailSniper/pull/88#issuecomment-790727947, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ARTHF6L2L5VURA5VR5LESC3TB6VTTANCNFSM4YTQPVMQ
.

Thanks


Ensure not-allowed cursor event is shown on btn-disabled

Fix #17231

@kkirsche Pretty sure this doesn't actually work.

Ok. Why do you say that though? Shouldn't important override other attributes no matter the order given others aren't important?

It's not a matter of property overriding in the first place. It's not like pointer-events makes cursor compute to a different value or something.


Microsoft Auth Provider should support overriding client id and tenant id

The Microsoft Auth Provider uses a specific AAD application with client id hardcoded here:
https://github.com/microsoft/vscode/blob/582ea371c2bf785d88458dab95828387ad94a63d/extensions/microsoft-authentication/src/AADHelper.ts#L25-L26
However, this application only has access to a handful of scopes, and to add allowed scopes to this client id is a manual process (which for an external extension author means opening an issue here and then having one of us add that scope to the allowed scopes for the application)
As an extension author, I should easily be able to create my own AAD application (in the Azure Portal for example) and use that client id instead of the one vscode uses so that I can have control over the scopes I care about and, if this exists, I can get telemetry when my client id is used.
Since we have abstracted auth providers, I think it's fitting to be able to pass additional auth provider specific options down to an auth provider. For example, the Microsoft auth provider would take a client id and tenant that would replace the hard coded string above.
Proposal:
        /**
	 * Options to be used when getting an [AuthenticationSession](#AuthenticationSession) from an [AuthenticationProvider](#AuthenticationProvider).
	 */
	export interface AuthenticationGetSessionOptions {
		/**
		 * Whether login should be performed if there is no matching session.
		 *
		 * If true, a modal dialog will be shown asking the user to sign in. If false, a numbered badge will be shown
		 * on the accounts activity bar icon. An entry for the extension will be added under the menu to sign in. This
		 * allows quietly prompting the user to sign in.
		 *
		 * Defaults to false.
		 */
		createIfNone?: boolean;

		/**
		 * Whether the existing user session preference should be cleared.
		 *
		 * For authentication providers that support being signed into multiple accounts at once, the user will be
		 * prompted to select an account to use when [getSession](#authentication.getSession) is called. This preference
		 * is remembered until [getSession](#authentication.getSession) is called with this flag.
		 *
		 * Defaults to false.
		 */
		clearSessionPreference?: boolean;

		/*************/
		/***  NEW  ***/
		/*************/
                /**
                 * Provider specific options for getting this session (i.e. client id, tenant)
                 */
		providerOptions?: { [key: string]: any; }
	}

The Auth Provider would then need to be responsible for deciding if it already has created a session with these options or if it needs to create a new session based on these options.

So will current auth provider API also allow me to authenticate via Azure DevOps app? The AzDO app requires a different app registration process as described here - https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops#register-your-app

@ankitbko ideally, yes... but it doesn't today, as you probably know. We will be talking with the AAD team to make sure we do this correctly.

small update in this space... I recently added a sample auth provider here:
https://github.com/microsoft/vscode-extension-samples/tree/main/authenticationprovider-sample
using Azure DevOps PATs has the sample. For anyone looking to interact with Azure DevOps APIs, give this sample a look and use it until we better understand the work involved to properly support AzDO in the inbox Microsoft Auth Provider.

@TylerLeonhardt - Trying to implement my own version of the provided plugin to get aad login to work with our client id / tenant I stumbled across these lines in the codebase:
https://github.com/microsoft/vscode/blob/11a7e20a9a6a1b7e49b719a48a45b0cd4ac5eeab/extensions/microsoft-authentication/src/AADHelper.ts#L612-L619
From there it seems one can in fact provide custom client and tenant ids by passing them in via the requested scopes. Giving it a quick try it seemed to work as long as the redirect url is properly configured on the application. Is this an official (yet AFAIK undocumented) feature, that can be used?

@roeap that will be there for the foreseeable future... but I specifically haven't closed this issue as it could change in the future.

Any news on this? I wanted to use a custom client_id for an OpenID authorization workflow as well


Give some way to configure psrepos via GPO or other method

We use an internal NuGet feed to host a lot of our module/scripts for people in IT.  but everytime they get on a new box, they need to register that repo, which is very cumbersome, it would be nice if the PSRepository was not stored in CLIXML because that makes it pretty cumbersome to try and deploy those settings.  i guess a logon script to be used, but that seems like the wrong direction to go to accomplish this.

Expected Behavior

maybe allow to have a machine targeted repo, similar to how powershell profiles work, where we can deploy an internal default PSRepo to machines.
Current Behavior

currently the PSRepository is user based, so this makes it hard to setup an internal repo on multipule machines.
Possible Solution

see expected behavor
Steps to Reproduce (for bugs)

Context

as we publish more our scripts and build internal modules, that cannot be published publicaly, i need a way to configure our internal repo on all machines.  so users can use install/find-module/script OOB.
Your Environment

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.14393.693
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14393.693
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

Get-Module

Get-Module -ListAvailable PowerShellGet,PackageManagement

Get-PackageProvider

Get-PackageProvider -ListAvailable

@dotps1
You can configure a logon PowerShell script with group policy to register/configure the custom repositories.
Some references on this.

https://technet.microsoft.com/en-us/library/ee431705(v=ws.10).aspx

https://blogs.technet.microsoft.com/heyscriptingguy/2011/01/06/use-powershell-and-group-policy-for-your-logon-script/

https://technet.microsoft.com/en-us/library/cc753404(v=ws.11).aspx

https://blogs.technet.microsoft.com/heyscriptingguy/2010/08/14/using-group-policy-to-deploy-a-windows-powershell-logon-script/

http://www.computerperformance.co.uk/powershell/powershell3-logon-script.htm

https://4sysops.com/archives/configuring-logon-powershell-scripts-with-group-policy/

https://mcpmag.com/articles/2011/10/25/scripting-a-logon-with-powershell.aspx

http://serverfault.com/questions/372061/how-do-i-execute-a-powershell-script-via-group-policy

Personally this sounds more like a cross org issue, and more specifically an issue that could be alleviated at the machine build time than it being a typical user issue, however you've pointed out the crux of the issue is that PowerShellGet currently only has the support for user settings not machine level settings.
In line with another conversation on customising module configurations like this over at https://github.com/PoshCode/PowerShellPracticeAndStyle/issues/79 , I would be more suggestive with either keeping the current CLIXML implementation and expanding it to be able to take multiple different configurations in a similar manner to how GPO's get applied or better still replace it's implementation with a model similar to what's being discussed in the Issue I've linked to above which also would be a suitable fix for what it is that you are looking for.
Once there is a Machine level configuration available for the PSRepositories then you could easily push a single configuration to all of your machines and not have to worry about a logon script though your would also need to update any machine build configurations that you have which would be simple enough with an additional small DSC Configuration or build task.

I'd really like if there was a machine level configuration as I don't really like the idea of logon scripts, because they tend to increase the logon time experience, require someone to interactively login for them to apply, etc. Besides, those require additional efforts to make sure they're running without issues.
If there's a service account that is used to schedule a script that relies upon PackageManagement, currently one would need to make sure that the repo is pre-configured under that account.
If there concept of Machine level configuration is introduced, a rules regarding naming collisions would have to be introduced, to decide whether machine or user level settings should win if identically named PSRepos exist on both Machine and User levels. My personal preference would be to have machine level repos prevail on user level. There may, however, be valid scenarios for user level settings to prevail as well (although I can't think of any), so this behavior should probably be configurable.
One other challenge with machine level settings is repo credentials. What would be the best way to configure those, so that they would survive things like sysprep (on windows), and yet not be stored in a plaintext format? Additionally, once set those credentials should be stored in a way that any user on the machine could use them to access a particular repository. Being able to provide PSRepo credentials would open up the possibility to use cloud based (private) repositories, i.e. VSTS Package Management, etc.

Hi, has anything been done on this one? I am facing the same need as @dotps1

No, not yet.

I second that request

You can configure module repos in the default profile, which is how I do this.
D:\> $profile.AllUsersAllHosts
C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1

@BatmanAMA - whilst this is a workaround that will work to fix the issue, you are adding some unneeded overheard by using this option and this can also be removed by a user that has admin access on a machine.
Ideally I think that the end solution needs to have multiple methods to implement a Machine Level setting that can be via

Registry Key
GPO
Configuration File's
PowerShellGet Command's (Enhance Register-PSRepository & Set-PSRepository functions to include Machine level settings not just user level settings)
DSC Resource

@kilasuit - it also doesn't work if you launch powershell with -noprofile, to be fair. It isn't a security item, so I've never had too big of a problem with it not being perfect. My recommendation wasn't meant to dissuade this feature from being added, mainly I wanted to give an option for those looking to solve the problem now. It has the advantage over your first 2 in that it also works in PSCore on linux.
For a bit deeper detail, we use ansible to make sure the line we want is in the file so that if an admin changes the default profile, it'll just add my desired command to the end. I'd recommend checking out (and perhaps contributing to) the file content DSC project to get the same capability in DSC
- win_lineinfile:
    ensure: present
    create: yes
    path: C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
    line: 'register-psrepository -name internal -Source https://myinternalrepo.com/api/v2'

+1 for this feature


Welcome sound occasionally plays when sound is turned off

I have the sound turned off for CodeCombat (via the icon in the top-right corner) -- however, the welcome sound ("[whistle] codecombat") is still played sometimes (even if just partially) when I open the browser with a tab including a level (http://codecombat.com/play/level/level-name). It also happens if I reopen a closed tab. Probably the page starts playing the sound before it checks the settings or there is a delay for some reason.
It happens both in Firefox (31.5 ESR) and Chrome (42 64bit), OS: Windows 7.

As this has been marked for newbies, it will be better to let us know which file handles the sound play and which file first executes and handles the sound call on any level. I looked at Level.coffee but couldn't find any relevant code related to handling of sounds.
It's difficult to debug for newbies when they don't have insights of the code combat.

This is where the sound is played: https://github.com/codecombat/codecombat/blob/master/app/lib/LevelLoader.coffee#L409-L416
AudioPlayer should be respecting volume, but maybe it isn't? We could just not play the jingle if we know the player's volume is 0.


The tests doesn't pass anymore!!

Hello, I'm watching the SinonJS Fundamentals at Pluralsight's plataform and I can't go on with the course because of the tests.
No matter what I do, following the step-by-step or not, any of the tests pass neither fail, they just get the "Timeout" error, even with the app AND database running...
Here's a print of my terminal output:

I simply have to stop the course by now :/
Ps: All the versions I'm using are the same of the course.

While I'm looking in to this, if you're mostly trying to learn about SInon, there's another course that covers Mocking Node JS with Sinon (https://app.pluralsight.com/library/courses/mocking-nodejs-sinon/table-of-contents) and should cover a lot of the same topics.

Thank you!! :smile:


Fixed RFC 5280 / RFC 3280 NameConstraint checking for RDNs

The current implementation is comparing if the complete RDNs are matching between the permitted / excluded subtree and the certificate. This is not correct. The subtree must take into account which type of a RDN should be matched. It is legal to add not restricted RDN to the subject or alternative names.
See:  https://tools.ietf.org/html/rfc5280#section-7.1
The test specification from https://csrc.nist.gov/CSRC/media/Projects/PKI-Testing/documents/PKITS.pdf give a valid example in <IP_ADDRESS>2 Valid DN nameConstraints Test1 EE:
permittedSubtrees:
directoryName: "ou=permittedSubtree1, o=Test Certificates 2011,
c=US"

It is OK to have a CN not restricted by the permittedSubtrees:
subject: "cn=Valid DN nameConstraints EE Certificate Test1, ou=permittedSubtree1, o=Test
Certificates 2011, c=US"

I have created a pull request fixing this: https://github.com/bcgit/bc-java/pull/496 See there for other comments.

Now fixed.


Can't compile

"apache-royale-0.9.8-bin-js"
where is it?

http://apacheroyaleci2.westus2.cloudapp.azure.com:8080/job/royale-asjs_jsonly/lastSuccessfulBuild/artifact/out/

Thanks.You did a great job for all as project.


Kik example with multiple session.send only sends first message

Hello,
The node kik example:
https://github.com/Microsoft/BotBuilder/tree/master/Node/examples/demo-kik
no longer seems to work.  I tried it a few weeks ago and it worked fine, but now only the first message seems to be sent (or only the first is received?).
For example, for the initial message in the example, the greeting is received, but not the "Hi..." message and not the beginDialog /menu:
function (session) {
// Send a greeting and start the menu.
var msg = new builder.Message()
.addAttachment({
thumbnailUrl: "http://....png",
title: "Microsoft Bot Framework",
text: "Your bots — wherever your users are talking.",
titleLink: "https://dev.botframework.com/",
});
session.send(msg);  (RECEIVED)
session.send("Hi... I'm the Microsoft Bot Framework demo bot for Kik. I can show you everything you can use our Bot Builder SDK to do on Kik.");  (NOT RECEIVED)
session.beginDialog('/menu');  (NOT RECEIVED)
},
The bot still expects a response to the prompt, even though the user didn't receive the options. When the user replies, the bot says it doesn't understand and then delivers the /menu prompts.
Has something changed for sending multiple messages?
This may have the same root cause as:
https://github.com/Microsoft/BotBuilder/issues/451
https://github.com/Microsoft/BotBuilder/issues/522
Thanks

Hi,
Any update on this? I believe it worked before the 1.0 update. Does something need to be changed for 1.0?
Thanks

Closing this issue due to age. @designdit - please open a new issue if this issue is not fixed and needs further discussion. Thanks!


dev: add profiling for solidity loops

Loops seem to take a lot of steps on execution. I think we can highly optimise them by profiling what takes the more steps in a loop. The below solidity contract can be used as a bench:
pragma solidity >=0.8.0;

contract Loop {
    function loop(uint256 max) pure public {
        uint256 val = 0;
        for (uint256 i =0; i<max; i++){
            val += i;
        }
    }
}

For reference, the execution of the loop for the above contract currently takes 14_093_197 steps when ran with max = 400 (check starkli transaction-receipt 0x142c47b0d4000f9c37490237b36a1e5cdf455b9e2a17cf4fa70974e19a5ecac on Kakarot Sepolia).

Can I take this task?

Hey @elielnfinic, I think this would be a little complicated for someone who hasn't yet worked on our repo.

Alright @greged93, no problem.


when will you support npm 3.x ?

In your dependencies, you have npm 2.x,  many of the newer node version. e.g. node 6.x comes with npm 3.x already.  Is it possible to update your engine to npm 3.x  in the package.json ?
Thanks in advance.

Hi @smartmouse thanks for pointing this out! Npm engine field is now set to npm: ">=2" a57d10eccb718f9e5ea968f29081c12b1c42cb81


Source code

Hi,
Can you please provide the source code?
Thank you.

Hi,
sorry for the delay. I will provide the code asap and let you know

Thank you very much.

Hi,
I uploaded the code and I'm closing the issue.

Hi,
Thank you very much. It was a great help.
Regards
Manisha


Pure s3 api

Provides a S3 pure implementation where the user will be required to work with the cats.effect.Resource[Task, S3], where S3 is a trait that exposes the api and stores a state of the s3Client that will be closed when the Resouce is released.
There are two different ways of creating the S3 Resource.

S3.create() : Which reads the authentication configuration passed by the user in application.conf, or falls back to reference.conf.

S3.createWith(credentialsProvider, region, httpClient): In this case the configurations are passed directly through the method arguments.

S3.createUnsafe(s3AsyncClient: S3AsyncClient): The 'unsafe' way of interacting with S3, since in this case we can't make sure if the s3AsyncClient is a valid instance or if it has been previously closed by another process, etc.

The bugfixes on the UploadMultipartSubscriber have been addressed.

Resolves https://github.com/monix/monix-connect/issues/388: Now it requires a minChunkSize of 5MB, since if a smaller one is passed the S3 service will hang indefinitely.

Resolves https://github.com/monix/monix-connect/issues/301 : This is achieved by defining partN is defined as an asyncronous lock MVar, that will block the release of the CompleteMultipartRequest until the response from the last part upload was received.
This is necessary since when onComplete is called from the upstream, we collect all the completed part responses and send it to S3, thus, the last uploaded part would not be included in the final request if it is still ongoing. Causing a final checksum error.

@Avasil would be great to know your thoughts on the new api, you do it :)

@Avasil would be great to know your thoughts on the new api, you do it :)

I will take a look in the next days:)

I've left some minor nitpicks/suggestions.
I like this approach a lot!

Thanks for reviewing it! :D
Have addressed your comments

@Avasil do you think this could already be merged? I'm currently working on doing the same change for dynamodb

@Avasil do you think this could already be merged? I'm currently working on doing the same change for dynamodb

Sure, I think it looks good. I've replied to evalOnce comment but feel free to go ahead with it, sorry for the delay

@Avasil do you think this could already be merged? I'm currently working on doing the same change for dynamodb

Sure, I think it looks good. I've replied to evalOnce comment but feel free to go ahead with it, sorry for the delay

No worries, thanks for your review ! :)


Pin QEMU to 0.5.7

Problem
QEMU Failing
Change overview
Pin to 0.5.7
Testing
CI

Filed: https://github.com/project-chip/connectedhomeip/issues/10123


Code refactoring

This issue functions as a poll for current small refactoring points. To add something to this issue just write a comment below.

Check database and code for classes/tables that should use a singular but currently us a plural.

Check for unused imports


Allow Minecraft-version-specific subfolders in the mods folder

The main use case is for people who use the vanilla launcher, which only has one mods folder shared between potentially many instances. Forge allows you to create subfolders in the mods folder named the same as each Minecraft version, and FML will not attempt to load mods from subfolders not matching your current version. I know quite a few people find it annoying that Fabric loader does not allow you to do the same thing, so it would be nice if Quilt loader had this feature.

Can't you use multiple different installations with separate game directories for different versions? We wouldn't want to encourage people to use the same game directory across several versions anyway.

IMO FML's doing this is a relic from before it was easy to separate instances into their own directories.
Perhaps we should instead make quilt installer optionally create a new directory for the quilt install?

Can't you use multiple different installations with separate game directories for different versions? We wouldn't want to encourage people to use the same game directory across several versions anyway.

It's complicated and I recall mods not working nicely with that; though that experience must be a few years old by now.

Can't you use multiple different installations with separate game directories for different versions? We wouldn't want to encourage people to use the same game directory across several versions anyway.

It's complicated and I recall mods not working nicely with that; though that experience must be a few years old by now.

I have had no complications with such a thing. On Vanilla launcher its as simple as changing the installation folder to somewhere else and then dragging the mods in there instead.

From experience, this is a (mostly) one line change. Another possibility would be implementing an API for specifying additional folders on the fly.

Can't you use multiple different installations with separate game directories for different versions? We wouldn't want to encourage people to use the same game directory across several versions anyway.

It's complicated and I recall mods not working nicely with that; though that experience must be a few years old by now.

I have had no complications with such a thing. On Vanilla launcher its as simple as changing the installation folder to somewhere else and then dragging the mods in there instead.

WAIT U CAN DO THAT IN THE VANILLA LAUNCHER.
i wish i knew that its literally the reason i switched to gd (multimc didnt have support for microsoft accs at that time) i feel like this should be the default tho i didnt even know that was an option even as a technical user.

Different from Forge/FML Mods, Quilt/Fabric Mod can be cross-versions (e.g. 1.16-1.18.2).
So maybe this could be better:
mods
| - foo-0.1.jar
| - 1.18.2/      # For 1.18.2 only
| | - bar-0.1-1.18.2.jar
| - 1.17.x/      # For 1.17.x, aka >=1.17- <1.18-
| | - bar-0.1-1.18.jar
| - lorem_ipsum_dolor/
| | - mods.properties     # aka mods.txt, to adapt common Windows users
| | - baz-1.0.3.jar

mods.properties:
# optional, default true.
# if false, mods in this directory won't be loaded.
quilt=true
# optional, default *
# blank == *
versions=>=1.16- <1.18-

This has been implemented, see https://github.com/QuiltMC/quilt-loader/wiki/Mod-Loading-Behaviour


Do not create ACL resource if Bucket Owner Enforced

what
Do not create acl resource when s3_object_ownership=BucketOwnerEnforced
why
ACL is not allowed when object ownership is BucketOwnerEnforced
https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
references
closes #299

@Mergifyio refresh

The bug is already fixed within #301


refactor: Cleanup imports for simple tree-shaking

Description
This PR cleans up the imports from app/scripts/gosling-exports.js to be the most minimal spanning import tree. The prior imports traversed many code-paths from the higlass code base which were very challenging to resolve without extensive bundler configuration.
With these changes, it is trivial to bundle app/scripts/gosling-exports.js into a single, ES module which can be consumed either as a package or vendored directly into Gosling. From the root of the HiGlass repo:
npx rollup app/scripts/gosling-exports.js > higlass-vendored.js

import { scaleLinear, scaleLog, scaleQuantile } from 'd3-scale';
import { precisionPrefix, formatPrefix, format } from 'd3-format';
import slugid from 'slugid';
import { color, rgb } from 'd3-color';
import * as PIXI from 'pixi.js';
import { mean, deviation, variance, sum, range, median, ticks, bisector } from 'd3-array';
import ndarray from 'ndarray';
import { select } from 'd3-selection';
import { brushX, brushY } from 'd3-brush';
import { globalPubSub } from 'pub-sub-es';

var fakePubSub = {
  __fake__: true,
  publish: () => { },
  subscribe: () => { },
  unsubscribe: () => { },
};

/**
 * Check if a 2D or 1D point is within a rectangle or range
 * @param   {number}  x  The point's X coordinate.
 * @param   {number}  y  The point's Y coordinate.
 * @param   {number}  minX  The rectangle's start X coordinate.
 * @param   {number}  maxX  The rectangle's start X coordinate.
 * @param   {number}  minY  The rectangle's start X coordinate.
 * @param   {number}  maxY  The rectangle's start X coordinate.
 * @return  {boolean}  If `true` the [x,y] point is in the rectangle.
 */
const isWithin = (x, y, minX, maxX, minY, maxY, is1d = false) =>
  is1d
    ? (x >= minX && x <= maxX) || (y >= minY && y <= maxY)
    : x >= minX && x <= maxX && y >= minY && y <= maxY;

class Track {
  constructor(context) {
    this.context = context;

    const { id, pubSub, getTheme } = context;
    if (pubSub) {
      this.pubSub = pubSub;

Spits out a ~7000 line javascript file that we could check in directly to Gosling. We could also publish this file as a separate package if we wanted. Just with an disclaimer: "Do not edit this file" etc.
I think this might be the most simple solution for the time being and avoids the need to touch the higlass build or publish a new package. Alternatively, we could rewrite the imports for higlass to use proper .js extensions and then export a submodule in the package.json with:
{
  "exports": {
    "./gosling-internal": "./app/scripts/gosling-exports.js"
  }
}

Since that part of the codebase would be pure ESM (using proper file extensions for imports).

Moving fakePubSub from ./app/scripts/hocs/with-pub-sub.jsx to ./app/scripts/utils/fake-pub-sub.js completely removes "react" from the code path in the final bundle :)
Changing the imports for fake from ./app/scripts/hocs/with-pub-sub to

hmmm I think this might have introduced a bug. Tests are now failing. Wait to merge maybe....

This is amazing, thanks! It didn't occur to me to run a separate rollup command. Merging.
I like the idea of rewriting imports to use .js extensions. Perhaps I'll do that too when I get rid of slugid


Add loader reference to the beta docs

Description (required)
Adds a loader API reference page
Related issues & labels (optional)

Closes PLT-2514

@ArmandPhilippot Thanks for the detailed review! Addressing the point about the DataStore types, it seems you're looking at the wrong branch. In the 5.0 branch DataStore is the type previously called ScopedDataStore. See https://github.com/withastro/astro/pull/11914

I've extracted the DataEntry type into another section, instead of documenting it inside the get and set methods.

@ArmandPhilippot thanks! And yes, you're right the addModuleImport JSDoc does need updating. The actual text is wrong too. I'll handle that in the repo.


Password hashing is not there.

Passwords are getting stored without hashing. Software security can be improved by implementing this feature.

Hashed passwords are stored now.


lpush callback - should be optional?

Hi,
I'm using TypeScript and was wondering if lpush callback should be required (like it is now) when I'm using promises, or it's a mistake in the types.

Hi @razboo 👋
callbacks are definitely optional when working with Promises, and we have tests for it: https://github.com/luin/ioredis/blob/main/test/typing/commands.test-d.ts#L7-L9. Let me know if that is not your case.

Hi @luin,
I'm using lpush command but from what I see in RedisCommander, it seems that the callback param is not optional (as opposed to other commands which have optional callbacks)

I'm getting a compile error there after upgrading from 4 -> 5

The second lpush signature doesn't have callback so it should fit your need.

@luin I missed the usage of the rest parameter. Thanks!


images: Remove copyright years from copyright notices

Follow-up to 314ca7baeff4: remove copyright years from copyright notices in files under images/. This directory had been left aside at the time because of the additional steps required to update the images (the PR was already big enough without this).

/test

Daniel reviewed for cilium/build, so all required reviews are in. I'm marking as ready-to-merge.


MVP - invoice generation, browsing, showing and downloading as PDFs

What is done:

triggering domain event "Order Placed" when order is placed
copying minimal order data to invoice model on order placed
browsing all invoices (admin)
showing invoice data in HTML (admin)
generating invoice PDFs on the fly (admin)

What needs to be done:

much more data copied to invoice model (addresses, items data, tax rates etc.)
generating invoice pdfs in the background (Messenger component?)
sending invoices to customer
browsing order's invoices
seeing invoices as a customer in the fronted panel

Thanks Kamil 🥈


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/1057 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target.git

Docs Build status updates of commit b49c665:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: RepositoryUnauthorizedWithSourceCommit] Git data access to 'https://github.com/opstest2/docs-archive-test-source' (branch: Release_Archive_main_2022-02-21-01-20-27) is not authorized.. It looks like this might be the first time user: v-alji submitted a pull request to this repo. Before user can run builds in a pull request, he/she can enable 'v-alji' GitHub account in Docs by visiting Docs Portal (https://ops.microsoft.com). After enabling his/her account (v-alji), close and then reopen this pull request to start another build.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


bug: angular change detection gets triggered several times during element creation

Bug Report
Ionic version:

[x] 4.x
Current behavior:

Having many Ionic 4 components on a page slows down the initial display significantly. Having investigated the performance profile, it was found that custom element callbacks such as attributeChangedCallback were triggered many many times and Angular's change detection (NgZone#onMicrotaskEmpty -> ApplicationRef#tick) gets triggered every time.
Expected behavior:

Unnecessary change detection should not run while each Ionic component's element are created.
Steps to reproduce:

Ionic 4.2.0
Angular 7.2.11
zone.js 0.8.29

Opening (i.e. navigating to) a page with many many Ionic components while taking profile on Chrome Inspector's Performance tab. Searching for 'detectChanges' will tell you a large number of change detection has run.
Related code:

Having following line in zone-flags.ts, which is imported in polyfills.ts just before zone.js is imported, resolves the issue.
(window as any).__Zone_disable_customElements = true;

Alternatively downgrading zone.js to 0.8.26 should have the same effect as zone.js only patches customElement v1 since 0.8.27 (see https://github.com/angular/zone.js/pull/1133).
Other information:

I have given a quick search over existing issues:

performance issue reported in https://github.com/ionic-team/ionic/issues/17641 may be related

Ionic info:

Ionic:

   ionic (Ionic CLI)             : 4.12.0
   Ionic Framework               : @ionic/angular 4.2.0
   @angular-devkit/build-angular : 0.13.6
   @angular-devkit/schematics    : 7.3.6
   @angular/cli                  : 7.3.6
   @ionic/angular-toolkit        : 1.4.1

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : android 7.1.4, browser 6.0.0, ios 5.0.0
   Cordova Plugins       : cordova-plugin-ionic 4.1.7, cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.4.1, (and 21 other plugins)

System:

   Android SDK Tools : 26.0.2 (/■■■■■/Android/sdk)
   ios-deploy        : 1.9.2
   ios-sim           : 7.0.0
   NodeJS            : v8.9.1 (/■■■■■/node/v8.9.1/bin/node)
   npm               : 6.8.0
   OS                : macOS Mojave
   Xcode             : Xcode 10.1 Build version 10B61

Hi there,
Thanks for the issue. We do not maintain development of zone.js. If you are running into an issue with zone.js, you can submit an issue on the zone.js GitHub.
I am going to close this as this is not an Ionic issue. The changes made in zone.js affect Web Components in general, not just Ionic components.
Thanks for using Ionic!

Hmm. I’m not sure if this issue belongs to zone.js. zone.js is a vital part of angular ecosystem and @ionic/angular is supposed to work well with it.
In fact, @ionic/angular deliberately initialises Ionic inside the angular zone excluding certain things. As such, it seems to me like this has more to do with how @ionic/angular integrates itself into Angular than zone.js interacts with web components in general.
https://github.com/ionic-team/ionic/blob/v4.2.0/angular/src/app-initialize.ts

Hi there,
Thanks for the follow up. Can you provide an example repository where your app is slow as a result of having this zone.js change?
Thanks!

@liamdebeasi  I’ll give it a try over the weekend. When I experimented it, it reproduced even with 100 ion-items in a list; shouldn’t be too hard to make a sample app to publish.

Example repository:
https://github.com/ippeiukai/ionic-issue18020

Without __Zone_disable_customElements
https://github.com/ippeiukai/ionic-issue18020/tree/master

Profile-20190415T105232.json.zip

With  __Zone_disable_customElements
https://github.com/ippeiukai/ionic-issue18020/tree/with_zone_custom_elements_disabled

Profile-20190415T105300.json.zip

Hi there,
Thanks for the follow up! Which version of Chrome was this tested on?

@ippeiukai, @liamdebeasi, just like @ippeiukai said, zone.js patched all APIs of CustomElements from 0.8.27, and will cause additional change detection.
And because now all ionic component is WebComponent, so this issue occured.
I checked the source of ionic/stencil,
For example,  https://github.com/ionic-team/stencil/blob/647a47d34631e3f5a7a5335cc7cacd0a75ba71b6/src/core/attribute-changed.ts
stencil basically will register such kind of callback to handle such as attribute/property mapping handlings.
So if those callbacks(connected/attributeChangedCallback/etc... which are registered by stencil or ionic, will not be invoked from outside of Angular, for example from some vanilla js on the same page. We can just disable zone.js patching Custom Elements. And if this is the common case in ionic, maybe we can deploy this zone-flag.ts with (window as any).__Zone_disable_customElements = true; inside with ionic together.

Hi @ippeiukai,
What @JiaLiPassion said sums things up pretty well. On the Ionic side, we are going to look into a way we can automatically include (window as any).__Zone_disable_customElements = true; for all Ionic/Angular users. While I don't think this is an Ionic bug, I do agree that the net result is undesirable in the situation you presented.
Thanks for bringing this to our attention! I'll post again here when I have an update. 🙂

Hi @ippeiukai,
I updated the Ionic starters to include this flag by default. Additionally, we will update the documentation to provide instructions for developers who already have Ionic apps/create Ionic apps outside of the CLI.
Thanks!

Hi @liamdebeasi ,
Could you please provide the doc link for this fix.

The docs should be deployed soon, but here is the source that you can read: https://github.com/ionic-team/ionic-docs/pull/651


impl TryFrom<&Robj> for all types and allow &Robj etc. as inputs.

In addition to TryFrom<Robj> we should also impl TryFrom<&Robj> for all types.
In the case:
fn polymorphic_int(v: Rint) {

}

fn polymorphic_float(v: Rfloat) {

}

fn polymorphic(val: Robj) {
    if let Ok(v) = Rint::try_from(val.clone()) {
        polymorphic_int(v);
    } else if let Ok(v) = Rfloat::try_from(val) {
        polymorphic_float(v);
    }
}

It would be nice to drop the clone and use &Robj for the input.

I think we could write an attribute macro for doing this, whereby we implement the trait on the reference type and it automatically creates a copy of that conversion trait for the owned type.

Internally, this has been done throughout. There might be missing impls here or there, but these were largely adressed. Closing this issue for now.
A potential follow-up issue is maybe providing downstream users with such a macro.


make read me more enhance

❤

❤

❤

❤

❤
Obter o Outlook para Androidhttps://aka.ms/AAb9ysg

From: C. Hodor @.>
Sent: Thursday, October 31, 2024 11:41:30 AM
To: Thinkright20/Profile-Badges @.>
Cc: Subscribed @.***>
Subject: Re: [Thinkright20/Profile-Badges] make read me more enhance (Issue #339)
❤
—
Reply to this email directly, view it on GitHubhttps://github.com/Thinkright20/Profile-Badges/issues/339#issuecomment-2450057143, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AY22KGLICKPRG3FS7WQYIE3Z6I6RVAVCNFSM6AAAAABPNEFKPGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJQGA2TOMJUGM.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

❤

❤

❤

Oi @Minhoru123 , tdo bm

Hello World ⭐, I come from VietNam it very nice to meet everybody here ❤


Treat ceil(), floor(), and round() as safe for output

Is your feature request related to a problem?
When outputting a numeric value as an integer, the absint() and intval() functions are treated as safe for output by WPCS. The same is not true for ceil(), floor(), and round().
Describe the solution you'd like
The ceil(), floor(), and round() functions should be added to the Sniff:$escapingFunctions property.

Would make sense to actually extend it to all functions that return int or float, since that is always safe for output


Add a getStackTrace API to Isolate class

So a release-mode Flutter app may use another Isolate to sample the main Isolate's stack trace for identifying performance bottlenecks using real device data in the wild.
The usage would be similar to this Android API call
Looper.getMainLooper().getThread().getStackTrace();
According to the discussion between @rmacnak-google and @a-siva , this should not be difficult to add as Isolate already has capabilities to be paused in the release mode.

/cc @lrhn

up

Here's a proposal to get started. This method is modeled after Isolate.ping.
class Isolate {
...
/// Requests the isolate send its [StackTrace.current] to [responsePort].
///
/// If the isolate is alive, it will eventually send a [StackTrace] on the response
/// port.
///
/// This request always has the [immediate] priority. (Using the [beforeNextEvent]
/// priority would by definition always result in an empty stack trace.)
///
/// This API is suitable for implementing a watchdog isolate that queries the state of
/// of a slow or unresponsive isolate. It is not suitable for performance profiling due
/// to its overhead. For performance profiling, see Observatory.
void getStackTrace(SendPort responsePort);
}

Possible duplicate of https://github.com/dart-lang/sdk/issues/36865 ?

The feature request in https://github.com/dart-lang/sdk/issues/36865 is for a native API call whereas here we have Dart code wanting to access the stack trace.

Ahh, I see.  Ok.
But in theory, if this is implemented, the native side could talk to dart on port right?

#38709

Oh,I need this function!!!!

The pause operation only pauses isolates at the event loop. In general, most isolate control messages only take effect when control gets back to the event loops.
Getting a current stack trace would need to be different from that, they wouldn't make much sense at the event loop. That means that receiving and recognizing the request must happen on a different thread than the one executing the isolate's code. It can't just check incoming events when it gets back to the event loop.
I do believe the VM has the ability to kill an isolate "immediately", so it's perhaps not completely new.
Dart isolates are (or were originally) considered the units of security. Probing another isolate might be able to expose private information. I'm not sure exactly how, but hackers are very, very clever - maybe asking for 1000 stack traces and checking how they differ can allow a timing attack against encryption keys, or something. With dart:ffi, we may be well past security concerns, but we should make it clear that isolates are not actually isolated any more if we allow this kind of inspection from a different isolate.
We might want to introduce a capability controlling the functionality.
Changing the Isolate API may be a problem (not sure if anyone implements Isolate). That would be needed for the capability alone, even if we make the currentStackTrace() operation static or an extension method.
Otherwise the functionality seems reasonable.

I want this native API too...

Having this seems possible despite some security concerns. I wonder if there's any recent update on this?

Is there any updates on this?

up

//cc @aam

What @rmacnak-google outlined seems to be totally doable.
It would be good to confirm the use cases folks are hoping to solve with this though.
One is watching for coarse-grained performance issues with some isolates(there is profiler and observatory for fine-grained performance analysis).
Anything else?

The use case I came with is from Flutter; error reporting plugins such as Sentry could benefit from dumping stack trace of every known isolate to have a better picture of what's going on in the app when an uncaught exception is raised.

Hi, is there any updates? I hope to implement a simple profiler, which samples the stack trace at (say) 1000Hz and draw a framegraph, in production builds.


[ENHANCEMENT] Harvester should display and honor the "virtual size" of uploaded qcow2 images

Is your enhancement related to a problem? Please describe.
In case we upload the SLE Micro 5.5 image (SLE-Micro.x86_64-5.5.0-Default-qcow-GM.qcow2) and create a new VM based on this image with default settings - the VM crashes during bootup.
Reason for this is that the default OS disk size in Harvester is 10 GB but the OS in this case requires 13 GB at least.
Because Harvester in this case "shrinks" below the minimum required - it causes the OS not to work.
 qemu-img info SLE-Micro.x86_64-5.5.0-Default-qcow-GM.qcow2
image: SLE-Micro.x86_64-5.5.0-Default-qcow-GM.qcow2
file format: qcow2
virtual size: 20 GiB<PHONE_NUMBER>0 bytes)
disk size: 955 MiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false

Describe the solution you'd like
Within a qcow2 image we can see the "virtual size" of an image - this should be taken as default for the OS image size at least. In case the admin selects something smaller - a warning should show up that there is a risk for problems if the OS disk is created smaller.
Describe alternatives you've considered
Manual adjustment of OS disk size during VM creation - this works but is not very user-friendly as Harvester does not give any idication of "more space required for the OS".
Additional context
Also the image overview in Harvester should show the "virtual size" in additon to the current "disk size" to help administrators.

Because Harvester in this case "shrinks" below the minimum required - it causes the OS not to work.

That's put very mildly. Harvester litererally deletes OS data from the disk in this case.

I thought that would be helpful and prevent the user from being confused about the VM crash.
WDYT?  cc @bk201, @markhillgit

I hit the same issue experimenting with the SLE Minimal VM image (not the Cloud one):
> qemu-img info SLES15-SP5-Minimal-VM.x86_64-kvm-and-xen-QU1.qcow2
image: SLES15-SP5-Minimal-VM.x86_64-kvm-and-xen-QU1.qcow2
file format: qcow2
virtual size: 24 GiB<PHONE_NUMBER>6 bytes)
disk size: 255 MiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false
Child node '/file':
    filename: SLES15-SP5-Minimal-VM.x86_64-kvm-and-xen-QU1.qcow2
    protocol type: file
    file length: 255 MiB (267845632 bytes)
    disk size: 255 MiB

If you don't know to set a larger volume size, the VM will just hang forever on boot waiting for the disk:

I think Martin's suggestion solution seems reasonable (take the image's virtual size as the default if it's larger than harvester's default of 10GiB)

Same issue when using large ISO images (e.g. SLE-15-SP5-Full-x86_64-GM-Media1.iso). In this case, when trying to install SLE from an ISO that's been truncated to 10GiB, it manifests as this confusing error in the VM console:

I decided to see if I could figure out how to fix this.
For image storage, Harvester uses Longhorn's backing image feature (https://longhorn.io/docs/1.6.0/advanced-resources/backing-image/backing-image/). Any images uploaded into harvester are stored by Longhorn as backing images, which are separate to volumes. You can see them if you go "Setting: Backing Image" in the Longhorn UI.
When creating new VMs, Harvester puts some annotations in the VM metadata to indicate which volumes it wants, which storage classes to get them from, and how big the user wants those volumes to be, e.g.:
type: kubevirt.io.virtualmachine
metadata:
  namespace: default
  annotations:
    harvesterhci.io/volumeClaimTemplates: >-
    [
       {
          "metadata" : {
             "annotations" : {
                "harvesterhci.io/imageId" : "default/image-87dw7"
             },
             "name" : "sle-micro-55-disk-0-oz2bc"
          },
          "spec" : {
             "accessModes" : [
                "ReadWriteMany"
             ],
             "resources" : {
                "requests" : {
                   "storage" : "20Gi"
                }
             },
             "storageClassName" : "longhorn-image-87dw7",
             "volumeMode" : "Block"
          }
       },
       {
          "metadata" : {
             "annotations" : {
                "harvesterhci.io/imageId" : "default/image-vv6s6"
             },
             "name" : "sle-micro-55-disk-2-3p3r8"
          },
          "spec" : {
             "accessModes" : [
                "ReadWriteMany"
             ],
             "resources" : {
                "requests" : {
                   "storage" : "10Gi"
                }
             },
             "storageClassName" : "longhorn-image-vv6s6",
             "volumeMode" : "Block"
          }
       }
    ]
    network.harvesterhci.io/ips: '[]'
  labels:
    harvesterhci.io/creator: harvester
  name: sle-micro-55
[...]

Those storage classes in turn specify which backing images to use. Looking at the first storage class in the example above:
# kubectl -n longhorn-system get storageclass longhorn-image-87dw7 -o yaml
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  creationTimestamp: "2024-01-09T03:08:29Z"
  name: longhorn-image-87dw7
  resourceVersion: "51261"
  uid: 38e1657a-79fc-41e5-88e0-b51200d20d73
parameters:
  backingImage: default-image-87dw7
  migratable: "true"
  numberOfReplicas: "3"
  staleReplicaTimeout: "30"
provisioner: driver.longhorn.io
reclaimPolicy: Delete
volumeBindingMode: Immediate

Now let's look at the backing image:
# kubectl -n longhorn-system get lhbi default-image-87dw7 -o yaml
apiVersion: longhorn.io/v1beta2
kind: BackingImage
metadata:
  annotations:
    harvesterhci.io/imageId: default/image-87dw7
  creationTimestamp: "2024-01-09T03:08:29Z"
  finalizers:
  - longhorn.io
  generation: 12
  labels:
    longhorn.io/component: backing-image
    longhorn.io/managed-by: longhorn-manager
  name: default-image-87dw7
  namespace: longhorn-system
  resourceVersion: "48570880"
  uid: 1530d5cf-5dae-405e-8028-3a660609a91e
spec:
  checksum: ""
  disks:
    1deb74a7-9b57-4c80-ae2a-f4ac2214d78f: ""
    399b076f-2ab7-4138-8540-bab8103abde5: ""
    515a8af5-7664-4577-b65e-769890860769: ""
  sourceParameters:
    url: http://<IP_ADDRESS>/SLE-Micro.x86_64-5.5.0-Default-qcow-GM.qcow2
  sourceType: download
status:
  checksum: 1bbfc258229011fc4be34d35e823dab72431f577de5027d88f9236bbb8b786f25ca976422dfb55a02194215b0b717fbba033516c2b8c32b46c6587a580aaa748
  diskFileStatusMap:
    1deb74a7-9b57-4c80-ae2a-f4ac2214d78f:
      lastStateTransitionTime: "2024-01-09T07:36:04Z"
      message: ""
      progress: 100
      state: ready
    399b076f-2ab7-4138-8540-bab8103abde5:
      lastStateTransitionTime: "2024-02-13T08:51:23Z"
      message: ""
      progress: 100
      state: ready
    515a8af5-7664-4577-b65e-769890860769:
      lastStateTransitionTime: "2024-02-13T08:51:23Z"
      message: ""
      progress: 100
      state: ready
  diskLastRefAtMap: {}
  ownerID: harvester-node-1
  size:<PHONE_NUMBER>
  uuid: def790f9

This is SLE-Micro.x86_64-5.5.0-Default-qcow-GM.qcow2. Note the size right at the end of the above chunk of YAML.<PHONE_NUMBER> / 1024 / 1024 == 955MiB, i.e. the size of the qcow2 image.
Note the absence of any information about the virtual size of that qcow2 image, which is what we'd need to query to correctly populate the volume size in the Harvester UI before VM creation.
TL;DR: ISTM the first thing we need to do is make Longhorn expose the virtual size of qcow2 backing images...

Something like this should do the right thing for the Harvester VM creation page:
--- a/pkg/harvester/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/vmImage.vue
+++ b/pkg/harvester/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/vmImage.vue
@@ -140,6 +140,40 @@ export default {

     onImageChange() {
       const imageResource = this.$store.getters['harvester/all'](HCI.IMAGE)?.find( I => this.value.image === I.id);
+      const imageSize = imageResource.status?.size;
+
+      if (imageSize) {
+        // This is easy, but not great because for really small images (<1GiB,
+        // e.g. a 20MiB ignition image I was testing), the size comes out in the
+        // UI as 0.02GiB, but the input field doesn't ordinarily let you use
+        // decimals (it wants whole numbers).
+        this.$set(this.value, 'size', imageSize);
+
+        // One way of dealing with the decimal problem is to force the volume
+        // size to be the nearest whole number of GiB greater than or equal to
+        // the actual image size:
+        const imageSizeGiB = Math.ceil(imageSize / 1024 / 1024 / 1024);
+
+        this.$set(this.value, 'size', `${ imageSizeGiB }Gi`);
+
+        // Note that in both the above cases, the size is automatically reset
+        // any time a different image is selected, so if the user wants to
+        // override the value for any reason, they need to set the size _after_
+        // selecting an image, vs. the current behaviour where the size can be
+        // set before selecting an image, and choosing a different image doesn't
+        // change it.
+
+        // Once we get Longhorn backing images to expose the virtual size of
+        // qcow2 images (assuming that's done with a separate status value) we
+        // could maybe do something like this:
+        const imageVirtualSize = imageResource.status?.virtualSize;
+
+        if (imageVirtualSize) {
+          const imageVirtualSizeGiB = Math.ceil(imageVirtualSize / 1024 / 1024 / 1024);
+
+          this.$set(this.value, 'size', `${ Math.max(imageSizeGiB, imageVirtualSizeGiB) }Gi`);
+        }
+      }

       if (this.idx === 0) {
         if (/iso$/i.test(imageResource?.imageSuffix)) {

The logic for the Harvester VM creation page onChange() handler also needs to go into getDiskRows() in pkg/harvester/mixins/harvester-vm/index.js, so that correct defaults are set when you click "Create a Virtual Machine" on an image on the Images page. Something like the following. As a bonus, this also makes sure the bus and type are set correctly initially for ISO images (as is also done in the onChange() handler):
--- a/pkg/harvester/mixins/harvester-vm/index.js
+++ b/pkg/harvester/mixins/harvester-vm/index.js
@@ -400,15 +400,41 @@ export default {
       let out = [];

       if (_disks.length === 0) {
+        let bus = 'virtio';
+        let type = HARD_DISK;
+        let size = '10Gi';
+
+        const image = this.images.find( I => this.imageId === I.id);
+        const imageSize = image?.status?.size;
+
+        if (imageSize) {
+          const imageSizeGiB = Math.ceil(imageSize / 1024 / 1024 / 1024);
+
+          size = `${ imageSizeGiB }Gi`;
+
+          const imageVirtualSize = image.status?.virtualSize;
+
+          if (imageVirtualSize) {
+            const imageVirtualSizeGiB = Math.ceil(imageVirtualSize / 1024 / 1024 / 1024);
+
+            size = `${ Math.max(imageSizeGiB, imageVirtualSizeGiB) }Gi`;
+          }
+        }
+
+        if (/iso$/i.test(image?.imageSuffix)) {
+          bus = 'sata';
+          type = CD_ROM;
+        }
+
         out.push({
           id:               randomStr(5),
           source:           SOURCE_TYPE.IMAGE,
           name:             'disk-0',
           accessMode:       'ReadWriteMany',
-          bus:              'virtio',
+          bus,
           volumeName:       '',
-          size:             '10Gi',
-          type:             HARD_DISK,
+          size,
+          type,
           storageClassName: '',
           image:            this.imageId,
           volumeMode:       'Block',

Still need to figure out the Longhorn bit...

We also need something like this piece of glue in the main harvester repo:
--- a/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachineimages.yaml
+++ b/deploy/charts/harvester-crd/templates/harvesterhci.io_virtualmachineimages.yaml
@@ -123,6 +123,9 @@ spec:
                 type: integer
               storageClassName:
                 type: string
+              virtualSize:
+                format: int64
+                type: integer
             type: object
         required:
         - spec

--- a/pkg/apis/harvesterhci.io/v1beta1/image.go
+++ b/pkg/apis/harvesterhci.io/v1beta1/image.go
@@ -77,6 +77,9 @@ type VirtualMachineImageStatus struct {
 	// +optional
 	Size int64 `json:"size,omitempty"`

+	// +optional
+	VirtualSize int64 `json:"virtualSize,omitempty"`
+
 	// +optional
 	StorageClassName string `json:"storageClassName,omitempty"`

--- a/pkg/controller/master/image/backing_image_controller.go
+++ b/pkg/controller/master/image/backing_image_controller.go
@@ -51,6 +51,8 @@ func (h *backingImageHandler) OnChanged(_ string, backingImage *lhv1beta2.Backin
 			harvesterv1beta1.ImageImported.Message(toUpdate, status.Message)
 			toUpdate.Status.Progress = status.Progress
 			toUpdate.Status.Size = backingImage.Status.Size
+			// Requires update to "github.com/longhorn/longhorn-manager/k8s/pkg/apis/longhorn/v1beta2".BackingImageStatus
+			toUpdate.Status.VirtualSize = backingImage.Status.VirtualSize
 		} else if status.Progress != toUpdate.Status.Progress {
 			harvesterv1beta1.ImageImported.Unknown(toUpdate)
 			harvesterv1beta1.ImageImported.Reason(toUpdate, "Importing")

Verified this enhancement has been applied.
Test Information

Environment: qemu/KVM 3 nodes
Harvester Version: v1.4-1305f11-head
ui-source Option: Auto

Verify Steps

Install Harvester with any nodes
Upload qcow2 images
Uploaded qcow2 images should display virtual size in the GUI which same as executing command qemu-img info in the command line.


Use random port in unittests

I was seeing random issues from these tests, most likely due to sharing the same port number.

Changes merged with https://github.com/pyansys/pyfluent/pull/1378


[Dev Vers.] Debug Options has a blank option.

I don't know if the dev version of REDRIVER2 is still supported, but I'll report this issue I have found. In the debug options menu there is a blank button at the top, which if you try to press it won't do nothing. This also happens to the other languages as well.
Here's a screenshot of the problem:

DEV version features/bugs is often considered not to use by regular users, this one is not exception.
Dev menu is also is not translated - and will be not.


ERR_SSL_VERSION_OR_CIPHER_MISMATCH

I deployed this controller in a kind cluster to expose some HTTP services, but I encountered an error when accessing them.

https://httpbin.kind.libcuda.so/
https://dashboard.kind.libcuda.so/

warning log in connector
2023-06-11T09:31:18Z INF Starting tunnel tunnelID=b312c9ff-0a86-4742-b20e-80e9bd3ccc6d
2023-06-11T09:31:18Z INF Version 2023.5.1
2023-06-11T09:31:18Z INF GOOS: linux, GOVersion: go1.19.9, GoArch: arm64
2023-06-11T09:31:18Z INF Settings: map[no-autoupdate:true token:*****]
2023-06-11T09:31:18Z INF Generated Connector ID: 1c635389-cde3-4877-b985-39a3b994f034
2023-06-11T09:31:18Z INF Initial protocol quic
2023-06-11T09:31:18Z INF ICMP proxy will use <IP_ADDRESS> as source for IPv4
2023-06-11T09:31:18Z INF ICMP proxy will use fe80::6056:aeff:fee8:cc51 in zone eth0 as source for IPv6
2023-06-11T09:31:18Z WRN The user running cloudflared process has a GID (group ID) that is not within ping_group_range. You might need to add that user to a group within that range, or instead update the range to encompass a group the user is already in by modifying /proc/sys/net/ipv4/ping_group_range. Otherwise cloudflared will not be able to ping this network error="Group ID 65532 is not between ping group 1 to 0"
2023-06-11T09:31:18Z WRN ICMP proxy feature is disabled error="cannot create ICMPv4 proxy: Group ID 65532 is not between ping group 1 to 0 nor ICMPv6 proxy: socket: permission denied"
2023-06-11T09:31:18Z INF Starting metrics server on <IP_ADDRESS>:42967/metrics
2023-06-11T09:31:18Z INF You requested 4 HA connections but I can give you at most 2.
2023/06/11 09:31:18 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Receive-Buffer-Size for details.
2023-06-11T09:31:19Z INF Registered tunnel connection connIndex=0 connection=3f6d841a-40ad-4543-8fd9-4d30eb656ff3 event=0 ip=<IP_ADDRESS> location=SIN protocol=quic
2023-06-11T09:31:20Z INF Updated to new configuration config="{\"ingress\":[{\"hostname\":\"httpbin.kind.libcuda.so\", \"path\":\"/\", \"service\":\"http://<IP_ADDRESS>:8000\"}, {\"hostname\":\"dashboard.kind.libcuda.so\", \"path\":\"/\", \"service\":\"http://<IP_ADDRESS>:8000\"}, {\"service\":\"http_status:404\"}], \"originRequest\":{}, \"warp-routing\":{\"enabled\":false}}" version=5
2023-06-11T09:31:20Z INF Registered tunnel connection connIndex=1 connection=3ee9dab3-8d4c-4107-9d7b-3d85e03b7686 event=0 ip=<IP_ADDRESS> location=HKG protocol=quic

I am not sure this issue has relations with this repository.
The log you provided does not reveal some information about SSL/TLS.
I guess this issue is most possibly related to the cloudflare configuraiton.
Maybe you could follow this instruction to resolve it:
https://developers.cloudflare.com/ssl/troubleshooting/version-cipher-mismatch/

Thank you for your reply. I discovered that nested subdomains are not supported by Cloudflare SSL by default.
https://community.cloudflare.com/t/argo-tunnel-nested-subdomain/273061

Oh yes... nested subdomain is only available in cloudflare paid plan.


Android 10 and Android R support

#147 There's been progress with the connect and network suggestions APIs, I am still learning more about the new expectations, but a draft PR will at least show that I'm actively pursuing Android R as well

Still in active development and actually moving to target Android S.

https://github.com/isuPatches/android-wisefy/pull/150. <-- Android R and Q are now 99% supported and the library has had a huge refactor to leverage coroutines.  Documentation will need to be completely re-written, but a release candidate will be cut after async functionality is completely added (only a few remaining APIs to go) and more testing is done.


postinstall does not get executed with pnpm

:wrench: Summary
If i run pnpm install in a freshly cloned git repo the postinstall script of lefthook gets not executed locally.
➜ pnpm --version
9.4.0
➜ node --version
v20.15.0
➜ cat package.json
{
	"name": "something",
	"version": "1.0.0",
	"type": "module",
	"private": true,
	"sideEffects": false,
	"scripts": {
		"clean": "git clean -fdX",
		"check": "biome check .",
		"check:fix": "biome check --fix .",
		"check:unused": "knip"
	},
	"devDependencies": {
		"@biomejs/biome": "1.8.2",
		"knip": "^5.22.2",
		"lefthook": "^1.6.18",
		"@playwright/test": "^1.45.0",
		"turbo": "2.0.4"
	},
	"engines": {
		"node": ">=v20.13.1",
		"pnpm": ">=9.1.2"
	},
	"packageManager"<EMAIL_ADDRESS>}
➜ cat lefthook.yml
pre-commit:
  parallel: true
  commands:
    check:
      run: pnpm turbo run check -- --staged --fix --no-errors-on-unmatched
      stage_fixed: true
    typecheck:
      run: pnpm turbo run typecheck
    test:
      run: pnpm turbo run test
    unused-code:
      run: pnpm turbo run check:unused

Lefthook version
1.6.18 4ea200b04d374ba1bb9f66a940430309a2838d27
Steps to reproduce

git clone <repo> target-dir
cd target-dir
pnpm install

Expected results
Configured git hooks in lefthook.yaml should be correctly installed in .git/hooks, resulting in git hooks getting triggered correctly.
➜ find .git/hooks/* -not -iname '*.sample'
.git/hooks/pre-commit
.git/hooks/prepare-commit-msg

Actual results
➜ find .git/hooks/* -not -iname '*.sample'

Should list all "installed" git hooks by lefthook (all files not matching *.sample
Possible Solution
I tried on the same Repo, same commit history, with npm and it works as expected, but not with pnpm. Even if i put enable-pre-post-scripts = true to the .npmrc within the repo, it does not get executed.
What did fix it for me was to add side-effects-cache = false to the .npmrc located in the git repository.
So i am not sure if its actually a bug with lefthook, but maybe it should get noted somewhere in your docs that the cache could prevent the installation of lefthook.

Yes, looks like it is enabled by default in new pnpm packages: https://pnpm.io/blog/2022/12/30/yearly-update#side-effects-cache-since-v700. Thank you for this finding. I will update the docs.


First of all, thanks for your nice work.

First of all, thanks for your nice work.
I have one question on the Synapse datasets. Did you only train on the eight organs or train on the thirteen organs but only report the metrics on the eight organs?


Be lenient to almost right computed throughput

Patch to fix CASSANDRA-10842

I'd prefer something like self.assertGreaterEqual(float(threshold) + 0.5, round(float(avgthroughput))) or self.assertGreaterEqual(float(threshold) * 1.05, round(float(avgthroughput))). I think that expresses the intended leniency better than rounding the second operand. Another downside of rounding is that it's not going to change the effective threshold by a fixed amount.
(For future reference, the proposed change won't always have the intended effect -- sometimes it will round up, making the comparison less lenient. In the future, if you want to truncate, you can use math.floor or int.)

The errors travis is finding are unrelated to this change.

Looks like the error Travis found was introduced here:
https://github.com/riptano/cassandra-dtest/commit/18f2f684e82c0e807a8068f73d53645991c568a8
@krummas and @pcmanus if you'll enable Travis on your dtest repositories, or exclusively introduce changes through PRs, you can run the checks before merging. I know it's a little regression, but it's something we like to keep clean.

@mambocab do we have a guide how to enable travis on dtest repos?

(For future reference, the proposed change won't always have the intended effect -- sometimes it will round up, making the comparison less lenient. In the future, if you want to truncate, you can use math.floor or int.)

Except that I didn't wanted to truncate. That it might round up is expected, I want 5.2 to be fine, but 5.8 not necessarily. And if 4.9 is rounded to 5.0, that makes no difference to that comparison. But anyway, I don't really care about the exact logic so changed it.

Except that I didn't wanted to truncate.

Fair, I assumed wrong. Thanks for the explanation.

and thanks for changing the logic, I definitely find it more readable.

do we have a guide how to enable travis on dtest repos?

@krummas It should be as simple as going to https://travis-ci.org/profile while logged in with your GitHub credentials, then enabling the krummas/cassandra-dtest repository there. You may want to make sure "Build pushes" is enabled at https://travis-ci.org/krummas/cassandra-dtest/settings. If that doesn't work, feel free to bug me and I'll see if I can find some docs on it.

Ok, I've run the tests locally and it looks good. Thanks, merging!


Not working with Vue 3

The Package is working with Vue 3. It is showing the following error.

Is this package support Vue 3 or not? because the readme file does not mention the supported version.
Thank you,

This package only supports Vue 2 and I don't have any plans at this time to update it. You're welcome to create your own fork or I would suggest using the source code here as a reference for implementing whichever of the components you are interested in your project.


Edit camp personnel Fixes #609

Proposed solution
in edit view:

Don't return users table when camp is new
Hide camp personnel selection when camp is new
in camp & edit view:
with interpolation show current logged in user's details as camp manager;
also show these details on other roles in camp (moop, safety and main contacts)

Tradeoffs
npm test fails when using db on a container
Testing Done
created a new camp, saw that camp personnel are with current users' details;
in edit camp view details should appear; if current users' phone number is missing get number from filled details.
verify details in camp overview.

Thanks Doron!
hope someone will be able to review soon

@Aroundafur looks good, waiting for the new PR