Add shortcodes to link to issues and pull-requests

It would be nice to be able to link to a particular issue.
When writing about e.g. an enhancement idea or a patch for a github-hosted project, it's good style to provide a link to the corresponding issue or pull request.
With wp-github, I would like to see a shortcode, that enhances this link by state, thus a link to an issue can be augmented by issue state (closed, open, has pull-request, merged, and so on).

thanks. Trying it currently - any chance to get current versions up in the wordpress plugin repository?

good to see the functionality at all, but I don't like how you implemented it.
The shortcode generates an unordered list with one single bullet point for the issue.
A list is a list as it should list elements, a single-element list should therefore IMHO be an exception if it occurs at all.
Adding several issue links following each other produces a sequence of unordered lists, each with a single item, which is even worse.
Any chance to convince you to change that behaviour to produce some kind of inline element for the issue?
Currently you generate html like this:

   closed
   #14
    Buttons on site in the Forms page have 'notice' class in them.

I would propose to change that to something like

  closed
  #14
   Buttons on site in the Forms page have 'notice' class in them.

It would be possible then to wrap that in lists by using the list in wordpress itself (which supports visual preview in the editor) or to use it as an inline link in the text.
I would be happy to contribute to that - ideally if these extensions could be more easily available in wordpress by updating the "original" plugin with the current version in the plugin repository as well.

ok, it makes sens, for single items, I removed ul html element to replace it with a div
for the push to svn wp repo I know @seinoxygen is trying to get some time to work on it


Update read-the-docs to only build on merge into main

Right now we have a webhook into read the docs that will build the docs anytime there is any pull request related action. It would be more efficient to add a set into our CI workflow that just re-builds the docs when we have a pull request that gets merged into main.

Read the docs integration has been updated such that we build a preview of the docs upon each new pull request and then re-build the full docs when we merge into main.


Is there are plugin for create smtp user instance from frontend

Is there are plugin for create smtp user instance from frontend (web interface) and can assign partiular limit of sending emails of per day or per month.

No. You'd need to develop your web interface, as well as some provisioning logic to deploy a Haraka instance with those particular settings applied. You'll want to look into the rate_limit plugin for throttling and I'd be looking hard at Docker or FreeBSD jails to thinly provision your instances.

is there any suggestion can you give to me for how to setup the web interface to create smtp instance from frontend

If I were doing it, I'll install node.js and then follow the bouncy ball to create an Express.js web app. Then drop in a bower.json (attached) and use it with bower to automatically fetch the latest versions of the web development frameworks listed.
{
  "license": "MIT",
  "ignore": [
    "**/.*",
    "node_modules",
    "client/bower_components",
    "test"
  ],
  "dependencies": {
    "html5-boilerplate": "*",
    "modernizr": "*",
    "bootstrap": "*",
    "jquery": "~2.1.1",
  }
}

You can automate the download and extraction of these development frameworks with grunt and a Gruntfile.js, such as this one:
module.exports = function(grunt) {
    grunt.loadNpmTasks('grunt-browserify');
    grunt.loadNpmTasks('grunt-concurrent');
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-bower');
    grunt.loadNpmTasks('grunt-bower-install-simple');

    // Project configuration.
    grunt.initConfig({
        'bower-install-simple': {
            options: {
                color: true,
                directory: 'bower_components'
            },
            'prod': {
                options: {
                    production: true
                }
            },
            'dev': {
                options: {
                    production: false
                }
            }
        },
        bower: {
            dev: {
                dest: 'html/vendor',
                js_dest: 'html/js/vendor',
                css_dest: 'html/css/vendor',
                fonts_dest: 'html/fonts/vendor',
                options: {
                    expand: false,
                    keepExpandedHierarchy: false
                },
            }
        },
        clean: {
            build: ['build'],
            dist: ['node_modules', 'bower_components']
        },
    });

    // Default task(s).
    grunt.registerTask('default', ['bower-install-simple', 'bower']);
};

thanks really working help for me. is there any basic code for create smtp instance with username and password. and hostname , port should be default. and these all instance listen on default port and have some limitation of sending after reach on limit the defined error should shows the user.


pyintro | Example Calculation in Public library

Objective: I want to know the resistivity of seawater with salinity. See example table below.

Ref: https://github.com/vamseeachanta/digitalmodel/blob/4815e2bdf86e427283343c1fa47814f88f27e0b5/docs/cathodic_protection/literature/course_notes_Appendix_A_Cathodic_Protection_Design.pdf (See page 17)
Please see below example on how to develop, maintain and publish a public library:
https://github.com/vamseeachanta/py_package

Subject: Daily Progress Notes
Date   : 30-01-2024
Dear Vamsee sir,
I wanted to provide you with an update on my progress today :

GitHub Public Libraries :

Explored best practices for maintaining public libraries on GitHub.
Reviewed issue tracking, pull requests and etc.....

Specific conductance Problem :

spent much time to understand this problem clearly first

Got to know that specific conductance is the reciprocal of resistivity and to find the resistivity of seawater
with a given salinity and temperature :
Resistivity (Ωm) = 1 / Specific Conductance (S/m)

For example, if the salinity of the seawater is 35 parts per thousand (ppt) and the temperature is 15°C
the specific conductance from the table is 0.042024 S/m. Therefore, the resistivity would be:
Resistivity = 1 / 0.042024 S/m = 23.8 Ωm

GitHub Repository

forked the original repository to try first
after that created a new repository called Task-1.

Looking forward to your insights,
Thankyou.

Subject: Daily Progress Notes
Date   : 30-01-2024
Dear Vamsee sir,
I wanted to provide you with an update on my progress today :

GitHub Public Libraries :

Explored best practices for maintaining public libraries on GitHub.
Reviewed issue tracking, pull requests etc ....

Specific conductance Problem :

spent much time to understand this problem clearly first

Specific conductance is the reciprocal of resistivity and to find the resistivity of seawater
with a given salinity and temperature :
Resistivity = 1/ specific conductance
For example, if the salinity of the seawater is 35 parts per thousand (ppt) and the temperature is 15°C
the specific conductance from the table is 0.042024 S/m. Therefore, the resistivity would be:
Resistivity = 1/0.042024 = 23.8 Ωm

GitHub Repository

forked the original repository to try first
after that created a new repository called Task-1.

Looking forward to your insights,
Thankyou.

Date : 31- 01- 2024
Hello sir , Good Morning ,
Today's progress is as follows :
-->  Started with the problem  to know about how to compute the specific conductance .
the relationship between temperature , salinity with specific conductance .
    the basic formula is " Specific conductance = 1 / Resistance " , but as we are dealing with temp and salinity
    sp_conductance = base_conductance * (1 + alpha * salinity - beta * (temperature - 25))
    where alpha , beta and base_conductance are constant values .

--> Coming to code ,
-- wrote a function to address the problem
-- according to the formula specific conductance is computed
-- took input of both temperature and salinity
-- the resistivity is also computed as it is the reciprocal of specific conductance
-->  Created a new repository called Task-1
-- Added the folder of py_package into my repository where it has three files init,main,calculation.py
--  used git for this process
-- Cloned the repository in Vscode and  wrote a code
--  staged all changes , commited the message .
that's all for today sir ,
Thankyou .

Great proactive start. You got good place holders for folder and code structure. Keep it up. When you made the calculation happen, let me know and I will guide you further.

Here it is the Repository link  :  https://github.com/samdansk2/Task-1/tree/main/src/py_package
please see it sir , once you can go through it .

Great proactive start. You got good place holders for folder and code structure. Keep it up. When you made the calculation happen, let me know and I will guide you further.

Thankyou sir , Sure sir , next time i will take guidance from you

@samdansk2 Let us wrap this work up next time we meet.

@vamseeachanta
Already I have completed this, eveything is going well including local tests and GitHub actions workflow. Please once check it out with below link
https://github.com/samdansk2/ace
After pushing this to pypi.org we can close this issue


Error occurred fetching the seelog config file path:  open /etc/amazon/ssm/seelog.xml: no such file or directory

The error message appears in the logs when starting SSM agent.
It's safe to ignore it, because it doesn't affect the operation of SageMaker SSH Helper.
We should get rid of this error, to avoid confusion.

Fixed in v1.10.0


DiscordClient.GetVoiceClient() NullReferenceException

Here is my snippet code
if (voiceChannels.Count > 0)
{
    client.ConnectToVoiceChannel(voiceChannels[0]);

    Thread.Sleep(1000);

    DiscordVoiceClient vc = client.GetVoiceClient();
    if (vc != null)
    {
        WriteLine("WAV sent");
        vc.SendWav(@"C:\Users\Adrien\gaben.wav");
    }
    else
    {
        WriteLine("WAV not sent");
        client.DisconnectFromVoice();
    }
}

It throws a NullReferenceException when trying to do DiscordVoiceClient vc = GetVoiceClient(), more specifically, I have a tiny stacktrace that the exception is thrown by line 1337 from DiscordClient.cs
Because of this, I cannot use in any way the voice client.

The voice client is not complete and will not be complete for a long time.


default style for select

Hi,
All of the components seem to have a matching style, except for the select element. Is this intentional?
Example fiddle
Thanks!

It's weird, on my machine, I see the select field with a matching style. What is your browser ?

Latest version of Chrome on Mac.
Just to be clear, here's what I'm seeing:

When I say style, I'm specifically talking about the select height compared to other elements.

I don't have a Mac so I can't really help. I've tested on Chrome 59 and Firefox 53 on Windows and no problem. I don't know what is doing that.

Select boxes are notoriously inconsistent and hard to style, especially on
MacOS:
https://stackoverflow.com/q/2547354/259698
On Mon, 12 Jun 2017, 08:23 lionel-bijaoui<EMAIL_ADDRESS>wrote:

I don't have a Mac so I can't really help. I've tested on Chrome 59 and
Firefox 53 on Windows and no problem. I don't know what is doing that.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/icebob/vue-form-generator/issues/228#issuecomment-307823215,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAC6jB3xjL05pIx8i4JsGDCPlJ5avSDaks5sDVfegaJpZM4N2m9i
.

@dflock it certainly appears that way! Ultimate, I added a height attribute that matches the default styling. Seems to work across modern browsers


very slow queries when "expand" is needed from subqueries

OrientDB Version: <= 2.2.18
Java Version: N/A
OS: N/A
Expected behavior

I have classes that store documents of an entire week, one week per class
each such class holds roughly 120M records
some 7 indexes are defined for each class, 6 of which are FULLTEXT Lucene indexes with "allowLeadingWildcard": true
when I perform a count in such index, the result is obtained relatively timeframe (could be better, tough) of 61 secs:

select count(*) from index:idx_cdr_af_20170226_3 WHERE key LUCENE ' *08001* '
29884 records

this subset of 29884 can only be filtered further, via "expand" to obtain the properties of these documents on which I can apply a WHERE clause, such as selecting a specific date:

SELECT count(*) FROM (select expand(rid) from index:idx_cdr_af_20170226_3 WHERE key LUCENE ' *08001* ') WHERE PRT_DATE BETWEEN '2017-02-21 00:00:00.000' AND '2017-02-21 23:59:59.999'
4643 records

This query completed in 9 seconds, entirely due to caching from the previous query (which lasted for about 1 minute)

so if I run this counting on another class, which is not in the cache, the counting query lasts for about 4 minutes !

SELECT count( * ) FROM (select expand(rid) from index:idx_cdr_af_20170212_3 WHERE key LUCENE ' *08001* ')
WHERE PRT_DATE BETWEEN '2017-02-15 00:00:00.000' AND '2017-02-15 23:59:59.999'
2941 records

Query executed in 261.234 sec
-> is there no better (=faster) way to run these countings ? It is a factor 3 slower than exactly the same query on a traditional, relational database with partitioning of a single big table.
So why would we use a big-database concept...

Hi @rdelangh
A couple of points here:

Lucene by itself (I mean the Lucene engine, nothing about OrientDB)  is not designed/optimized to do queries with leading wildcards, this is why the index query is so slow

About the rest, it would be interesting to see the result of an EXPLAIN, probably it's randomly fetching a lot of records from the cluster to do the filtering. Did you try to rewrite the query and use a LIKE instead? What is the difference in performance

Thanks
Luigi

@luigidellaquila
What do you mean with the LIKE ? Create a extra index on the property that I want to search for "0800" patterns?  That would have to be an SB-Tree index, because only these (like Lucene) allow range queries.

Hi @rdelangh
No, I mean just running the query without the index. Something like
SELECT count( * ) YourClass WHERE theField LIKE '*08001*'
AND PRT_DATE BETWEEN '2017-02-15 00:00:00.000' AND '2017-02-15 23:59:59.999'

Just wondering if a full scan of the cluster is more efficient than an inefficient index access plus an inefficient random record acces...
Thanks
Luigi

@luigidellaquila
scanning 120M records of the class, to find some 2000 relevant records ?
I can try, but it's likely going to last for many hours ...

Sorry, right syntax
SELECT count( * ) YourClass WHERE theField LIKE '%08001%'
AND PRT_DATE BETWEEN '2017-02-15 00:00:00.000' AND '2017-02-15 23:59:59.999'

Well, no, with these numbers for sure it will take a lot.
How many record would this query return?
SELECT count( * ) FROM YourClass WHERE theField LIKE '%08001%'

And what about this?
SELECT count( * ) FROM YourClass WHERE  PRT_DATE BETWEEN '2017-02-15 00:00:00.000' AND '2017-02-15 23:59:59.999'

Thanks
Luigi

@luigidellaquila
I have a compisite UNIQUE SBTREE index on some properties ENV, PRT_DATE, and others.
I launched now this query:
SELECT count(*) FROM cdr_af_20170226
WHERE CALLED_NUMBER LIKE '%08001%' AND
ENV='prod' AND PRT_DATE BETWEEN '2017-02-28 00:00:00.000' AND '2017-02-28 23:59:59.999'

I learned that I have to specify the index properties (ENV, PRT_DATE) as last criteria in the WHERE, otherwise the index will not be used. Correct?
Let's see how that performs...

Result:
6538 records found,
Query executed in 2640.024 sec
So not good.

Yep, I see...
But you did not answer my question: how many records have theField LIKE '%08001%'? and how many have PRT_DATE BETWEEN '2017-02-15 00:00:00.000' AND '2017-02-15 23:59:59.999' ?
My guess is that both index calls are returning a lot of records, so the executor is doing a lot of operations.
Thanks
Luigi

There are about 19M records for the date-range (= 1 day)
Counting with the LIKE is unfeasable because there is no index that can be used with the LIKE.
Counting with the Lucene returns about 29K records for the pattern '08001'

@luigidellaquila
Do you have any suggestions how such query can be speed up?

I'm afraid you will hardly optimize it under 60 seconds. The LUCENE '*foo*' or LIKE '*foo*' cannot be optimized further. Probably the only way to really optimize it is to store that 08001as a separate field and query it with a=`, but I don't know if it's feasible for your use case
Thanks
Luigi

@luigidellaquila
That is bad. The best timing was not 60 seconds, but 261 seconds (subquery with Lucene index, then expand, then filter on PRT_DATE property). This was a small class of 41M records. The queries will need to run again big classes of about 120-200M records...
Disappointing.

@rdelangh I think if you get rid of that direct index lookup (ie. select from index:...) you will be able to write a query with plain filters and without the EXPAND, this should speed up the execution to a few seconds
Thanks
Luigi

hi @luigidellaquila
pls see my earlier comment above:
SELECT count(*) FROM cdr_af_20170226
WHERE CALLED_NUMBER LIKE '%08001%' AND
ENV='prod' AND PRT_DATE BETWEEN '2017-02-28 00:00:00.000' AND '2017-02-28 23:59:59.999'

Result:
6538 records found,
Query executed in 2640.024 sec
So not good.

How about parallellism ? I noticed that this is by default automatic, but

how can I find out whether anything was executed in parallel ?
in which conditions/use cases would parallellism speed up my above query ?

On the lucene side, can you avoid the leading wildcard? It is really the wrong way to use an inverted index such as lucene. Maybe writing a more expressive lucene query.

hi @robfrank
No sorry, the leading wildcard feature is absolutely necessary. Even without the leading wildcard, the selection from the Lucene index is ready after 9 secs, which is ok, and returns some 20K RIDs. But then the "expand", which is necessary to apply a further filtering on eg PRT_DATE, makes the whole query last for 6 minutes.

And can you please explain what you mean with "writing a more expressive lucene query" ?

Maybe another strategy then: can we configure how the Lucene indexes are built?
For example:

we only need to search on substrings of the entire original STRING property value. We do not need Lucene to decompose strings into 'words' according to some delimiter characters (such as "." or ",").
We can also require that these substrings on which we want to search, have a minimum length of 4 characters.

How can we do that? Can you please share any examples of how the CREATE INDEX command would need to be adapted to do such Lucene optimisation?

If you can recap to me with some samples of data and what kind of queries / results you need, I can try to help

@robfrank

we have classes where data (telecoms call records) of one week is stored in a single class ; we have tought about storing data in a single class per day, but with the number of different kind of data (hence different classes, 365 classes per year) that would mean that we exceed the max number of clusters that OrientDB can support

each such class contains approx 120M documents ('records')

to quickly find records for a certain CALLED-number (for example), we need to be able to search all called-nrs for a given substring (hence we need the leading and trailing wildcards)

we need to be able to identify and/or just count such records for several consecutive days (possibly spanning multiple weekly classes) or even for a few months (several weeks, hence classes)

so we need also a filtering criterium on their date, which is contained in a property PRT_DATE

The quickest way to reduce the number of relevant records, is by filtering first on that CALLED-number. Only Lucene index supports leading and trailing wildcard searches, and does so fairly quickly (matter of seconds, or 1-2 minutes). Scanning the Lucene index for this, yields only the RIDs of the filtered records.
But then we need also the filtering on PRT_DATE, so we need to "expand" these RIDs from the previous step. It is apparently this "expand" step that is very inefficient, and makes the queries run for hours !
For example (only a single day is searched for, but takes many minutes to complete, see above):
SELECT count( * ) FROM (
   select expand(rid) from index:idx_cdr_af_20170212_3 WHERE key LUCENE ' *08001* ')
WHERE PRT_DATE BETWEEN '2017-02-15 00:00:00.000' AND '2017-02-15 23:59:59.999'

The inner query from the Lucene index returns in this case some 29K RIDs.
In real cases, the pattern will consist of even less significant digits, such as 0800. Such search string returns approx 322K RIDs.
The total number of records for a single day is approx 19M records. Therefor, swapping the order of the SELECTs would not give better results: first selecting all RIDs for one full day, then doing "expand" on these appro 20M RIDs, then filtering these records on their value of CALLED-number with LIKE.
I have tried this, it did not terminate even after 3 hours...

O don't know if it could work but you're using OrientDB mostly as a KV datastore. My suggestion is to try to build a multifield index on the cdr and date/datetime and use range queries :
http://orientdb.com/docs/last/Full-Text-Index.html#numeric-and-date-range-queries-from-2214
so your query would be something like
SELECT count( * ) FROM (
   select expand(rid) from index:idx_cdr_af_20170212_3 WHERE key LUCENE ' cdr_filed_name:*08001*  prt_date:[201612221000 TO<PHONE_NUMBER>00] ')

for sure, you need to do some experiments.

hi @robfrank , I was able to create such multi-field Lucene index, but the resulting counts from that kind of query seem impossible:
With property SERVEDIMSI being a STRING, and PRT_DATE being a DATETIME:
create index idx_cdr_eno_20170319_3 on cdr_eno_20170319 (SERVEDIMSI, PRT_DATE) FULLTEXT ENGINE LUCENE

Then I search for a combination of SERVEDIMSI (exact string) and PRT_DATE (range):
SELECT count(*) FROM (
SELECT expand(rid) FROM index:idx_cdr_eno_20170319_3 WHERE key LUCENE ' SERVEDIMSI:"206012224204810" AND PRT_DATE:[201703201204 TO<PHONE_NUMBER>05]'
    )
Returned 0 record(s)

whereas there exists only one single (=1) record in the class for these criteria!
Also other syntaxes do not seem to be correct:
  SELECT expand(rid) FROM index:idx_cdr_eno_20170319_3 WHERE key LUCENE ' SERVEDIMSI:206012224204810 PRT_DATE:[20170320120400000 TO<PHONE_NUMBER>0500000]'

returns records for many different values of SERVEDIMSI and many different PRT_DATE ranges outside of my specified range.
-> what is the correct syntax for such Lucene indexes used by OrientDB-SQL, and where can I find documentation about this syntax?

can anyone please provide me the correct syntax to perform a query against a Lucene index that has been defined on multiple properties, such as the examples above in my previous post?

hi @robfrank
can you please check and provide me the correct syntax for such multi-field Lucene queries?
many thanks in advance!

can anyone please help me out with the correct multi-field Lucene queries syntax ?

The default Lucene's operator is 'OR'. So the query you wrote is asking for SERVEDIMSI:... OR   PRT_DATE:.
Try this:
'''
+SERVEDIMSI:206012224204810 +PRT_DATE:[20170320120400000 TO<PHONE_NUMBER>0500000]
'''
The + means MUST
As a reference: https://lucene.apache.org/core/5_3_2/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description

the none-Lucene query shows that the record definitely exists:
select * from cdr_eno_20170319 WHERE SERVEDIMSI='206012224204810' AND ENV='prod' AND ORIGTERMMSCID='000399' AND CALLTRANSACTIONTYPE='01' AND PRT_DATE BETWEEN '2017-03-20 12:04:46.000' AND '2017-03-20 12:04:46.900'
Query executed in 0.057 sec. Returned 1 record(s)

However the Lucene multi-field query does not work:
orientdb {db=mobile}> desc cdr_eno_20170319
...
INDEXES (3 altogether)
+----+----------------------+---------------------------------------------------------------------------------------------------------------------------+
|#   |NAME                  |PROPERTIES                                                                                |
+----+----------------------+---------------------------------------------------------------------------------------------------------------------------+
|0   |idx_cdr_eno_20170319_3|[SERVEDIMSI,PRT_DATE]
...

orientdb {db=mobile}>  SELECT expand(rid) FROM index:idx_cdr_eno_20170319_3 WHERE key LUCENE '+SERVEDIMSI:206012224204810 +PRT_DATE:[20170320120400000 TO<PHONE_NUMBER>0500000]'

0 item(s) found. Query executed in 0.019 sec(s).

I'll check, because I usually don't write queries using the index: notation, but a select from "class" where [field1,field2] lucene "query" .

hi @robfrank ,
did you manage to verify which is the correct syntax to use a multi-property Lucene index?

I added some working tests on our suite, you can look at them in the linked commits.

hi @robfrank , can you please explain what the "linked commits" are, and where I find your tests?

@rdelangh - the links (to the commits) are right above Rob's comment.
Scott

Link to the commit: https://github.com/orientechnologies/orientdb/commit/67648cfbe67dec225e04d62b1a7242d5e7ab421d
the complete test class: https://github.com/orientechnologies/orientdb/blob/2.2.x/lucene/src/test/java/com/orientechnologies/lucene/test/LuceneRangeTest.java
Is it enough?

hi @robfrank ,
thanks for the info, I had a look at your tests and I see a very similar test with a multi-property Lucene index, however in my case it does not work:
the class consists of:
orientdb {db=mobile}> desc cdr_eno_20170312
PROPERTIES
+----+---------------------------+--------+-----------------+---------+--------+--------+----+----+-------+-------+
|#   |NAME                       |TYPE    |LINKED-TYPE/CLASS|MANDATORY|READONLY|NOT-NULL|MIN |MAX |COLLATE|DEFAULT|
+----+---------------------------+--------+-----------------+---------+--------+--------+----+----+-------+-------+
|29  |SERVEDIMSI                 |STRING  |                 |true     |false   |false   |    |    |default|       |
|61  |PRT_DATE                   |DATETIME|                 |true     |false   |false   |    |    |default|       |
...
INDEXES (3 altogether)
|0   |idx_cdr_eno_20170312_3|[SERVEDIMSI,PRT_DATE]

A direct query of one particular record:
orientdb {db=mobile}> select SERVEDIMSI, PRT_DATE from #453:9
+----+---------------+-------------------+
|#   |SERVEDIMSI     |PRT_DATE           |
+----+---------------+-------------------+
|0   |206012221582810|2017-03-12 00:00:09|
+----+---------------+-------------------+
1 item(s) found. Query executed in 0.003 sec(s).

The query via this index:
orientdb {db=mobile}> select * from index:idx_cdr_eno_20170312_3 WHERE key = '+SERVEDIMSI:206012221582810 +PRT_DATE:[20170312000001000 TO<PHONE_NUMBER>0010000]'
0 item(s) found. Query executed in 0.009 sec(s).

The query via the class:
orientdb {db=mobile}> select * from cdr_eno_20170312 WHERE [SERVEDIMSI,PRT_DATE] LUCENE '+SERVEDIMSI:206012221582810 +PRT_DATE:[20170312000001000 TO<PHONE_NUMBER>0110000]'
0 item(s) found. Query executed in 0.011 sec(s).

Sorry, but I do not find the error in my syntax, if any.

may you try with dateTime values at minute? e.g.:
orientdb {db=mobile}> select * from cdr_eno_20170312 WHERE [SERVEDIMSI,PRT_DATE] LUCENE '+SERVEDIMSI:206012221582810 +PRT_DATE:[201703120000 TO<PHONE_NUMBER>01]'

Just as a test, while I investigate if it is possible to query at least on seconds interval

@robfrank
no luck:
orientdb {db=mobile}> select * from cdr_eno_20170312 WHERE [SERVEDIMSI,PRT_DATE] LUCENE '+SERVEDIMSI:206012221582810 +PRT_DATE:[201703120000 TO<PHONE_NUMBER>01]'
0 item(s) found. Query executed in 0.022 sec(s).

Can you please send me a sample data set and what/how do you want to search over them?
e.g.:

we have this 100 records, want to search the ones from 12:00 to 13:00, should return 50 records

hi @robfrank ,

we have way too much data to store everything in a single class per data-type; since the data can be grouped on a timestamp, we chose to store them either in a single class per day (but that means 365 classes per year, or way too many clusters required than what ODB currently supports) or in a single class per week (52 classes per year, with 6 fixed clusters per class, remains a supported number of clusters)
sometimes we need to do very precise queries on one or some of the properties with quite a long substring that needs to be searched, in a reasonable timeframe of let's say 1 day; for that we can do with the single-property Lucene indexes because they return few results when we search for a long string
other times, we need to search on a very generic (=short) substring, such as "0800", in a long period of time like a week or a month; for this, we do not find a fast method using ODB features, and you advised to try with multi-field Lucene indexes. But that syntax is not ok, apparently.

hi,
some extra info, in case my previous answer was not clear:
We need to be able to perform ad-hoc searches like this:

given an exact value of some string property, search all records in a given timerange: like "select * from cdr_eno_20170312 WHERE [SERVEDIMSI,PRT_DATE] LUCENE '+SERVEDIMSI:206012221582810 +PRT_DATE:[201703120000 TO<PHONE_NUMBER>01]"
given a substring of some string property, search all records in a large timerange, like: "select * from cdr_eno_20170312 WHERE [SERVEDIMSI,PRT_DATE] LUCENE '+SERVEDIMSI:20601 +PRT_DATE:[201703120000 TO<PHONE_NUMBER>00]"

Ok, thank you for the clarification. Having a little sample of real data, in form of SQL insert, little database or java code, will help a lot. Feel free to send it privately.
I will take care, other than of the queries, also of the memory/threads.

@robfrank

in attach is the full description of class "cdr_eno_20170312", one of the per-weekly classes from which we hope to be able to run such multi-field Lucene queries as described above
desc-cdr-eno-20170312.txt
by private email I have sent you some sample records
samples-cdr-eno-20170312.txt

Mind you that the study of how we might be able to obtain our query-results, is still independent from the fact that the documented syntax to run a multi-field Lucene query is not working in Orientdb...

hello @robfrank ,
can we have some update, please?

Hi @rdelangh, I'm on it, stay tuned. Thanks for sample datasa

About range queries, I understand the problem, that is "obviously" related to time-zones. I'm working on it to fix. As a very temporary workaround, just for testing, you should transform your date in UTC adding or subtracting the number of hours to "reach" utc:
201703120000
to
201703110000

(I'm on UTC+1 right now)

I created a dedicated issue related to timezone mismatch: https://github.com/orientechnologies/orientdb/issues/7382


remove nonexistent notebook tests from CI

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 67.598%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
726

Relevant Lines:
1074

💛  - Coveralls


[bug] false-positive success when using named export on seeder file

Basically, when the seeder file has some export const foo = 'bar'-ish statement, the run method is not invoked and the output is this:
🌱  TypeORM Seeding v1.6.1
✔ ORM Config loaded
✔ Factories are imported
✔ Seeders are imported
⠋ Connecting to the databaseINFO: All classes found using provided glob pattern xxx
INFO: All classes found using provided glob pattern xxx
✔ Database connected
👍  Finished Seeding

I think that typeorm-seeding CLI should ignore these statements regardless of whether it is right or not to have them in a seeder file.

I've notice that this behavior is due to seedFileObject[keys[0]]
https://github.com/w3tecch/typeorm-seeding/blob/4136b0e0f58a4ec13b17c717bd026043fbdf7ddd/src/importer.ts#L3-L7
because this will return the foo variable instead of the seeder class. I've thought that return seedFileObject.default was enough but @hirsch88 already use this in the past with require (on 84df811)
Maybe this should work but I'm not sure:
export const importSeed = async (filePath: string): Promise<SeederConstructor> => {
  const seedFileObject: { [key: string]: SeederConstructor } = await import(filePath)
  return seedFileObject.default
}

I have no problem to use default export, but usually I try to avoid that. This link explain very well why.
But what I said, I have no problem with this if we are consistent, but could be a breaking change for someone that is using non-default exports.
@RaphaelWoude opinions here, pls :pray:

For me, the best way to do this is by using non default export and use instanceof to check every import as a Seeder, that is an interface.
https://github.com/w3tecch/typeorm-seeding/blob/4136b0e0f58a4ec13b17c717bd026043fbdf7ddd/src/types.ts#L23-L28


video_player: Can't play short (sub-second) audio files if play() is called a while (1 or 2 seconds) after initialize()

Steps to Reproduce

Run flutter create bug2.
Add video_player: ^1.0.1 to the dependencies: in pubspec.yaml.
Replace lib/main.dart with this:

import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final _controller = VideoPlayerController.network(
      'https://soundbible.com/grab.php?id=2067&type=mp3');

  @override
  void initState() {
    super.initState();
    print('initialize()');
    final initFuture = _controller.initialize();

    // Start playing if this is the first media
    initFuture.then((_) {
      print('initialize() DONE, refreshing UI');
      setState(() {}); // so the player is shown
      final delay = 2;
      print('scheduling play() in $delay seconds');
      Future.delayed(Duration(seconds: delay), () {
        print('play()');
        _controller.play().then((_) => print('play() future DONE'));
      });
    });
  }

  @override
  void dispose() {
    print('dispose()');
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: _controller.value.initialized
            ? AspectRatio(
                aspectRatio: _controller.value.aspectRatio,
                child: VideoPlayer(_controller),
              )
            : CircularProgressIndicator(),
      ),
    );
  }
}

Expected results: The sound can be heard 2 seconds after initialization
Actual results: No sound.
Extended explanation and findings
Since this seems to be some sort of timing issue, I guess that for different environments it can take different times to make it fail. For me with delay 0 or 1 it works reliably and with 2 or more if fails reliably.
It fails on android but works fine in web (at least when using an assert() constructor instead of a network() one), so I'm guessing this is an android-only issue.
I came across this bug when implementing some playlist, I preload (pre-initialize()) several sounds before start playing and then I play one after the other, and I found after a few sounds the rest would not play (or sometimes one didn't play, the next does, and then nothing plays again). My guess is this whole problem comes from the fact that later sound are just more apart from the moment they were initialized, but I will add a link to an extended test case playing one after the other.
Video files don't seem to be affected, playing a 200ms video works as expected, this is an audio-only issue.
Also longer audio files don't seem to be affected, for example replacing the audio with a 5 seconds audio (like this
https://soundbible.com/grab.php?id=1634&type=mp3) makes it work, even with very big delays (I tried up to 20 seconds).

Logs

luca@leela:~/devel/flutter/bug2 (main *) $ flutter run --verbose
[  +67 ms] executing: [/home/luca/software/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +44 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 4b50ca7f7fbf56be72e54cd200825b760416a356
[        ] executing: [/home/luca/software/flutter/] git tag --points-at 4b50ca7f7fbf56be72e54cd200825b760416a356
[ +106 ms] Exit code 0 from: git tag --points-at 4b50ca7f7fbf56be72e54cd200825b760416a356
[   +7 ms] 1.26.0-17.3.pre
[ +122 ms] executing: [/home/luca/software/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/beta
[        ] executing: [/home/luca/software/flutter/] git ls-remote --get-url origin
[   +6 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +72 ms] executing: [/home/luca/software/flutter/] git rev-parse --abbrev-ref HEAD
[   +5 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] beta
[  +68 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +54 ms] executing: /home/luca/Android/Sdk/platform-tools/adb devices -l
[  +32 ms] List of devices attached
           LGH8701d9f7a4          device usb:1-2 product:lucye_global_com model:LG_H870 device:lucye transport_id:10
[   +4 ms] /home/luca/Android/Sdk/platform-tools/adb -s LGH8701d9f7a4 shell getprop
[  +79 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +159 ms] Skipping pub get: version match.
[  +34 ms] Found plugin video_player at /home/luca/.pub-cache/hosted/pub.dartlang.org/video_player-1.0.1/
[   +5 ms] Found plugin video_player_web at /home/luca/.pub-cache/hosted/pub.dartlang.org/video_player_web-0.1.4+1/
[  +25 ms] Found plugin integration_test at /home/luca/software/flutter/packages/integration_test/
[ +160 ms] Found plugin video_player at /home/luca/.pub-cache/hosted/pub.dartlang.org/video_player-1.0.1/
[   +2 ms] Found plugin video_player_web at /home/luca/.pub-cache/hosted/pub.dartlang.org/video_player_web-0.1.4+1/
[  +16 ms] Found plugin integration_test at /home/luca/software/flutter/packages/integration_test/
[   +5 ms] Generating /home/luca/devel/flutter/bug2/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[  +33 ms] ro.hardware = lucye
[        ] ro.build.characteristics = default
[  +25 ms] Initializing file store
[   +7 ms] Skipping target: gen_localizations
[   +3 ms] complete
[   +3 ms] Launching lib/main.dart on LG H870 in debug mode...
[   +4 ms] /home/luca/software/flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev
/home/luca/software/flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root
/home/luca/software/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter --debugger-module-names
--experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill /tmp/flutter_tools.UALFOS/flutter_tool.FQNINC/app.dill --packages
/home/luca/devel/flutter/bug2/.dart_tool/package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation
--filesystem-scheme org-dartlang-root --initialize-from-dill build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill
[   +9 ms] executing: /home/luca/Android/Sdk/build-tools/30.0.2/aapt dump xmltree /home/luca/devel/flutter/bug2/build/app/outputs/flutter-apk/app.apk
AndroidManifest.xml
[   +5 ms] Exit code 0 from: /home/luca/Android/Sdk/build-tools/30.0.2/aapt dump xmltree /home/luca/devel/flutter/bug2/build/app/outputs/flutter-apk/app.apk
AndroidManifest.xml
[        ] N: android=http://schemas.android.com/apk/res/android
             E: manifest (line=2)
               A: android:versionCode(0x0101021b)=(type 0x10)0x1
               A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
               A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1e
               A: android:compileSdkVersionCodename(0x01010573)="11" (Raw: "11")
               A: package="com.example.bug2" (Raw: "com.example.bug2")
               A: platformBuildVersionCode=(type 0x10)0x1e
               A: platformBuildVersionName=(type 0x10)0xb
               E: uses-sdk (line=7)
                 A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
                 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1e
               E: uses-permission (line=14)
                 A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
               E: uses-permission (line=15)
                 A: android:name(0x01010003)="android.permission.ACCESS_NETWORK_STATE" (Raw: "android.permission.ACCESS_NETWORK_STATE")
               E: application (line=17)
                 A: android:label(0x01010001)="bug2" (Raw: "bug2")
                 A: android:icon(0x01010002)=@0x7f080000
                 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
                 A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw: "androidx.core.app.CoreComponentFactory")
                 E: activity (line=22)
                   A: android:theme(0x01010000)=@0x7f0a0000
                   A: android:name(0x01010003)="com.example.bug2.MainActivity" (Raw: "com.example.bug2.MainActivity")
                   A: android:launchMode(0x0101001d)=(type 0x10)0x1
                   A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
                   A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
                   A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
                   E: meta-data (line=36)
                     A: android:name(0x01010003)="io.flutter.embedding.android.NormalTheme" (Raw: "io.flutter.embedding.android.NormalTheme")
                     A: android:resource(0x01010025)=@0x7f0a0001
                   E: meta-data (line=46)
                     A: android:name(0x01010003)="io.flutter.embedding.android.SplashScreenDrawable" (Raw: "io.flutter.embedding.android.SplashScreenDrawable")
                     A: android:resource(0x01010025)=@0x7f040000
                   E: intent-filter (line=50)
                     E: action (line=51)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
                     E: category (line=53)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
                 E: meta-data (line=60)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
[   +5 ms] executing: /home/luca/Android/Sdk/platform-tools/adb -s LGH8701d9f7a4 shell -x logcat -v time -t 1
[   +6 ms] <- compile package:bug2/main.dart
[  +99 ms] --------- beginning of main
           02-05 15:57:58.905 D/WifiWatchdogStateMachine( 4844): iwlanpercheck loss=6.23% / volume6 / imscallstate:0 sum:18.36, perAvg:6.12
[  +10 ms] executing: /home/luca/Android/Sdk/platform-tools/adb version
[   +5 ms] Android Debug Bridge version 1.0.41
           Version 30.0.5-6877874
           Installed as /home/luca/Android/Sdk/platform-tools/adb
[   +1 ms] executing: /home/luca/Android/Sdk/platform-tools/adb start-server
[   +5 ms] Building APK
[  +14 ms] Running Gradle task 'assembleDebug'...
[   +2 ms] Using gradle from /home/luca/devel/flutter/bug2/android/gradlew.
[        ] /home/luca/devel/flutter/bug2/android/gradlew mode: 33261 rwxr-xr-x.
[   +2 ms] executing: /home/luca/software/android-studio/jre/bin/java -version
[  +47 ms] Exit code 0 from: /home/luca/software/android-studio/jre/bin/java -version
[        ] openjdk version "1.8.0_242-release"
           OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
           OpenJDK 64-Bit Server VM (build 25.242-b3-6222593, mixed mode)
[   +1 ms] executing: [/home/luca/devel/flutter/bug2/android/] /home/luca/devel/flutter/bug2/android/gradlew -Pverbose=true -Ptarget-platform=android-arm64
-Ptarget=/home/luca/devel/flutter/bug2/lib/main.dart -Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root
-Pdart-defines=FLUTTER_WEB_AUTO_DETECT%3Dtrue assembleDebug
[ +809 ms] > Task :app:compileFlutterBuildDebug UP-TO-DATE
[        ] > Task :app:packLibsflutterBuildDebug UP-TO-DATE
[        ] > Task :app:preBuild UP-TO-DATE
[        ] > Task :app:preDebugBuild UP-TO-DATE
[        ] > Task :integration_test:preBuild UP-TO-DATE
[        ] > Task :integration_test:preDebugBuild UP-TO-DATE
[        ] > Task :integration_test:compileDebugAidl NO-SOURCE
[        ] > Task :video_player:preBuild UP-TO-DATE
[        ] > Task :video_player:preDebugBuild UP-TO-DATE
[        ] > Task :video_player:compileDebugAidl NO-SOURCE
[        ] > Task :app:compileDebugAidl NO-SOURCE
[        ] > Task :integration_test:packageDebugRenderscript NO-SOURCE
[        ] > Task :video_player:packageDebugRenderscript NO-SOURCE
[        ] > Task :app:compileDebugRenderscript NO-SOURCE
[        ] > Task :app:generateDebugBuildConfig UP-TO-DATE
[        ] > Task :integration_test:writeDebugAarMetadata UP-TO-DATE
[        ] > Task :video_player:writeDebugAarMetadata UP-TO-DATE
[  +77 ms] > Task :app:checkDebugAarMetadata UP-TO-DATE
[        ] > Task :app:cleanMergeDebugAssets
[        ] > Task :app:mergeDebugShaders UP-TO-DATE
[        ] > Task :app:compileDebugShaders NO-SOURCE
[        ] > Task :app:generateDebugAssets UP-TO-DATE
[        ] > Task :integration_test:mergeDebugShaders UP-TO-DATE
[        ] > Task :integration_test:compileDebugShaders NO-SOURCE
[        ] > Task :integration_test:generateDebugAssets UP-TO-DATE
[        ] > Task :integration_test:packageDebugAssets UP-TO-DATE
[        ] > Task :video_player:mergeDebugShaders UP-TO-DATE
[        ] > Task :video_player:compileDebugShaders NO-SOURCE
[        ] > Task :video_player:generateDebugAssets UP-TO-DATE
[        ] > Task :video_player:packageDebugAssets UP-TO-DATE
[        ] > Task :app:mergeDebugAssets
[ +199 ms] > Task :app:copyFlutterAssetsDebug
[        ] > Task :app:generateDebugResValues UP-TO-DATE
[   +3 ms] > Task :app:generateDebugResources UP-TO-DATE
[        ] > Task :integration_test:compileDebugRenderscript NO-SOURCE
[        ] > Task :integration_test:generateDebugResValues UP-TO-DATE
[        ] > Task :integration_test:generateDebugResources UP-TO-DATE
[        ] > Task :integration_test:packageDebugResources UP-TO-DATE
[        ] > Task :video_player:compileDebugRenderscript NO-SOURCE
[   +1 ms] > Task :video_player:generateDebugResValues UP-TO-DATE
[        ] > Task :video_player:generateDebugResources UP-TO-DATE
[        ] > Task :video_player:packageDebugResources UP-TO-DATE
[        ] > Task :app:mergeDebugResources UP-TO-DATE
[        ] > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
[        ] > Task :app:extractDeepLinksDebug UP-TO-DATE
[        ] > Task :integration_test:extractDeepLinksDebug UP-TO-DATE
[        ] > Task :integration_test:processDebugManifest UP-TO-DATE
[        ] > Task :video_player:extractDeepLinksDebug UP-TO-DATE
[        ] > Task :video_player:processDebugManifest UP-TO-DATE
[        ] > Task :app:processDebugMainManifest UP-TO-DATE
[        ] > Task :app:processDebugManifest UP-TO-DATE
[        ] > Task :app:processDebugManifestForPackage UP-TO-DATE
[        ] > Task :integration_test:compileDebugLibraryResources UP-TO-DATE
[        ] > Task :integration_test:parseDebugLocalResources UP-TO-DATE
[        ] > Task :integration_test:generateDebugRFile UP-TO-DATE
[        ] > Task :video_player:compileDebugLibraryResources UP-TO-DATE
[        ] > Task :video_player:parseDebugLocalResources UP-TO-DATE
[  +87 ms] > Task :video_player:generateDebugRFile UP-TO-DATE
[        ] > Task :app:processDebugResources UP-TO-DATE
[        ] > Task :integration_test:generateDebugBuildConfig UP-TO-DATE
[        ] > Task :integration_test:javaPreCompileDebug UP-TO-DATE
[        ] > Task :integration_test:compileDebugJavaWithJavac UP-TO-DATE
[        ] > Task :integration_test:bundleLibCompileToJarDebug UP-TO-DATE
[        ] > Task :video_player:generateDebugBuildConfig UP-TO-DATE
[        ] > Task :video_player:javaPreCompileDebug UP-TO-DATE
[        ] > Task :video_player:compileDebugJavaWithJavac UP-TO-DATE
[        ] > Task :video_player:bundleLibCompileToJarDebug UP-TO-DATE
[        ] > Task :app:compileDebugKotlin UP-TO-DATE
[        ] > Task :app:javaPreCompileDebug UP-TO-DATE
[        ] > Task :app:compileDebugJavaWithJavac UP-TO-DATE
[        ] > Task :app:compileDebugSources UP-TO-DATE
[        ] > Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
[        ] > Task :app:compressDebugAssets UP-TO-DATE
[   +1 ms] > Task :app:processDebugJavaRes NO-SOURCE
[        ] > Task :integration_test:processDebugJavaRes NO-SOURCE
[   +2 ms] > Task :integration_test:bundleLibResDebug NO-SOURCE
[  +91 ms] > Task :video_player:processDebugJavaRes NO-SOURCE
[        ] > Task :video_player:bundleLibResDebug NO-SOURCE
[        ] > Task :app:mergeDebugJavaResource UP-TO-DATE
[        ] > Task :video_player:bundleLibRuntimeToJarDebug UP-TO-DATE
[        ] > Task :integration_test:bundleLibRuntimeToJarDebug UP-TO-DATE
[        ] > Task :app:checkDebugDuplicateClasses UP-TO-DATE
[        ] > Task :app:dexBuilderDebug UP-TO-DATE
[        ] > Task :app:desugarDebugFileDependencies UP-TO-DATE
[        ] > Task :app:mergeExtDexDebug UP-TO-DATE
[        ] > Task :app:mergeDexDebug UP-TO-DATE
[        ] > Task :app:mergeDebugJniLibFolders UP-TO-DATE
[        ] > Task :integration_test:mergeDebugJniLibFolders UP-TO-DATE
[        ] > Task :integration_test:mergeDebugNativeLibs NO-SOURCE
[        ] > Task :integration_test:stripDebugDebugSymbols NO-SOURCE
[        ] > Task :integration_test:copyDebugJniLibsProjectOnly UP-TO-DATE
[        ] > Task :video_player:mergeDebugJniLibFolders UP-TO-DATE
[        ] > Task :video_player:mergeDebugNativeLibs NO-SOURCE
[        ] > Task :video_player:stripDebugDebugSymbols NO-SOURCE
[        ] > Task :video_player:copyDebugJniLibsProjectOnly UP-TO-DATE
[        ] > Task :app:mergeDebugNativeLibs UP-TO-DATE
[        ] > Task :app:stripDebugDebugSymbols UP-TO-DATE
[        ] > Task :app:validateSigningDebug UP-TO-DATE
[        ] > Task :app:packageDebug UP-TO-DATE
[+1296 ms] > Task :app:assembleDebug
[        ] > Task :integration_test:copyDebugJniLibsProjectAndLocalJars UP-TO-DATE
[  +99 ms] > Task :integration_test:extractDebugAnnotations UP-TO-DATE
[        ] > Task :integration_test:mergeDebugGeneratedProguardFiles UP-TO-DATE
[        ] > Task :integration_test:mergeDebugConsumerProguardFiles UP-TO-DATE
[        ] > Task :integration_test:prepareLintJarForPublish UP-TO-DATE
[        ] > Task :integration_test:mergeDebugJavaResource UP-TO-DATE
[        ] > Task :integration_test:syncDebugLibJars UP-TO-DATE
[        ] > Task :integration_test:bundleDebugAar UP-TO-DATE
[        ] > Task :integration_test:compileDebugSources UP-TO-DATE
[        ] > Task :integration_test:assembleDebug UP-TO-DATE
[        ] > Task :video_player:copyDebugJniLibsProjectAndLocalJars UP-TO-DATE
[        ] > Task :video_player:extractDebugAnnotations UP-TO-DATE
[        ] > Task :video_player:mergeDebugGeneratedProguardFiles UP-TO-DATE
[        ] > Task :video_player:mergeDebugConsumerProguardFiles UP-TO-DATE
[        ] > Task :video_player:prepareLintJarForPublish UP-TO-DATE
[        ] > Task :video_player:mergeDebugJavaResource UP-TO-DATE
[        ] > Task :video_player:syncDebugLibJars UP-TO-DATE
[        ] > Task :video_player:bundleDebugAar UP-TO-DATE
[  +96 ms] > Task :video_player:compileDebugSources UP-TO-DATE
[        ] > Task :video_player:assembleDebug UP-TO-DATE
[        ] Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
[        ] Use '--warning-mode all' to show the individual deprecation warnings.
[        ] See https://docs.gradle.org/6.7/userguide/command_line_interface.html#sec:command_line_warnings
[        ] BUILD SUCCESSFUL in 2s
[        ] 82 actionable tasks: 4 executed, 78 up-to-date
[+1683 ms] Running Gradle task 'assembleDebug'... (completed in 4.5s)
[ +820 ms] calculateSha: LocalDirectory: '/home/luca/devel/flutter/bug2/build/app/outputs/flutter-apk'/app.apk
[  +30 ms] calculateSha: reading file took 29us
[+1045 ms] calculateSha: computing sha took 1045us
[   +6 ms] ✓ Built build/app/outputs/flutter-apk/app-debug.apk.
[   +4 ms] executing: /home/luca/Android/Sdk/build-tools/30.0.2/aapt dump xmltree /home/luca/devel/flutter/bug2/build/app/outputs/flutter-apk/app.apk
AndroidManifest.xml
[  +24 ms] Exit code 0 from: /home/luca/Android/Sdk/build-tools/30.0.2/aapt dump xmltree /home/luca/devel/flutter/bug2/build/app/outputs/flutter-apk/app.apk
AndroidManifest.xml
[   +2 ms] N: android=http://schemas.android.com/apk/res/android
             E: manifest (line=2)
               A: android:versionCode(0x0101021b)=(type 0x10)0x1
               A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
               A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1e
               A: android:compileSdkVersionCodename(0x01010573)="11" (Raw: "11")
               A: package="com.example.bug2" (Raw: "com.example.bug2")
               A: platformBuildVersionCode=(type 0x10)0x1e
               A: platformBuildVersionName=(type 0x10)0xb
               E: uses-sdk (line=7)
                 A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
                 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1e
               E: uses-permission (line=14)
                 A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
               E: uses-permission (line=15)
                 A: android:name(0x01010003)="android.permission.ACCESS_NETWORK_STATE" (Raw: "android.permission.ACCESS_NETWORK_STATE")
               E: application (line=17)
                 A: android:label(0x01010001)="bug2" (Raw: "bug2")
                 A: android:icon(0x01010002)=@0x7f080000
                 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
                 A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw: "androidx.core.app.CoreComponentFactory")
                 E: activity (line=22)
                   A: android:theme(0x01010000)=@0x7f0a0000
                   A: android:name(0x01010003)="com.example.bug2.MainActivity" (Raw: "com.example.bug2.MainActivity")
                   A: android:launchMode(0x0101001d)=(type 0x10)0x1
                   A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
                   A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
                   A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
                   E: meta-data (line=36)
                     A: android:name(0x01010003)="io.flutter.embedding.android.NormalTheme" (Raw: "io.flutter.embedding.android.NormalTheme")
                     A: android:resource(0x01010025)=@0x7f0a0001
                   E: meta-data (line=46)
                     A: android:name(0x01010003)="io.flutter.embedding.android.SplashScreenDrawable" (Raw: "io.flutter.embedding.android.SplashScreenDrawable")
                     A: android:resource(0x01010025)=@0x7f040000
                   E: intent-filter (line=50)
                     E: action (line=51)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
                     E: category (line=53)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
                 E: meta-data (line=60)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
[        ] Stopping app 'app.apk' on LG H870.
[        ] executing: /home/luca/Android/Sdk/platform-tools/adb -s LGH8701d9f7a4 shell am force-stop com.example.bug2
[  +81 ms] executing: /home/luca/Android/Sdk/platform-tools/adb -s LGH8701d9f7a4 shell pm list packages com.example.bug2
[  +53 ms] package:com.example.bug2
[   +1 ms] executing: /home/luca/Android/Sdk/platform-tools/adb -s LGH8701d9f7a4 shell cat /data/local/tmp/sky.com.example.bug2.sha1
[  +23 ms] 42b8464f6bb0e166c2cb8e6aeb8cc6c23b0f6daf
[        ] Latest build already installed.
[        ] executing: /home/luca/Android/Sdk/platform-tools/adb -s LGH8701d9f7a4 shell -x logcat -v time -t 1
[  +58 ms] --------- beginning of main
           02-05 15:58:05.787 D/FMFRW_BcmFmRadio( 6756): Waiting FM Receiver Proxy!!!! + 1 time
[   +8 ms] executing: /home/luca/Android/Sdk/platform-tools/adb -s LGH8701d9f7a4 shell am start -a android.intent.action.RUN -f 0x20000000 --ez
enable-background-compilation true --ez enable-dart-profiling true --ez enable-checked-mode true --ez verify-entry-points true
com.example.bug2/com.example.bug2.MainActivity
[  +90 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000 cmp=com.example.bug2/.MainActivity (has extras) }
[        ] Waiting for observatory port to be available...
[ +970 ms] Observatory URL on device: http://<IP_ADDRESS>:58383/cw9hg1gpQ0c=/
[        ] executing: /home/luca/Android/Sdk/platform-tools/adb -s LGH8701d9f7a4 forward tcp:0 tcp:58383
[   +7 ms] 33419
[        ] Forwarded host port 33419 to device port 58383 for Observatory
[   +4 ms] Caching compiled dill
[  +81 ms] Connecting to service protocol: http://<IP_ADDRESS>:33419/cw9hg1gpQ0c=/
[ +550 ms] Launching a Dart Developer Service (DDS) instance at http://<IP_ADDRESS>:0, connecting to VM service at http://<IP_ADDRESS>:33419/cw9hg1gpQ0c=/.
[ +151 ms] DDS is listening at http://<IP_ADDRESS>:38681/n5HyCJ_BdIw=/.
[  +49 ms] Successfully connected to service protocol: http://<IP_ADDRESS>:33419/cw9hg1gpQ0c=/
[ +691 ms] DevFS: Creating new filesystem on the device (null)
[  +88 ms] DevFS: Created new filesystem on the device (file:///data/user/0/com.example.bug2/code_cache/bug2TNDJAR/bug2/)
[   +3 ms] Updating assets
[ +139 ms] Syncing files to device LG H870...
[   +1 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +1 ms] <- recompile package:bug2/main.dart abc61491-e2bb-4fce-bd5f-52aecff07c7c
[        ] <- abc61491-e2bb-4fce-bd5f-52aecff07c7c
[ +179 ms] Updating files.
[        ] DevFS: Sync finished
[   +1 ms] Syncing files to device LG H870... (completed in 183ms)
[        ] Synced 0.0MB.
[        ] <- accept
[  +17 ms] Connected to _flutterView/0x77d5050020.
[   +1 ms] Flutter run key commands.
[   +1 ms] r Hot reload. 🔥🔥🔥
[        ] R Hot restart.
[        ] h Repeat this help message.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] An Observatory debugger and profiler on LG H870 is available at: http://<IP_ADDRESS>:38681/n5HyCJ_BdIw=/
[        ]
           Flutter DevTools, a Flutter debugger and profiler, on LG H870 is available at:
http://<IP_ADDRESS>:9101?uri=http%3A%2F%2F<IP_ADDRESS>%3A38681%2Fn5HyCJ_BdIw%3D%2F
[        ] Running with unsound null safety
[        ] For more information see https://dart.dev/null-safety/unsound-null-safety
[ +419 ms] I/flutter (16179): initialize()
[ +241 ms] W/om.example.bug(16179): Accessing hidden method Landroid/media/AudioTrack;->getLatency()I (light greylist, reflection)
[   +9 ms] I/ExoPlayerImpl(16179): Init 8d851cf [ExoPlayerLib/2.12.1] [lucye, LG-H870, LGE, 28]
[  +22 ms] D/AudioManager(16179): getStreamVolume() streamType= 3 Request Package= com.example.bug2
[ +915 ms] W/AudioCapabilities(16179): Unsupported mime audio/lg-ac3
[  +30 ms] W/AudioCapabilities(16179): Unsupported mime audio/adpcm
[        ] W/AudioCapabilities(16179): Unsupported mime audio/x-lg-alac
[        ] W/AudioCapabilities(16179): Unsupported mime audio/lg-eac3
[        ] W/AudioCapabilities(16179): Unsupported mime audio/x-lg-flac
[        ] W/AudioCapabilities(16179): Unsupported mime audio/g726
[        ] W/AudioCapabilities(16179): Unsupported mime audio/x-lg-ms-wma
[        ] W/AudioCapabilities(16179): Unsupported mime audio/lg-wma-voice
[   +5 ms] W/AudioCapabilities(16179): Unsupported mime audio/x-lg-flac
[  +19 ms] W/VideoCapabilities(16179): Unsupported mime video/dolby-vision
[  +11 ms] W/VideoCapabilities(16179): Unsupported mime video/dolby-vision
[  +11 ms] W/VideoCapabilities(16179): Unrecognized profile 4 for video/hevc
[   +3 ms] W/VideoCapabilities(16179): Unsupported mime video/mjpg
[  +10 ms] W/VideoCapabilities(16179): Unsupported mime video/theora
[  +38 ms] I/VideoCapabilities(16179): Unsupported profile 4 for video/mp4v-es
[ +104 ms] D/MediaCodec(16179): CreateByComponentName name=OMX.google.mp3.decoder
[        ] D/MediaCodec(16179): Mediacodec create pid=16179
[        ] D/MediaCodec(16179): init()++ name=OMX.google.mp3.decoder,nameIsType=0
[        ] V/LGCodecAdapter(16179): LG Codec Adapter start
[        ] V/LGCodecAdapter(16179): load libLGCodecOSAL library
[  +10 ms] V/LGCodecOSAL(16179): Just Validatation check function
[   +1 ms] I/ACodec  (16179): Now uninitialized
[   +1 ms] D/MediaCodec(16179): kWhatInit received
[   +4 ms] I/ACodec  (16179): onAllocateComponent
[   +1 ms] I/OMXClient(16179): IOmx service obtained
[  +35 ms] D/MediaCodec(16179): onComponentAllocated() componentName=OMX.google.mp3.decoder
[        ] I/ACodec  (16179): [OMX.google.mp3.decoder] Now Loaded
[        ] D/MediaCodec(16179): kWhatComponentAllocated received
[        ] D/MediaCodec(16179): init()--
[   +1 ms] D/MediaCodec(16179): kWhatConfigure received
[   +1 ms] V/LGCodecAdapter(16179): called getLGCodecSpecificData
[   +1 ms] V/LGCodecOSAL(16179): Called LGgetCodecSpecificDataMSG
[        ] I/ACodec  (16179): codec does not support config priority (err -2147483648)
[   +1 ms] V/LGCodecOSAL(16179): Called LGconfigureCodecMSG
[        ] V/LGCodecOSAL(16179): Not support LGCodec
[        ] I/ACodec  (16179): codec does not support config priority (err -2147483648)
[        ] I/ACodec  (16179): codec does not support config operating rate (err -2147483648)
[   +7 ms] W/ExtendedACodec(16179): Failed to get extension for extradata parameter
[   +1 ms] D/MediaCodec(16179): onComponentConfigured()
[        ] D/MediaCodec(16179): kWhatComponentConfigured received
[        ] D/MediaCodec(16179): start()
[        ] D/MediaCodec(16179): kWhatStart received
[  +11 ms] I/ACodec  (16179): [OMX.google.mp3.decoder] Now Idle->Executing
[   +8 ms] I/ACodec  (16179): [OMX.google.mp3.decoder] Now Executing
[   +8 ms] W/om.example.bug(16179): Accessing hidden method Landroid/media/AudioTrack$Builder;->setOffloadedPlayback(Z)Landroid/media/AudioTrack$Builder; (dark
greylist, linking)
[   +5 ms] W/om.example.bug(16179): Accessing hidden method Landroid/media/AudioTrack$Builder;->setOffloadedPlayback(Z)Landroid/media/AudioTrack$Builder; (dark
greylist, linking)
[   +2 ms] V/AudioTrack(16179): getMinFrameCount=3844: afFrameCount=1920, afSampleRate=48000, afLatency=80
[   +6 ms] V/AudioSystem(16179): ioConfigChanged() event 0
[        ] I/chatty  (16179): uid=10559(com.example.bug2) Binder:16179_1 identical 1 line
[        ] V/AudioSystem(16179): ioConfigChanged() event 0
[        ] V/AudioTrack(16179): set(): streamType -1, sampleRate 48000, format 0x1, channelMask 0x3, frameCount 15376, flags #0, notificationFrames 0, sessionId 0,
transferType 3, uid -1, pid -1
[        ] V/AudioTrack(16179): Building AudioTrack with attributes: usage=1 content=3 flags=0x200 tags=[]
[  +75 ms] I/flutter (16179): initialize() DONE, refreshing UI
[   +2 ms] I/flutter (16179): scheduling play() in 2 seconds
[+2013 ms] I/flutter (16179): play()
[  +59 ms] V/AudioTrack(16179): getBestTimestamp did not find timestamp
[        ] I/flutter (16179): play() future DONE
[  +40 ms] V/AudioTrack(16179): getBestTimestamp did not find timestamp
[        ] V/AudioTrack(16179): getBestTimestamp did not find timestamp
[        ] V/AudioTrack(16179): getBestTimestamp did not find timestamp
[  +47 ms] V/AudioTrack(16179): getBestTimestamp did not find timestamp
[        ] V/AudioTrack(16179): getBestTimestamp did not find timestamp
[        ] V/AudioTrack(16179): getBestTimestamp did not find timestamp
[  +47 ms] V/AudioTrack(16179): getBestTimestamp did not find timestamp

$ flutter analyze
Analyzing bug2...

   info • Unused import: 'package:integration_test/integration_test.dart' • integration_test/app_test.dart:10:8 • unused_import
  error • The function 'run' isn't defined • integration_test/app_test.dart:14:16 • undefined_function

2 issues found. (ran in 4.1s)

$ flutter doctor -v
[✓] Flutter (Channel beta, 1.26.0-17.3.pre, on Linux, locale en_IE.UTF-8)
    • Flutter version 1.26.0-17.3.pre at /home/luca/software/flutter
    • Framework revision 4b50ca7f7f (11 hours ago), 2021-02-04 19:44:27 -0800
    • Engine revision 2c527d6c7e
    • Dart version 2.12.0 (build 2.12.0-259.8.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /home/luca/Android/Sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /home/luca/software/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = chromium

[✓] Android Studio
    • Android Studio at /home/luca/software/android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /home/luca/software/android-studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] Connected device (2 available)
    • LG H870 (mobile) • LGH8701d9f7a4 • android-arm64  • Android 9 (API 28)
    • Chrome (web)     • chrome        • web-javascript • Chromium 83.0.4103.116 built on Debian bullseye/sid, running on Debian bullseye/sid

• No issues found!

video_player is not supposed to play audio files, it works only on android and you better use some other package to do that, as video_player still has some severe bugs that might crash your playback, like https://github.com/flutter/flutter/issues/25558)
i guess this will be won't fix

Oh, interesting. I always thought it was supposed to support audio-only. There are several articles out there mentioning it for that. It would be good to have some statement in the home page saying that.
BTW it does work on web too, better than in Android in fact, as I said this bug doesn't show on web.

@llucax wasn't aware of web, but it works just because browsers do support this - on ios this will silently fail. i don't know why they didn't deprecated it in some way like throwing exception, but refer to https://github.com/flutter/flutter/issues/38480#issuecomment-570458759

@llucax
Per this comment, you may have to use community driven plugin to help your requirement.
If you would like to have the no-audio support for video_player issue documented, please open a new issue stating the same.
Closing from here. If you disagree, write in comments and I'll reopen.

Fine by me, but also per this comment, I don't see why audio is not officially supported, it seems like a very low hanging fruit and not supporting audio is also a very common misconception (just look at all the issues linked in this issue with problems with people thinking video_player should also work for audio).
I think at a minimum it should be stated very clearly in the package home page that audio is not supported (and maybe give users some hints on potential third-party packages providing this functionality).
Just as a side-note, I tried just_audio, which also uses ExoPlayer in Android, and I can reproduce the exact same bug. So I guess this is an ExoPlayer bug :(

Just adding the info in case someone else bumps into this, it seems to be a bug in ExoPlayer: https://github.com/google/ExoPlayer/issues/8569


What information do we want to track about students?

Right now we have email and full name that we use to track a student. Should we track any other information about them?

IP address, which we get from whenever they submit anything through Wufoo (most of the info we collect from them).
Eventually, I'd like to build student skill profiles that track their skills based on what workhshops/webinars they've attended.


replace deepmerge with @fastify/deepmerge

To verify that PR https://github.com/fastify/deepmerge/pull/5 for deepmerge works accordingly I tested it locally. To not redo the
implementation again, I created this PR. My assumption is, that the next release of fastify/deepmerge will be 1.1.0.
As soon as the PR in deepmerge is merged, this code change should become valid.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

16 of 17 (94.12%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.3%) to 99.293%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/utils.js
15
16
93.75%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
426

Relevant Lines:
427

💛  - Coveralls

I guess this PR was not merged because of the drop in the code coverage. Added unit tests, and got it back to 100%.
Can this be merged now?

It's @aboutlo decision.

Improved the test coverage. So combineDeepmerge is now covered 100%.

Thank you @Uzlopak!

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

17 of 17 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 99.717%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
427

Relevant Lines:
427

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

17 of 17 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 99.717%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
427

Relevant Lines:
427

💛  - Coveralls


Update coursier-jvm_2.13, ... to 2.1.0-M6-44-gc47ecec07

Updates

io.get-coursier:coursier-jvm_2.13
io.get-coursier:coursier-launcher_2.13
io.get-coursier:coursier-proxy-setup
io.get-coursier:coursier_2.13

from 2.1.0-M6-28-gbad85693f to 2.1.0-M6-44-gc47ecec07.
GitHub Release Notes - Version Diff - Version Diff - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.1.0-M6-28-gbad85693f).
You might want to review and update them manually.
website/docs/release_notes.md

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.get-coursier" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "io.get-coursier" }
}]

labels: library-update, early-semver-pre-release, semver-spec-pre-release, old-version-remains, commit-count:1

Superseded by #1223.


[WIP] RBAC no count

This is part of #5833 - reducing the queries in RBAC and the view screen

:results_type => :count tells RBAC to return a count of the rows. This has potential to remove some larger core queries.
:skip_count => true skips RBAC counts before and after rows are fetched. This lets RBAC know that the calling function is just going to throw away these counts.

This is more of a future focused feature, but it does remove 2 minor queries and one larger query
I included notes when the queries are uses on the initial list page and the second list page.
name|second page too?|ms before|ms after
---|---|---|---|---
ems count                       |  |0.4|:no_pedestrians:
ems order name                  |  |0.3|0.3
ems count                       |  |0.3|:no_pedestrians:
ems (id)                        |  |0.2|0.2
ems ((id))                      |  |0.2|0.2
vms in ()                       |  |83|83
vms in ()count                  |  |38|:no_pedestrians:
vms (in)                        |  |87|87
vms archived                    |  |0.3|0.3
vms archived templates          |  |0.3|0.3
vms orphaned                       |  |0.3|0.3
vms orphaned templates             |  |0.3|0.3
vms count distinct                 |Y  |28|28
vms distinct id,name order limit 20|Y|53|53
vms details in (20) order          |Y|6.8|6.8
openstack|Y|0.3|0.3
/cc @matthewd @dmetzger57 @gtanzillo

I don't think the code is scope-clean enough to be pursuing these sorts of perf-facing changes yet. We're introducing more variations into behaviour that doesn't belong in Rbac at all.

@matthewd so I hear you saying
trim down rbac
maybe get it squared away with scopes
THEN we can start to reduce queries

@matthewd do you at least like the :skip_counts => true option?

@kbrock once RBAC is reduced to scope-in-scope-out, both counts should be eliminated, shouldn't they?

WIPing this - looks like the desired goal is to get closer to scopes so the counts will just work

@kbrock do you intend to revisit this when RBAC uses scopes exclusively?

@chessbyte yes. will remove :count operator and go from there

STATUS: this works, but not seeing the performance benefits right now.
Holding off until I can get more definitive performance numbers
Also, will conflict with another effort to drop total_count all together

STATUS: not seeing too much of a difference here

status: removing 2-3 queries.
(most of the other fixes have already been encorporated)

👍 Looks good


Why commons-beanutils became a dependency now?

It is a runtime dependency of commons-configuration2.
See Configuration Builders (which we use in TestLinkAPI) at https://commons.apache.org/proper/commons-configuration/dependencies.html


SystemClockDelay.cpp error: no matching function for call to 'max'

Briefly summarize your issue:

Updated the SDK to v1.18.0
Tried to compile for Android

Got the following error:
/Users/user/dev/AVSDeviceSDK/Captions/Implementation/src/SystemClockDelay.cpp:26:47: error: no matching function for call to 'max'
    auto duration = std::chrono::milliseconds(std::max(zero, milliseconds.count()));
                                              ^~~~~~~~
/Users/user/Library/Android/ndk/ndk-bundle/android-ndk-r20/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/algorithm:2529:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('long' vs. 'long long')
max(const _Tp& __a, const _Tp& __b)
^
/Users/user/Library/Android/ndk/ndk-bundle/android-ndk-r20/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/algorithm:2539:1: note: candidate template ignored: could not match 'initializer_list<type-parameter-0-0>' against 'long'
max(initializer_list<_Tp> __t, _Compare __comp)
^
/Users/user/Library/Android/ndk/ndk-bundle/android-ndk-r20/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/algorithm:2521:1: note: candidate function template not viable: requires 3 arguments, but 2 were provided
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
/Users/user/Library/Android/ndk/ndk-bundle/android-ndk-r20/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/algorithm:2547:1: note: candidate function template not viable: requires single argument '__t', but 2 arguments were provided
max(initializer_list<_Tp> __t)
^
1 error generated

What is the expected behavior?
It appears that there needs a cast in order to get the template max function to see both arguments as the same type
Current Code
void SystemClockDelay::delay(std::chrono::milliseconds milliseconds) {
    int64_t zero = 0;
    auto duration = std::chrono::milliseconds(std::max(zero, milliseconds.count()));
    std::this_thread::sleep_for(duration);
}

Possible soluion
void SystemClockDelay::delay(std::chrono::milliseconds milliseconds) {
    int64_t zero = 0;
    auto duration = std::chrono::milliseconds(std::max(zero, static_cast<int64_t>(milliseconds.count())));
    std::this_thread::sleep_for(duration);
}

According to the chrono docs,  milliseconds should have 57 bits (or more), so int64_t should be an upcast.
Tell us about your environment:
What version of the AVS Device SDK are you using?
  v1.18.0

Tell us what hardware you're using:

[X] Desktop / Laptop
[ ] Raspberry Pi
[ ] Other - tell us more:

Tell us about your OS (Type & version):

[ ] Linux
[X] MacOS
[ ] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Cross-compiling for Android

Hi @jbfitb,
Thanks for bringing this to light. Since this code is effectively doing a negative check, it would be preferable to explicitly do that check by comparing milliseconds.count() against zero, and assigning values as appropriate. Then, the cast can be avoided altogether.This will be tracked and fixed in an upcoming release.

@jbfitb,
Hi @ghe0Rghe,
We have a task in our backlog to fix this, so I am closing out the issue.  We will announce a fix in our release notes when the fix is released.
Thank you again for bringing this to our attention!
Best regards,
-SWH


[SPARK-8743] [Streaming]: Deregister Codahale metrics for streaming when StreamingContext is closed

The issue link: https://issues.apache.org/jira/browse/SPARK-8743
Deregister Codahale metrics for streaming when StreamingContext is closed
Design:
Adding the method calls in the appropriate start() and stop () methods for the StreamingContext
Actions in the PullRequest:

Added the registerSource method call to the start method for the Streaming Context.
Added the removeSource method to the stop method.
Added comments for both 1 and 2 and comment to show initialization of the StreamingSource
Added a test case to check for both registration and de-registration of metrics

Previous closed PR for reference: https://github.com/apache/spark/pull/7250

Can one of the admins verify this patch?

@tdas and @srowen, the new PR for the JIRA.
Thank you.

Added the changes and ran ./dev/scalastyle and ~test-only *StreamingContextSuite.
Both passed.

Test build #1060 has started for   PR 7362 at commit 0e8007a.

Test build #1060 has finished for   PR 7362 at commit 0e8007a.

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

@tdas does this PR need more improvement?

LGTM, minus a nit on the Thread.sleep().

Can one of the admins verify this patch?

@tdas Removed it.
Thank you for the review.

Jenkins, this is ok to test.

Merged build triggered.

Merged build started.

Jenkins, slow test please

Test build #37155 has started for   PR 7362 at commit 7d998a3.

Merged build triggered.

Merged build started.

Test build #3 has started for   PR 7362 at commit 7d998a3.

Test build #37155 has finished for   PR 7362 at commit 7d998a3.

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

Merged build finished. Test PASSed.

LGTM! Merging this in master and branch 1.4

Test build #3 has finished for   PR 7362 at commit 7d998a3.

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

Merged build finished. Test PASSed.

This has been merged. But for some reason the PR was not automatically closed. So could you close this PR. Thanks!

Closing. Thank you.


[Service Bus] AMQP Link Setting to Expose the Maximum Number of Messages

Problem statement
To provide the best possible developer experience, the Service Bus client library attempts to eagerly validate caller-provided data before invoking a service operation to allow for a more responsive API.   To avoid drift between the client and service enforcement, the client limits validations to items that either have meaning only to the client or that are based on information that the Service Bus service provides.
When publishing messages, there is a maximum number of items that the service will accept in a single operation, regardless of any size considerations.  At the time of writing, the Service Bus service will reject any request containing more than 4,500 messages.  Because the service doesn't communicate the object limit, the client library is unable to validate that constraint or provide a guided development experience for ensuring safe limits.
Please consider exposing the maximum message limit as part of the settings for a SendingAmqpLink, following the same pattern that is currently used to communicate the  maximum message size.
Potential workarounds
Because the limit is not believed to be discoverable, the only viable workaround would be for the client library to hardcode an assumption for the maximum message limit and enforce it.  Some of the shortcomings of this approach are:

The client logic may become out-of-sync with the limits enforced by the Service Bus service.  This would lead to a developer experience where the service may reject operations that the client library believes are valid or the client library may be artificially limiting throughput for callers.

The client logic would have to potentially account for differences in the limits by tier of resource, which exacerbates the first point by adding more potential for drift and additional points of failure.

Each version of the client library would have a baked-in limit;  this would potentially cause drift between versions of the client library and/or the client libraries in different languages, further exacerbating the the first point and making developer troubleshooting more difficult.

Desired outcome

When a sending link is negotiated between the Service Bus client library and the service, the link settings contain a member in the Settings collection that defines the maximum message count that the service will accept for any single publishing operation.

The maximum message limit is dynamic and accurately reflects the limits applied to the specific Service Bus entity that the link was requested for.

The semantics around communicating the maximum message limit mirror that of the maximum message size that is currently used.

References and related

[Azure Service Bus] Batch.TryAdd should respect service limits of 4500 items max (#19125)

//cc: @ramya-rao-a, @JoshLove-msft, @hemanttanwar, @conniey, @YijunXieMS, @yunhaoling, @chradek, @richardpark-msft

We have opened an investigation task for this in our backlog, and will update this issue when we have more information.

This would be cool. Then I can revive my PR. Yehaa :tada:

@JoshLove-msft maybe add it to the description too in the references and related section?

We have assigned an engineer to look further into this issue. We will update this issue when we have more information.


Add notification bar for survey

Overview
After a delay of 2 minutes, show a notification bar above the header which asks the user to provide feedback via a link. Add a close button which persists the setting, so that the bar is not shown on subsequent visits to the site.
The text hasn't been specified, but we can use placeholder "We'd love to hear what you think, add your feedback here"
We can use a placeholder link that opens a new tab that will eventually be a SurveyMonkey form.

@alexelash This was an additional feature requested by the client, though I don't think the banner is a hard requirement, if you'd prefer a different type of notification container.

@alexelash This was an additional feature requested by the client, though I don't think the banner is a hard requirement, if you'd prefer a different type of notification container.

Desired behavior - The notification for the survey should display 30 seconds after the user visits the visualization page.
Survey link - https://docs.google.com/forms/d/e/1FAIpQLSfWXehbiAY_7E02FJXDIjbL4dbJSDtQ7DRE_e9uKNeADFmEKw/viewform
Text - "You're invited to take a 30-second survey about this dataset - click here to begin!"

Desired behavior - The notification for the survey should display 30 seconds after the user visits the visualization page.
Survey link - https://docs.google.com/forms/d/e/1FAIpQLSfWXehbiAY_7E02FJXDIjbL4dbJSDtQ7DRE_e9uKNeADFmEKw/viewform
Text - "You're invited to take a 30-second survey about this dataset - click here to begin!"

@alexelash Facebook asked for a brighter color behind the survey notification in order to draw people's attention. Perhaps one of the reds used elsewhere on the site.

@alexelash Facebook asked for a brighter color behind the survey notification in order to draw people's attention. Perhaps one of the reds used elsewhere on the site.


Documentation isn't on Rubygems

Description
From the readme, the line is

You should find the documentation for your version of factory_bot on Rubygems.

I'd read this as API documentation, or user documentation, or some other sort of documentation. I click through to the Rubygems page for FactoryBot, though, and there's nothing of that sort. It does give copy & pasteable ways to copy the Gemfile syntax for installing this gem, but that's – as far as I can tell – the only kind of documentation you can find there.
Reproduction Steps
Click through to Rubygems.org from the README.
Expected behavior
There should be documentation on Rubygems
Actual behavior
There isn't documentation on Rubygems. The getting started guide appears to be the main narrative source of documentation.

Thanks for the issue. I see a link to documentation for v5.1.2 but that seems to have been replaced by a changelog link for v5.2.0. He added the changelog link in https://github.com/thoughtbot/factory_bot/commit/0bcb6151b884d421ef4e7d840c1b098e6ca74d97#diff-ff1a92cd12d8179e487b79302e7e9316, but I did not expect that to remove the documentation link. Hmm....
In the meantime, https://www.rubydoc.info/gems/factory_bot/5.2.0 is the link to documentation for 5.2.0.

This should be fixed with the next release.


adding insight report to the report documentation page

adding the insight report feature documentation

@obahidika
Hi,
This pull request was opened in the public repo. PMs and content developers should work in the private repo, as described in the authoring guide.
We encourage you to use the private repo for future contributions to Microsoft Learn.
Thanks!


Disable transitions API to support unit testing

Transitions with their unpredictable timing make it hard for us to test changes in an SVG with JS unit tests.
We've tried mocking the wall clock and calling d3.timer.flush(), but for some reason not even that helps (unless you flush the timer a few ten thousand times).
Looking at https://stackoverflow.com/questions/20068497/d3-transition-in-unit-testing and https://stackoverflow.com/questions/14443724/disabling-all-d3-animations-for-testing I suppose I'm not the only one who has this problem, so I propose:
There should be a way to globally disable all transitions and animations and move to the final state immediately, similar to http://api.jquery.com/jQuery.fx.off/

@mbostock, could you suggest how to skip the animation in d3 v4? None of the solutions above seem to work for me.

Same observation…  winding time forward to Infinity no longer works to flush D3 transitions in version 4.  I'm using asynchronous Mocha tests and using a setTimeout to wait for it to complete, but that does have the potential to slow down our testing environment.

@skhilko @cvkline Version 4 moved to performance.now, so you need to use   performance.now = function() { return Infinity; }; d3.timerFlush();

@larsenmtl @skhilko @cvkline I tried that and was running into problems with timerFlush using a cached value for performance.now() (clockNow here). To get around it, I made a method that I can call to artificially move the clock a certain amount and run the transitions that should be ran. I use promises with Mocha for testing and can chain a few calls to this if I want to test chained transitions.
clockTick(milliseconds) {
  const currentNow = performance.now();

  performance.now = () => currentNow + milliseconds;

  // The new animation frame means d3's timers will check performance.now() again
  return new Promise(resolve => requestAnimationFrame(resolve));
}

That's a good solution; we make heavy use of promises in our Mocha tests as well and there's a lot of scaffolding to support that. Thanks!


Ask/Explain tooltip doesn't dissapear properly

Bug Report
Installation Method
Docker
Environment

Open WebUI Version: v0.3.11

Ollama (if applicable): latest

Operating System: Latest Arch

Browser (if applicable): Brave [Version 1.70.119 Chromium: 129.0.6668.70 (Official Build) (64-bit)

Confirmation:

[*] I have read and followed all the instructions provided in the README.md.
[*] I am on the latest version of both Open WebUI and Ollama.
[*] I have included the browser console logs.
[] I have included the Docker container logs.
[*] I have provided the exact steps to reproduce the bug in the "Steps to Reproduce" section below.

Expected Behavior:
The software is great, thanks to the whole team. It's really minor bug. The new Ask/Explain doesn't seem to disappear properly
Actual Behavior:

Clicking away doesn't disappear it and nothing is highlighted in the second message anymore. Sometimes it also pops up on it's own in the centre of the screen. I was unable to reproduce that in a conversation without personal info in thought.
Description
Bug Summary:
The Ask/Explain tooltip doesn't disappear properly
Reproduction Details
Steps to Reproduce:
Click about a bit randomly to highlight some stuff and it should reproduce. I don't have steps to reproduce the one when I wasn't clicking, just also happened randomly without text selection in a long conversation.
Logs and Screenshots
Browser Console Logs:
usage Object
+layout.svelte:82 usage Object
+layout.svelte:82 usage Object
+layout.svelte:82 usage {models: Array(1)}
+layout.svelte:82 usage {models: Array(1)}
...etc
Docker Container Logs:
N/A
Screenshots/Screen Recordings (if applicable):
See above
Additional Information
To the whole team, please keep up the good work. Sorry I'm reporting this so soon after you pushed but I love your software so much I literally am on the latest version as soon as you push it. I appreciate the work you all do SOOOO MUCH.

Should be fixed with 0.3.32, let me know if the issue persists!


Support enums

Both Dart and TypeScript have them. Basic syntax is the same.

Thanks for having merged this. If you want support for const enums, will you open another issue?


Fixed arg to make it compatible

Lint report for commit c89a3be0dccb55777bc60da810440ed02152ad17:
Everything seems all right :smile: .
CFME QE Bot

Coverage decreased (-0.02%) to 27.434% when pulling c89a3be0dccb55777bc60da810440ed02152ad17 on fix_scvmm_arg into 16d0530e2c14b5f86f7573fc0d2e3ffda2b5f4af on master.


BUG - createTransportRequest fails with ERR_BAD_REQUEST 400 error if description is too long

Related Feature
Feature request: https://github.com/SAP/open-ux-tools/issues/1821
Description
There's a 60 character limit on the description that can be provided in the <REQUEST_TEXT> in the payload for creating the transport request.
Including the ABAP repo name in the description leaves it vulnerable to going over the limit (the repo name needs to be 11 characters or less), and returning a 400 Bad Request error.
Steps to Reproduce
Steps to reproduce the behavior:

Import createTransportRequest from @sap-ux/deploy-tooling
Ensure the app.name in the config is 12 characters or more
Call the function
See error

Expected results
Transport request number is generated
Actual results
ERR_BAD_REQUEST : Request failed with status code 400 is thrown
Screenshots
If applicable, add screenshots to help explain the problem.
Version/Components/Environment
Add any other context about the problem here
OS:

[ ] Mac OS
[ ] Windows
[ ] Other

Root Cause Analysis
Problem
See description above
Fix
Ensure the there is <60 characters within the <REQUEST_TEXT> tags in the payload
Why was it missed
Only app names with 11 characters or less were tested
How can we avoid this
More exploratory testing with such features i.e test with unusually long repo names

Fix is merged


Middleware expects proper bool after upgrade to 2.2.1

Do you want to request a feature or report a bug?

Bug

What did you do?
I upgraded from Docker image 2.0 to 2.2.1.
I added the new CRDs and updated RBAC as per the migration guide.

What did you expect to see?
I checked if my routers and services were properly added based on my IngressRoutes.
What did you see instead?
The routers and services were not there.
My pods were outputting an error in my middleware, something along the lines of parseBool failed - expected t or f but found " (double quote).
Output of traefik version: (What version of Traefik are you using?)

traefik/traefik:2.2.1

What is your environment & configuration (arguments, toml, provider, platform, ...)?
This is the Middleware definition that worked in 2.0:
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: securityheaders
  namespace: traefik

spec:
  headers:
    stsPreload: "true"
    stsIncludeSubdomains: "true"
    stsSeconds: 31536000
    forceSTSHeader: "true"
    frameDeny: "true"
    sslRedirect: "true"

Note: I am running Traefik in a k3s cluster, using FluxCD to apply resources.

If applicable, please paste the log output in DEBUG level (--log.level=DEBUG switch)
(paste your output here)

Fix/workaround
As expected, I got everything up and running again by removing the "s from my bools in the Middleware definition.
I see this as a breaking change and am a bit surprised nobody else has run into this.
The official docs also specify these values in quotes, e.g.: https://docs.traefik.io/middlewares/headers/#using-security-headers

may be related to https://github.com/containous/traefik/issues/6760

Closed by #6928.