npm issue

well i dont know what is wrong, any clue guys?

Line 1: Unexpected reserved word
You may need an appropriate loader to handle this file type.
| import React from 'react';
| import SparklinesLine from './SparklinesLine';
| import SparklinesBars from './SparklinesBars';
@ ./~/react-sparklines/index.js 1:17-47

Is it possible that you have not included 'babel' in the webpack loader list?
It is needed to transpile ES6 code (which import is part of).
Have a look at the webpack.config.js file in this project for an example.

I think you should be using a prepublish script to transpile your es6 modules before publishing to npm rather than impose a build step on anyone that wants to use your package. See here for example http://mammal.io/articles/using-es6-today

Good point.
Thanks for pointing it out.

Just wanted to mention this issue tripped me up too...
[17:05:48] Starting 'browserify'...
[17:05:48] Finished 'browserify' after 23 ms
[17:05:48] Starting 'fonts'...
[17:05:48] Finished 'fonts' after 6.76 ms
[17:05:48] Starting 'scss'...
[17:05:48] Finished 'scss' after 11 ms
[17:05:48] Starting 'watch'...
[17:05:48] Finished 'watch' after 27 ms
[17:05:48] Starting 'default'...
[17:05:48] Finished 'default' after 7.33 μs

/home/vagrant/Code/my-source.co/node_modules/react-sparklines/src/Sparklines.js:1
import React from 'react';
^
ParseError: 'import' and 'export' may appear only with 'sourceType: module'```

The package in https://www.npmjs.com/package/react-sparklines is old. Could you publish a new one? Thanks.

Done.

Thanks! @borisyankov


chore(SetTheory/Cardinal/Basic): mem_range_of_le_lift → mem_range_lift_of_le

This was a typo I made in #16958 only a week ago or so, so hopefully this doesn't warrant deprecations.

Admittedly the "incorrect" name also makes sense, but I think it's clearer to explicitly specify the function whose range we're talking about.

Delegating out of fear to conflict with #17517 (maybe it won't). Feel free to merge after that is merged.
bors d+

bors r+


Mount (without auth) requires nuname

I'm not sure if this is a bug.  But the behavior surprised me, and it means I can't use srv_fcall.go with the 9p that comes with Plan 9 from Userspace.
I'm working on a file system that enforces file access permissions for virtual users.  The users are defined in the file /adm/users, and don't need to authenticate just be authorized (https://github.com/mbucc/vufs/blob/master/vusers.go).
When 9p tries to mount with authentication (9p -n -a localhost:5640 ls), it sends a zero for nuname:
Tattach tag 0 fid 0 afid<PHONE_NUMBER> uname 'mark' nuname 0 aname ''

Since nuname != NOUID, srv_fcall.attach checks Uid2User, which fails, as the 0 doesn't match my virtual user's uid defined in adm/users.  (I suspect 9p will always send a 0 for nuname in this case.)
Would you be interested in a patch that modifies the user lookup logic to check Uname2User before Uid2User for non-dotu situation?

A comment in fcall.h says that uidnum is a dotu extension:
https://github.com/9fans/plan9port/blob/master/include/fcall.h#L45-L48
So now this looks more like a bug; if I'm not using dotu, I should not need nuname (aka uidnum).
I'm not sure why the last commit to fcall.h, which removed dotu, didn't remove those fields from struct Fcall.

try to cherry-pick the fix i sent to @lionkov lionkov/go9p@11a63487351273ae0c2e0be51ef6331cda11dc81

@mischief, heh found the same spot about one minute before your comment.


Temporally Qualified Continuants to Simplify Temporalized Relations

From<EMAIL_ADDRESS>on February 04, 2013 10:54:49
Following up several discussions we had in the past, and in light of the acceptance problems of the current temporalized BFO2 relations I would like to suggest the "Temporally Qualified Continuants" approach as a possible alternative (thanks: Niels Grewe, Janna Hastings, Fabian Neuhaus).
I uploaded a SAMPLE ONTOLOGY: http://bfo.googlecode.com/svn/trunk/src/ontology/owl-schulz/tqc2.owl The key idea is that a subclass is added to Continuant: Temporally qualified continuant = Time-stamped continuant.
"Temporally qualified continuant" is NOT an ontologically relevant category. For TBox reasoning it is irrelevant. But it matters when it comes to represent individuals, because it requires that a timestamp be added to the each instance.
The idea is the following:
Rel (a, b, t)
cannot be expressed in OWL.
But we could state the same by
Rel (a@t, b@t)
with a@t , b@t being temporally qualified continuants.
By adding domain / range constraints it can be easily assured that wherever a relation is asserted between two continuants the relata are classified as temporally qualified continuants.
The notion of "at some time" can be added by chaining with the object property "at some time", which related a continuant with each of its temporalized aspects.
In case of transitive relations, the approach maintains transitivity between temporally qualified continuants, but blocks transitivity as soon as there is a chaining with the relation "at some time".
It also seems that this approach addresses the needs for using OWL relations related to triple-based instance data.
An assertion of the type
continuant1 rel continuant2
entails that both relata must be temporally qualified:
continuant1 rel continuant2
continuant1 hasTimestamp T1
continuant2 hasTimestamp T1
However, OWL cannot avoid invalid statements such as
rel (continuant1@T1, continuant2@T2)   with T1 =/= T2 http://bfo.googlecode.com/svn/trunk/src/ontology/owl-schulz/tqc2.owl
Original issue: http://code.google.com/p/bfo/issues/detail?id=149

From<EMAIL_ADDRESS>on February 04, 2013 08:03:08
Can you detail how it simplifies things? Do we still need occurrent versus continuants relations? What
Kinds of inference and queries does it support? How is continuity between a@t1 and a@t2 established at the instance level - I.e how do we know they are both 'a' and determine rigid values, such as name or species.

From<EMAIL_ADDRESS>on February 04, 2013 15:18:14
It simplifies things because if we assume generical relatedness as the default in existing OBO ontologies (according to the interpretation of relations in OBO syntax), then the migration would be straightforward. Whoever wants to restrict the relation to "at some time" can do it by postcoordination as demonstrated in the example.
In my opinion this approach is compatible with one, e.g. part-of relation. It is always binary, as between continuants it can only be used if the continuants are temporally qualified. To prevent the linkage between continuants and occurrent, one axiom suffices: Occurrent subClassOf part-of only Occurrent
It supports transitivity in its standard use case, but the combination of a transitive relation with the "at some time" relation is no longer transitive, as expected.
Continuity between a@t1 and a@t2 at the instance level assured because the instances are not referred to as a@t1 or a@t2 but just as a
In a triplet representation it would look like
< a has-timestamp t1>
< a has-timestamp t2>
But it is not straightforward. I don't have a clear solution - but it is also unclear how it should look like if we use temporalized relations, e.g.
< a has-part-at-some-time b>
< a has-part-at-some-time c>
How would you introduce timestamps here?
I think in both cases we need to introduce blank nodes which would correspond to sth like a@t1
I haven't tested it, but one could make the following assertions (using the standard example human as a rigid class and student as an anti-rigid class):
Student subClassOf Human
Student subClassOf 'at some time' some (not Student)
Not sure what are the consequences of it, I haven't tested it.
But I guess nobody expects that we solve the rigidity problem with a simple OWL formalism. Perhaps if we move further to some kind of fourdimensionalism, but I guess that this is not agreeable

From<EMAIL_ADDRESS>on February 04, 2013 20:04:52
It doesn't support sound inference of transitivity. Any entailment of transitivity is unsound unless the times align in all models. Since transitivity is inferred whether or not that is known, and as in any case in which it is unknown it is possible to create a set of assertions in which the times do not align, an entailment of transitivity in such a case would be unsound.
It would be as if in the current BFO2 draft part-of-at-some-times was asserted to be transitive.

From<EMAIL_ADDRESS>on February 04, 2013 21:09:46
I think this approach is promising. Maybe Stefan could flesh out some more examples (tqc2.owl is a little abstract!).
It would be great to this proposal embedded in CLIF somehow. This would be for purposes of clarification and validation, users would not see the CLIF.
Failing that examples and counterexamples are good. Alan, can you give an example of unsound inference of transitivity entailed by this model.
My intuition is that this proposal aligns well with the RO 2005 paper (I think this is what Stefan means when he says "interpretation of relations in OBO syntax").

From<EMAIL_ADDRESS>on February 04, 2013 22:05:14
Failing that examples and counterexamples are good. Alan, can you give an example of unsound inference of transitivity entailed by this model.
Add
TimeInstant subClassOf TemporalInterval
t1 instanceOf TimeInstant
t2 instanceOf TimeInstant
t1 differentFrom t2
a1 hasTimeStamp t1
b1 hasTimeStamp t2
A = {a1}
B = {b1}
Now despite the fact that we have said that

There is only one instance of A:a1
There is only one instance of B:b1
a1 doesn't exist at the same time as b1 (they are atSomeTime distinct time instants)

The same inference as before is found: A is determined to be a subclass of HAS_CONTINUANT_PART_SOME_C
This inference disappears (and the ontology makes sense again) if you remove the transitivity axioms on has_part, part_of
So: The transitivity is incorrectly inferred in this case.

From<EMAIL_ADDRESS>on February 04, 2013 22:30:32
These axioms extend tqc2.owl, correct?
Is it not the case that the inference is valid but the ontology is inconsistent? Unfortunately we can't detect the inconsistency, noted by Stefan:
"However, OWL cannot avoid invalid statements such as
rel (continuant1@T1, continuant2@T2)   with T1 =/= T2"
[there may be some practical techniques we can use detect some of these inconsistencies]
Are there examples of incorrect inferences that start from a coherent set of axioms?
You say "This inference disappears (and the ontology makes sense again) if you remove the transitivity axioms on has_part, part_of" - but how does the ontology make sense, if two TQCs from different times are connected via part_of?

From<EMAIL_ADDRESS>on February 04, 2013 23:42:50
BFO OWL cannot solve all temporal reasoning problems when dealing with instance data.
Also temporally qualified relations relating instance data are problematic, e.g.
NOW: StefansHeart part-of-all-times StefansBody
This statement has no timestamp attached. It will be invalid if I die tomorrow and my heart is transplanted.
With TQCs, we would get from the upper level ontology 'x rdf:Type bfo:TQC' for each instane x that is used with some continuant-to-continuant relation. The test for temporal consistency would have to occur outside DL, anyway.

From<EMAIL_ADDRESS>on February 05, 2013 00:10:23
See a draft version of the pre-Graz BFO2 (without temporalized relations) enhanced by 'temporally qualified continuant', 'at some time', and a value restriction for entity https://code.google.com/p/bfo/source/browse/trunk/src/ontology/owl-schulz/bfo_tqc.owl

From<EMAIL_ADDRESS>on February 05, 2013 04:13:49
However, OWL cannot avoid invalid statements such as  rel (continuant1@T1, continuant2@T2)   with T1 =/= T2"
Are there examples of incorrect inferences that start from a coherent set of axioms?
You say "This inference disappears (and the ontology makes sense again) if you remove the transitivity axioms on has_part, part_of" - but how does the ontology make sense, if two TQCs from different times are connected via part_of?
This is a somewhat fair criticism. I will construct an example that doesn't have this problem - it only needs to arrange temporal regions in which misalign
a
-----
b
-----------
c              -----------
This is not an implausible biological scenario during development.
There is a difference between not being able to detect inconsistencies  (incompleteness) and deriving incorrect entailments (unsoundness)
As an example, inconsistent OWL will not be detected by RDF reasoning. But entailment in OWL will not derive any unsound by RDF inferences.
We may accept incompleteness. We can't accept unsoundness.
Regarding transplantation, this is a problem with the assertions made by canonical anatomy ontologies. If you are suggesting that the TQC approach allows a straightforward way to design anatomy ontologies that both preserve transitive part hood, and also allow for transplantation, please show how.

From<EMAIL_ADDRESS>on February 05, 2013 05:28:22
Surely the issue is one of specifying the circumstances for which a modelling approach is applicable.  Transitive 'part of' + inverse 'has part' make perfect sense, but only if modelling the aspects of some class of continuant that do not change over time.
As an example: VFB currently only models static aspects of (canonical) adult Drosophila brain anatomy.  Our queries rely on transitivity of parthood, both directly and in the derivation of axioms on relations. We would lose lots of perfectly correct and useful inference if we eliminated transitivity of parthood.

From<EMAIL_ADDRESS>on February 05, 2013 06:06:38
Important: in terms of OWL (I wouln’t make an ontological claim here),
if x is an non-TQC continuant and x@t1 a temporally qualified one then x =/= x@t1
In RDF:
<x; rdf:Type; X>
<x; 'at some time'; x@t1>
<x; 'at some time'; x@t2>
< x@t1; 'has timestamp'; t1>
< x@t2; 'has timestamp'; t2>
Part-of transitivity, in its most general form can be expressed by the following rule using temporalized triples:
<x@t1; 'part of';y@t1>
<y@t1; 'part of';z@t1>
<x@t1; 'part of';z@t1>
Outside OWL we need to check the validity rule:
IF <x@t1; rel ; y@t2> and t1=/=t2, THEN triplet is invalid
The reason ist that the triplet corresponds to the quadruple
< rel, x, y, t1>
This quadruple has only one time argument
Re: consistency check of temporalized triplets:
tentative OWL axiom:
TemporalInstant subClassOf isTimeStampOf only ((not TQC) or TQC and (rel some (TQC and hasTimestamp Self)))
(not tested yet)

From<EMAIL_ADDRESS>on February 05, 2013 08:07:45
I'm wondering about whether this axiom
entity subClassOf
topObjectProperty only
('temporally qualified continuant' or occurrent)
is valid OWL2.
If it is note that this precludes having inverses of relations that go from (continuant and not tqc) -> tqc, as the inverse would violate the global restriction on topobjectproperty.
I suspect there will be other issues around that.
I've asked Uli Sattler about this, and to discuss the two approaches - she should be available next week,

From<EMAIL_ADDRESS>on February 05, 2013 08:08:45
AR: The condition is too strong.
SC: Part-of transitivity, in its most general form can be expressed by the following rule using temporalized triples:
<x@t1; 'part of';y@t1>
<y@t1; 'part of';z@t1>
<x@t1; 'part of';z@t1>
AR: You aren't specifying what it means to say x@t1. If t1 is an interval, do you mean x@t1 'part of' z@t2 is true
a) Only when t1 and t2 are the same?
b) as long as t1 part of t2? (this is the sense of RO 2005)
c) at any ti that is part of t1 and part of t2?
The general case is:
<x@t1; 'part of';y@t2>
<y@t3; 'part of';z@t4>
According to  a)
t1=t2 and t3=t4 else invalid.
only if t1=t3 is it the case that <x@t1; 'part of';z@t1>
according to b)
Notation: '<' = 'part of'
t1 < t2 or invalid
t3 < t4 or invalid
If  t2 < t3  then <x@t1; 'part of';z@t1>
otherwise there is nothing inferred.
According to c)
if not exists(ti) ti < t1 and t1< t2 then invalid (t1 and t2 don't intersect)
if not exists(ti) ti < t3 and t1< t4 then invalid (t3 and t4 don't intersect)
Otherwise
if exists(ti) z < z < t1 and z< t2 and z< t3 and z < t4 then
x@ti 'part of' y@ti
otherwise no inference should be made.
SC: Outside OWL we need to check the validity rule:
IF <x@t1; rel ; y@t2> and t1=/=t2, THEN triplet is invalid
AR: It looks to me that the check is more complicated than that. Also, if you always have to have t1=t2 then that severely limits the biology you can describe, no?

From<EMAIL_ADDRESS>on February 05, 2013 08:26:37
SC: Outside OWL we need to check the validity rule:
IF <x@t1; rel ; y@t2> and t1=/=t2, THEN triplet is invalid
AR: It looks to me that the check is more complicated than that. Also, if you always have to have t1=t2 then that severely limits the biology you can describe, no?
CM: probably. E.g. we probably only want to perform this test for some rel in a set of temporally qualified relations. E.g. it would be valid to have some relations (e.g. transormation_of) connect across times.

From<EMAIL_ADDRESS>on February 06, 2013 06:01:34
STEFAN: I was looking for literature about the problem how instance data can be temporalized. The only approach which is referred to repeatedly is to reify object properties.
In our case it would mean:
<p1; rdf:Type; Parthood>
<p1; Whole; y>
<p1; Part; x>
<p1; Time; t1>
<p2; rdf:Type; Parthood>
<p2; Whole; z>
<p2; Part; y>
<p2; Time; t1>
I don't see any way do get the desired inference be DL reasoning here.

From<EMAIL_ADDRESS>on February 26, 2013 11:44:55
It seems that this thread is no longer active, but I suppose the issue is not settled. Would TQC be a reasonable feature to include into the OWL version of BFO 2? Or can the OBO community cope with the temporally qualified relations suggested thus far?

From<EMAIL_ADDRESS>on February 27, 2013 18:25:39
The OBO community is fairly diverse. I think the reification approach would not be acceptable but this may not be required for TQCs. I'm not sure the tracker is the best place to hash this out - I'd like to see more concrete examples in OWL and some FOL showing the translation.

From<EMAIL_ADDRESS>on March 04, 2013 02:17:32
The reification approach would not be required for TQCs. I just mentioned it because it is often regarded as the standard approach for expressing n-ary relations in OWL. It has the problem that it is complex (especially in case it is expected to support transitivity) and will probably not be well accepted by the user community.


[identity-tutorial] identity tutorial

Tutorial to guide user through creating a Custom Identity in FireFly.
References https://github.com/hyperledger/firefly/issues/621

Thanks for the review @peterbroadhurst
Don't think I'll finish the changes before rc3 goes out, but will be ready by Tuesday

Codecov Report

Merging #1022 (79716b6) into main (75fc92d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1022   +/-   ##
=======================================
  Coverage   99.83%   99.83%
=======================================
  Files         307      307
  Lines       20264    20264
=======================================
  Hits        20230    20230
  Misses         19       19
  Partials       15       15

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


NuGet Commands: Tab-Expand -Provider Parameter

We should enable tab-expansion on the Reverse-Engineer -Provider parameter. Just the list of installed NuGet packages would be a good start. Something like this:
Register-TabExpansion 'Reverse-Engineer' @{
    'Provider' = {
        Get-Package | select Id
    }
}

+1

I'll work on this.


HTML

#HTML
User Story
As a bootcamp student
I want the prework notes to be structured on a webpage
so that I can easily find and read information
##Acceptance Criteria
GIVEN a prework Study Guide website
WHEN I visit the website in my browser
THEN I see four boxes titled HTML, CSS, Git, and JaveScript with associated notes lister

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."


Basic auth with no password

Basic auth is sometimes used where the username is an API key, and the password is blank.
Is there a way to make httpbin act in this way? I can see https://httpbin.org/basic-auth/user/passwd, would it be possible to also have https://httpbin.org/basic-auth/user for cases when there is no password.
I would then expect both of the following to work:
curl -u user:passwd https://httpbin.org/basic-auth/user/passwd
curl -u user: https://httpbin.org/basic-auth/user

Thanks for this project, it's great. I dont use python day-to-day but i'm happy to submit a pull request for this if you think it's a good idea.

pull request would be accepted!


Problem with the last version of DBT package: fivetran/jira

Hi
Attached file with explanation on the bug.
we upgrade the package: : fivetran/jira To the last version: 0.4.0. and have some issues:

I set in variable: jira_issue_history_buffer = 12, and I expect to get the data of closed issues - 12 months from resolved date.
For example, I have an issue that closed at 02.02.2020, I want the data until 02.2021, but I get the data until today.
Can you help me and guide me if need to declare an additional variable, or need an another one?

We use with variable : issue_field_history_columns , I set in this var: issue_field_history_columns: ['Story Points','priority','summary','Team','Closed','Capitalize','Regression','Epic Story Points','Requirement Category','_FIVETRAN_SYNCED', 'Found By']
Most of the fields without values after I run the new package.
I investigated the code and find that there is a new logic in file: int_jira__daily_field_history.sql in cte: limit_to_relevant_fields

The old code:
limit_to_relevant_fields as (
-- let's remove unncessary rows moving forward and grab field names
select
combined_field_histories.*
from combined_field_histories

where
lower(field_name) in ('sprint', 'status'
                            {%- for col in var('issue_field_history_columns', []) -%}
                            , {{ "'" ~ (col|lower) ~ "'" }}
                            {%- endfor -%} )

),
The new code:
limit_to_relevant_fields as (
-- let's remove unncessary rows moving forward and grab field names
select
combined_field_histories.*
from combined_field_histories

where lower(field_name) = 'sprint' -- As sprint is a custom field, we filter by field name only for sprint. All others are on field_id.
    or lower(field_id) in ('status'
        {%- for col in var('issue_field_history_columns', []) -%}
            , {{ "'" ~ (col|lower) ~ "'" }}
        {%- endfor -%} )

),
I see the comment that all fields aren't custom(exept sprint), but most of the fields that I use are custom:
In the meantime I return to the old version , but we need urgently a new feature in the new version.
Can you check and update us asap?
Thank a lot for your support.
Rivki

hey there @RivkiHofman! what version of the package were you using prior to v0.4.0?

when was the last time the issue was updated? the buffer period is in relation to the last time an issue was updated, so if an issue was updated after already being resolved, the field history will extend to 12 months after this update/up to the current date if needed
a previous version of this package required you to input field names for the issue_field_history_columns variable. however, that produced some issues, so issue_field_history_columns now requires field IDs. if you swap the IDs and names for the columns you've selected for this variable, does it work properly?

Thanks for your answer, I replaced the name with id and now I have data, but I think that there is a problem in the file:
jira__daily_issue_field_history.sql.
I see that the logic was changed and there is a new cte:
set_values as (
select
    date_day,
    issue_id

    {% for col in pivot_data_columns if col.name|lower not in ['issue_id','issue_day_id','valid_starting_on'] %}
    , {{ col.name }}
    -- create a batch/partition once a new value is provided
    , sum( case when {{ col.name }} is null then 0 else 1 end) over (
        order by issue_id, date_day rows unbounded preceding) as {{ col.name }}_field_partition

    {% endfor %}

from joined

),
Part of my data is incorrect, and I think that in SUM() analytic function missed partition by.
Now it is:
sum( case when {{ col.name }} is null then 0 else 1 end) over (
order by issue_id, date_day rows unbounded preceding) as {{ col.name }}_field_partition
And maybe need to be:
sum( case when {{ col.name }} is null then 0 else 1 end) over ( partition by issue_id
order by date_day rows unbounded preceding) as {{ col.name }}_field_partition
Can you check it asap?
Thank a lot.

Hi
I added a comment in Github to the open issue: fivtran/jira #36.
Can you check it asap?
It is very urgent us, we want to go live with the new version but part of
data is incorrect.
Thank a lot for your support.
Rivki
בתאריך יום ג׳, 10 באוג׳ 2021 ב-21:37 מאת Jamie Rodriguez <
@.***>:

hey there @RivkiHofman https://github.com/RivkiHofman! what version of
the package were you using prior to v0.4.0?

when was the last time the issue was updated? the buffer period
is in relation to the last time an issue was updated, so if an issue was
updated after already being resolved, the field history will extend to 12
months after this update/up to the current date if needed
a previous version of this package required you to input field
names for the issue_field_history_columns variable. however, that
produced some issues, so issue_field_history_columns now requires
field IDs. if you swap the IDs and names for the columns you've
selected for this variable, does it work properly?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/fivetran/dbt_jira/issues/36#issuecomment-896223791,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATD4UUR2QTKJMEM5NBA4NZLT4FWXJANCNFSM5B4F7FOQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

@RivkiHofman hi! we'll be looking into this today/tomorrow and let you know if we find anything. in the meantime, it would helpful if you could book a slot during our office hours tomorrow or next week (link here)

Hi
Thank for the conversation yesterday.
Do you have an estimation when the problem will be resolved?
Thanks.

hey there! we're investigating this some more and will realistically be able to prioritize releasing a solution during our next sprint, which begins next thursday. however, we recognize the urgency here and will update this thread with any progress and/or workarounds in the meantime. if you'd like to expedite the process, feel free to open a PR with your partition by solution!

@RivkiHofman we were able to look further into this issue and believe we were able to produce a fix with the help you provided earlier in this ticket and on our office hours call!
I have created a working branch fix/field-history-partition and have opened a PR #37 to integrate this fix into our next release of the Jira package. In the meantime, would you be willing to try the working branch out on your Jira data? You may do so by adding the below config in place of your jira dependency within your packages.yml:
packages:
    - git: https://github.com/fivetran/dbt_jira.git
      revision: fix/field-history-partition
      warn-unpinned: false

Let me know if this works. Thank you again for raising this to our attention!

Hi
Thank a lot, I very appreciate your effort.
The data is perfect now.
When will the fix go live?
Is it possible deploy to my prod environment, my branch with the package configuration that you sent me for test, and when you will deploy the fix I will change the configuration?
Or I mustn't do it?
Thank you very much and have a nice day

Thanks so much @RivkiHofman! I am glad the data is accurate on your end now and we again really appreciate you bringing this to our attention.
You can most definitely use the branch I noted within your production environment. We are also planning to address an additional feature request for Jira this sprint and will most likely release a new version mid next week. I will keep this ticket open and will respond once the new version is released so you may update the package dependency on your end.
Let me know if you have any other questions 😄

Hi
I deployed it and our users are very satisfied.
I have 2 questions:

Since I run the new version of jira, the generated docs failed on: 'NoneType' object has no attribute 'lower'
In the meantime, DBT support team don't success to resolve it, have you encountered such a thing? can you help me with this?
Our users asked if when they will move to jira cloud, it will affect on the structure of tables or something on DWH, do you have this information? if not, do you know who can answer?

Thank a lot

Hi @RivkiHofman

Since I run the new version of jira, the generated docs failed on: 'NoneType' object has no attribute 'lower'
In the meantime, DBT support team don't success to resolve it, have you encountered such a thing? can you help me with this?

I have seen this error before, but when I run the same generate docs command on the branch I do not receive that error. Would you be able to share your dbt_project.yml contents as this may help identifiy if the issue is being caused by a variable?

Our users asked if when they will move to jira cloud, it will affect on the structure of tables or something on DWH, do you have this information? if not, do you know who can answer?

I do not imagine this will have an affect, but I have reached out to the Jira PM to double check for you!

Thanks for your answer.
Attached my dbt_project.yml
dbt_project_yml.txt

Hi @RivkiHofman for security reasons I am not able to download and open the txt file you provided. Would you be able to copy the contents into this thread instead?
Also, I did confirm with our PM that switching the Jira cloud will not change your data structure.

This is the code of yml file:
Name your project! Project names should contain only lowercase characters
and underscores. A good package name should reflect your organization's
name or the intended use of these models
name: 'rnd_project'
version: '1.0.0'
config-version: 2
vars:
jira_issue_history_buffer: 12
issue_field_history_columns: ['customfield_10006','priority','summary','customfield_10116','customfield_10206','customfield_10303','customfield_10111','customfield_10407','customfield_11030', 'customfield_10307']
jira_database: FIVETRAN_DATABASE
jira_schema: JIRA
tfs_schema: DWH_JIRA
field_option_local: "{{ source('bi_jira', 'field_option') }}"
tfsdwhdatatotableau: "{{ source('bi_tfs', 'tfsdwhdatatotableau') }}"
tfs_history_data: "{{ source('bi_tfs', 'tfs_history_data') }}"
blackduck_database: BLACKDUCK
blackduck_schema: DWH
cvs_final: "{{ source('bi_blackduck', 'cvs_final') }}"
models:
jira:
+schema: dwh_jira
jira_source:
+schema: dwh_jira
rnd_project:
nice_jira:
tmp:
materialized: view
materialized: table
blackduck:
  tmp:
    materialized: view
  materialized: table
  schema: dwh_blackduck

This setting configures which "profile" dbt uses for this project.
profile: 'default'
These configurations specify where dbt should look for different types of files.
The source-paths config, for example, states that models in this project can be
found in the "models/" directory. You probably won't need to change these!
source-paths: ["models"]
analysis-paths: ["analysis"]
test-paths: ["tests"]
data-paths: ["data"]
macro-paths: ["macros"]
snapshot-paths: ["snapshots"]
target-path: "target"  # directory which will store compiled SQL files
clean-targets:         # directories to be removed by dbt clean
- "target"
- "dbt_modules"
Configuring models
Full documentation: https://docs.getdbt.com/docs/configuring-models
In this example config, we tell dbt to build all models in the example/ directory
as tables. These settings can be overridden in the individual model files
using the {{ config(...) }} macro.

@RivkiHofman your variables look great and I just tried generating the docs with the same jira variables and did not encounter the same error. I wonder if this issue may not be originating from the Jira package. I have looked through dbt Slack and found a number of other users have encountered this in the past. If you remove the jira package dependency, do dbt clean and then dbt deps and then dbt docs generate do you still encounter this issue?
If you do not, then we need to look further into why you are experiencing the issue within the Jira package. If not, dbt Slack has a lot of other individuals that have encountered a similar issues which can hopefully provide some more information.

@RivkiHofman we are looking to release this update by mid week and I wanted to confirm if you were still experiencing an issue?

We run with this in our prod and the data looks good, we wait for update from you after the fix will go live.so that we will be able to config our package file with last version and continue with the additional developments.
Thanks.

Thanks for the response @RivkiHofman. From that I believe the docs generate issue was not a cause of these updates. I will move forward with integrating the changes into the next release and will let you know here once those are live!

@RivkiHofman this update is now live within the v0.5.0 release of the dbt_jira package! Thank you again for raising this issue to our attention.
Please feel free to open a new issue if you have any further questions.


Update Ruby & Bundler versions in Dockerfile

This brings them into line with the ones specified in the .ruby-version file and the Gemfile.lock.
I built an image from the Dockerfile and ran it in a container to check the changes had taken effect:
root@ac73aeccb4e9:/app# ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
root@ac73aeccb4e9:/app# bundler -v
Bundler version 1.14.5

Closes #143.

FWIW I noticed that the Jenkins CI build re-built the Docker image and pushed it to docker.io.


[BugFix] fix silly bug introduced by #16238

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
https://github.com/StarRocks/StarRocksTest/issues/1737
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

run starrocks_admit_test

run starrocks_fe_unittest

run starrocks_admit_test

run starrocks_admit_test

@Mergifyio backport branch-2.5


Flutter 2.8: Icons SIX_FT_APART* renamed to SIX__FT_APART*?

I realized, that four icons where renamed in Flutter 2.8:

SIX_FT_APART --> SIX__FT_APART
SIX_FT_APART_SHARP --> SIX__FT_APART_SHARP
SIX_FT_APART_ROUNDED  --> SIX__FT_APART_ROUNDED
SIX_FT_APART_OUTLINED -->SIX__FT_APART_OUTLINED

They have a double low line (__) between SIX and FT now.
What's the reason? Is that intended? If not, it should be reverted.

/cc @guidezpl

Closing in favor of https://github.com/flutter/flutter/issues/94894. It appears to affect more than just the six_ft_apart icons as per https://github.com/flutter/flutter/issues/94894#issuecomment-989654131.


feat: barSeries.startValue added

Brief Information
This pull request is in the type of:

[ ] bug fixing
[x] new feature
[ ] others

What does this PR do?
barSeries.startValue is added for users to specify where the bars start.
Fixed issues

fix #15463
fix #16840
fix #17077

Details
Before: What was the problem?
As stated in the issues. Users cannot specify the start value of bars.

issue #16840
issue #17077

After: How is it fixed in this PR?
Users now can specify barSeries.startValue to set the starting value of bars. Stack and multi-axes are also tested to be running correctly.

issue #16840 (startValue = -200)
issue #17077 (startValue = -150)

Misc

[x] The API has been changed (apache/echarts-doc#xxx).
[ ] This PR depends on ZRender changes (ecomfe/zrender#xxx).

Related test cases or examples to use the new APIs
bar-startValue.html
Others
Merging options

[x] Please squash the commits into a single one when merging.

Other information

This might fix #15463

Sure, it's done.

This looks to be a useful feature, only that more test cases are required. For example, to test the cases when min or max values are defined for the axis, or when r does start from 0 for polar bars.
And you need to run the visual tests to test the differences caused by this PR.
npm run test:visual

Choose the latest nightly build to compare with the one build from your source code.

It seems there are a lot of commits that are already in the master branch. Try this solution.

Please also add a startValue test with dataZoom component.

@Olivia Good intuition on dataZoom! I tested and found startValue not compatible with dataZoom.
I've revised the code and now it works well with dataZoom and more naturally incorporate in original code. Also min/max set by user now has higher priority over startValue. Another change is that startValue is moved under axis rather than series, which I think is more reasonable.
Relevant test cases concerning dataZoom, priority and polar are all added. Please check them out.

@jiawulin001 Merging is blocked，


Move all operations on one client session to the one thread.

Now session destruction and asynchronous filter handling are performed in separate threads (cleaner thread and filter thread) but may be performed on session's event thread.

Merged, core/pull-requests/80


crypto/tls: export some constants and helpers such as Unmarshaling methods for headers

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.9.1 windows/amd64
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
windows amd64
What did you do?
I am looking for tls server name indication routing and found.
There are different github repositories about that.
They all need to parse tls hello message to get the SNI.
I do think that using "crypto/tls" is the best.
Just to have a single reference on what is tls for golang.
In the end such projects need to implement their own code to decode hello message because most of "crypto/tls" constants and unmarshaling methods are not exported.
What did you expect to see?
Basic constants exported for common tls.
Unmarshaling methods exported for tls "headers"
What did you see instead?
All these informations are not exported by "crypto/tls"

Hello @cblomart, thank you for the experience report/bug!
Let me page some crypto folks @agl @FiloSottile @davecheney

Sorry, we don't want to export more stuff from the crypto/tls package. Any extra API is extra godoc and is extra user confusion when trying to read the docs.
If you just want to parse SNI using crypto/tls, see what I did at https://github.com/google/tcpproxy/blob/de1c7de/sni.go#L156
You could copy that, or move it to a common package on github somewhere.

Thx for the tip!
I little tricky nevertheless, but does the job without too much repetition.


add repository to package.json to fix no repository warning

fixes this warning from happening when running npm install
npm WARN package.json<EMAIL_ADDRESS>No repository field.

Thanks. Will release when I'm back to my desk


Created a selector for synchronous errors

I found myself needing to display all errors in a single location, as an unordered list, outside of the fields components. This adds a simple selector to return synchronous validation errors.
Also refers to https://github.com/erikras/redux-form/issues/1923

Current coverage is 100% (diff: 100%)

Merging #1932 into master will not change coverage

@@           master   #1932   diff @@
=====================================
  Files          53      54     +1
  Lines        1190    1194     +4
  Methods         0       0
  Messages        0       0
  Branches        0       0
=====================================
+ Hits         1190    1194     +4
  Misses          0       0
  Partials        0       0

Powered by Codecov. Last update dbb3993...174ba11

Docs and tests! Great PR. 👍

Published in v6.1.1.


Tag Change Delegates

This is an actual feature addition, separate from the cleanup PR, and adds several things:

An OnActiveTagsChanged delegate, called when the active tags change at all.
The ability to add targeted delegates, which will only be called when changes to tags match a specific filter.
A WaitForGameplayTagChange ability task, powered by the above.

The second of those is also necessary to (properly) create a GMCAbilitySystem equivalent to GAS's ability to map tag filters to blueprint properties and have them automatically updated, which is kinda useful in general and very useful in animation blueprints specifically.

I just went ahead and added the rest of #22 to this pull request.
There's now an FGMCGameplayElementTagPropertyMap which can map changes to the active tags to a blueprint property automatically, utilizing the filtered tag change delegates. Each individual mapping supports taking a gameplay tag container and mapping it to one property on the blueprint which owns the property map.

Bool properties will be set to true or false depending on whether the active tags contain any of the tags in the gameplay tag container.
Int, Float, and Double properties will be set to the number of active tags matching the tags in the gameplay tag container.

Tag matches are not exact, so you can map a parent tag and it will match the children.
This also adds an UGMCAbilityAnimInstance animation blueprint parent, which automatically populates a convenience reference to the owning actor's ability component, and has a property map built in.
Additionally, because there's no way to have an appropriate detail widget for this otherwise, there's now a GMCAbiltySystemEditor module which contains a property detail customization to allow editing the property mapping.

Pax this is insanely impressive. Thank you.

This is amazing. Thanks a huge ton ! 😍 Can't wait to use this


deCONZ add a way to upload firmware binaries in the container for OTA Zigbee device update

The deCONZ app alow to maje OTA update of Zigbee devices.
Detailed instructions here (https://phoscon.de/en/support#ota-update-osram-devices)
To be able to implement this, we need a way to put firmware binaries file in the container to let the deCONZ app access to this file.

This is currently being worked on in #983


cant get manifest to run

i have Ubuntu installed on AWS Free Tier server.
I have installed Jellyfin and stremio-jellyfin on AWS.
Jellyfin is up (no library yet).
repo is in JF
It says im all connected in logs:

but stremio fails to connect to the manifest:

i have tried the URL in first picture, but that doesnt make sense. tried with aws public IP https and http
i have tried my URL https and http (but http auto forces https).
All give same error.

so i found the problem. there is no "manifest.json" file.
There is a manifest.js. js not json
I tried copying manifest.js to manifest.json but still get same failed to fetch error even though I can open it with same URL in browser

Same issue here... have you able to fix it ?

Same issue here... have you able to fix it ?

Yeah the dev should just archive it if he isn't going to fix or update the code or even respond to people commenting.


Section "Attachments or images within a response" is missing key information

The information in the section concerning retrieving Attachments and images is missing key elements how this could be retrieved. Images can be retrieved by using the table "Inspection Attachments" in that table the attachments are stored as Notes. See: https://learn.microsoft.com/en-us/dynamics365/field-service/inspections-reporting#attachments-or-images-within-a-response

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

ID: d2eedb61-573c-1f3c-8599-90d02c60404a
Version Independent ID: 2aa015ab-a4f2-ade7-ced0-c4bd205b0876
Content: Run reports on inspection responses in Field Service in Dynamics 365 Field Service - Dynamics 365 Field Service
Content Source: ce/field-service/inspections-reporting.md
Service: dynamics-365-field-service
GitHub Login: @josephshum-msft
Microsoft Alias: jshum

Thank you for this feedback @MrHosz. I'm going to update the docs. Once my PR gets merged, this issue gets closed automatically. Feel free to reopen or create a new one if you have additional feedback to share.
Thanks,
Michael


choosing controlserver name other than ansible

when i am choosing other names  for controlserver name then at the time of generating key
path shown was
/home/controlserver/.ssh/id_rsa
but when i'm trying to go to the path then
/home/controlserver/.ssh/id_rsa: Not a directory

id_rsa is not a directory, its file go with vim/vi/nano editor

Id_rsa is file, you can't go inside the file ,if you want to see the contents of file then open it with vi or nano or cat commnad

What is the issue here, Could u please specify the issue with logs

Hariprata the error itself states it was not a directory , inorder to view the file use "cat <path/filename>" and I think there is no necessity to open that as it was a public key created by you using "ssh-keygen" if your question is how to copy it to other servers then use "ssh-copy-id @" or simply "ssh-copy-id

Hi hariprata,
/home/controlserver/.ssh/id_rsa: Not a directory
This in not an error, please ensure that if u have error please specify or else close the issue.

Hi hariprata
Please send proper logs if the issue  was not solved or else close the issue

if issue resolved , plz close issue


Style fixes to AV1 docs

c4ea630 corrects Markdown headlines so they display fine (and makes links unambiguously links)
9799cc5 is pretty drastic, but I think the document looks better this way
6f4eb97 is a minor nitpick that I forgot to include earlier, and should probably be squashed
In fact, maybe all of them should be squashed, but I'll leave that to your judgement

Squashed and merged, thanks!


state sync in repo

add state sync script to repo

Amazing script adaptation with Cosmos Registry, etc @faddat
Please if you don't mind make the PR in our dedicated repo:
https://github.com/BitCannaGlobal/cosmos-statesync_client


Proposal: Update the borderbrush for transient UIs in Dark mode

Proposal: Update the borderbrush for transient UI in Dark mode
Summary
Today, transient UIs such as flyouts and popups have a visible border in Light mode, however, in Dark mode, the border is not really visible at all:

Theme
MenuFlyout
NumberBox Popup (*)

Light

Dark

(*) The NumberBox popup UI shown here is the planned to be included in WinUI with PR https://github.com/microsoft/microsoft-ui-xaml/pull/3130.
The border brush for transient UIs like these is set by the SystemControlTransientBorderBrush theme resource. In the 18362 SDK's generic.xml file, the SystemControlTransientBorderBrush, which defines the border for transient UIs, is specified as the following:
<SolidColorBrush x:Key="SystemControlTransientBorderBrush" Color="#000000" Opacity="0.36" /> // Dark mode
<SolidColorBrush x:Key="SystemControlTransientBorderBrush" Color="#000000" Opacity="0.14" /> // Light mode

The idea of this proposal is to update the SystemControlTransientBorderBrush theme resource in Dark mode to create a visible border for the default look for all transient UIs - matching the Light theme.
@mdtauk gave a suggestion how the borderbrush could be revised in Dark mode to become better visible:

I used a ColorPicker tool on @mdtauk's image and got a color value of #4C4C4C for the border color in the image. This might not be the color used by @mdtauk but I went ahead with it anyway and applied it to the NumberBox popup and did some first quick experiments with the opacity:

Control
Opacity 0.8
Opacity 1

MenuFlyout

NumberBox

Opacity 1 should not be an option as we probably want some transparency for our borderbrush. In that regard, opacity 0.8 doesn't look that bad.
An alternative could be to take the existing brush value in Light mode and "reverse" it for Dark mode:
<SolidColorBrush x:Key="SystemControlTransientBorderBrush" Color="#FFFFFF" Opacity="0.14" /> // new value for Dark mode

NumberBox Popup
MenuFlyout

The NumberBox's Popup border is not so prominent here as it is for the MenuFlyout which could be a control template issue to be looked into.
Note
If it's decided to update the SystemControlTransientBorderBrush theme resource in Dark mode, this might not be possible in WinUI 2 currently. I went ahead and created an updated SystemControlTransientBorderBrush theme resource for Dark mode in WinUI's Common_themeresources.xml file (the file we introduce WinUI-wide resources with), yet that update wasn't being picked up by WinUI at all.
In order to create the test images of the NumberBox and MenuFlyout for this proposal, I had to create a new theme resource for now (like SystemControlTransientBorderBrush1) and had that referenced by both these controls. This is definitely not a viable implementation solution though. If we aren't able to properly update SystemControlTransientBorderBrush for now, we might have to wait until WinUI 3 until we can make this change.
Additional Context
@YuliKl @chigy @kikisaints @mdtauk FYI.

I used #ffffff with 14% Opacity. The WinUI figma used #000000 with 14%

I used #ffffff with 14% Opacity

@mdtauk The second set of images show that color in use for the border ("An alternative").


Upgrade to use Lucene 5.4.0

This is for #46.
Lucene 5.4.0 still uses the SegmentInfos from Lucene 5.3.x, and so there's no way to distinguish between 5.3.x and 5.4.x with SegmentInfos alone.
This updates the package namespace where PayloadNearQuery and PayloadTermQuery now live.
This also updates the signature of Luke's FsDirectory.obtainLock to match that of LockFactory's.
Finally, this comes with a few whitespace fixes to match the style of the neighboring code.

hi @lukhnos
thanks for your PR. I am about to merge it to master.

@DmitryKey Thank you!


HTTP API Proxy Bug?

Describe the bug
I am able to curl the http proxy api, but Lens cannot connect.
To Reproduce
Steps to reproduce the behavior:

Start the proxy api in http://localhost:8080
try to curl it, and it responds with a JSON payload
try connecting to it with Lens and set the Proxy API field to http://localhost:8080
It errors out with Connecting ... 2020/06/13 22:04:35 http: proxy error: Not Found

Expected behavior
I expected it to connect
Environment (please complete the following information):

Lens Version: 3.4.0
OS: MacOS OSX Catalina
Installation method (e.g. snap or AppImage in Linux): Releases section in Github

Logs:
When I curl localhost:8080 I get the following:

I then set the HTTP Proxy here:

But when I try to connect with I get the following:

HTTP proxy feature expects a real proxy server. You could try following (without setting HTTP Proxy on cluster settings):

run kubectl proxy manually
create handcrafted kubeconfig that points to kubectl proxy address
add that handcrafted kubeconfig to Lens


Child theme issue

I'm not a roots expert so I might be talking nonsense but please give me an honest opinion and if I'm right i'll post here a patch to solve or propose a solution for at least some of these issues.

I think the editing of roots files should be discouraged and a basic child theme should be served with roots.
Some parts of roots like the css in css/style.css should go in the child theme.

Some hooks can be easily changed via remove_filter / add_filter as for excerpt_more some not.
I guess pluggable functions are lighter than adding hooks and some should be added in critical points of roots code.

Some other theme framework get really slow due to too many hooks, this must be avoided.

Someone pointed out roots must be activated before the child, i didn't check but my guess is this issue has something to do with theme options.
If so I had a related problem.
What if i don't want my customer to be able to mess with theme options? Or what if my child theme has his own admin panel?

One should be able to deactivate roots options panel and set his own defaults from a child theme.
After all wich css framework to use is more of a developer choice rather than something you can change on the fly.
thanks for your help

That's an interesting point and one that I would agree with for the most part. Considering how many watchers this repo has though, to remove the theme options in admin completely is not a responsible move. Perhaps it could be set up in such a way that a child theme can set a flag to disable the admin options panel, set the desired options in code  and trigger the functionality that occurs during activation if they want that to happen.
I've only been using this theme to build a child theme since yesterday but I think it has a ton of potential, keeping it lean is very important though. On the lean note, my next pull request will be adding another option to the admin! It's a necessary change though regarding full width issues and sticks with the current process of how that's done.
Perhaps setting up a registry function to add css frameworks and grids would be better but that would get complicated to do it right given the way themes/child themes work at the moment in WP, at least as far as I know. Honestly, I think the entire theme system in WP needs a serious overhaul.

Another thing regarding child themes you might be interested in, not sure is your aware but if you update to the latest version my patch yesterday added the ability to remove the widgets from within your child theme. Register your removal function with 'widgets_init' on a higher priority and the widgets are done for.

I'd like to have some opinions on this possible solution about options
the options functions will be grouped inside a singleton class, something like
class RootsOptions {
        protected static $instance;
        protected static $options;

        /* getters and setters */

        public function setDefaults(){}
        public function setOptions(){}

        public function getDefaults(){}
        public function getOptions(){}

        public function getOption($key){}

        public static function getInstance() {
            if ( !isset(self::$instance) ) {
                self::$instance = new RootsOptions();
            }
            return self::$instance;
        }
}

the reason for this is changing all
global $roots_options;
$roots_css_framework = $roots_options['css_framework'];
into
$roots_css_framework = RootsOptions::getInstance()->getOption('css_framework');
it will be easy to set defaults from a child theme with
RootsOptions::getInstance()->setDefaults(array());
load custom options
set options from a different panel
use different settings in the same site
i have some doubts on how this last part could be done
i'd like to be able to change or extend this class so that one could add/remove options or alter the options panel
some possible solutions could be:

making all roos OO and using a variable for the options class instance, a class extending rootsOptions could take its place
using a filter or a pluggable function to be able to include a different class with the same name (gross)

Roots was created without child themes in mind so it's no surprise that there isn't great support for it. I like some of your ideas @skipstorm. At a minimum Roots could definitely be architected in a more flexible manner which going OO may help with.

I do like the simplicity of roots and the way it gathers good concepts reducing maintainance cost but looks poor on the php design side.
I'm wandering if there's a better and less explored by other fws approach.

I like your ideas @skipstorm and I think moving in the direction of making Roots a baseline and encouraging it's use as a parent theme rather than altering it directly is extremely important. It's simply not maintainable to expect users to make use of it any other way and worse, currently it encourages bad practices. It has so much potential and that potential should be nurtured. I could go on for days but I digress.
I have my own qualms with static methods but I think your on the right track. Singletons have an awkward smell to me often enough but in this case it's likely the closest fit. I have to dial back my preferences when it comes to WordPress and honestly I can't wait for projects with so much heft to take the "move forward or be left behind" approach. If the hosts are the problem, let their customers deal the blow by moving to better hosts!
Anyhow, regarding setting options we have some decisions to make.
How do we recognize the situations to use different options on the same site? Does default mean the default that ships with Roots? Should the options array be something like ['roots'][{option_group}]['option']?
We could allow, for example,
$roots_css_framework = RootsOptions::getInstance()->getOption('default', 'css_framework');
and
$roots_css_framework = RootsOptions::getInstance()->setOption('my_option_group', 'css_framework');
and
$roots_css_framework = RootsOptions::getInstance()->getOptions('default');
and
$roots_css_framework = RootsOptions::getInstance()->setOptions('my_option_group', array('css_framework' => 'some_framework',
));
With such flexibility we need to filter diligently of course. It might be possible to register 'types' of content or context to realize the options that are used but I have no idea of a solution for that.
I do think it's important that we move toward documenting a "Best Practices" regarding the use of Roots and a coding standard for further development going forward.
Anyhow, it's late and sleep is way passed due.

I would love to see https://github.com/devinsays/options-framework-plugin used for the options settings. I use it all the time in child themes and it's all that more convenient when it's already installed in the parent theme (of course it can always be implemented as a standalone plugin).
When parent themes don't use it I usually just settle with having two options pages -- one for the parent theme's default settings and one for the child theme's custom settings (implemented using the options-framework-plugin).
Of the parent theme's I've used I know https://github.com/simplethemes/skeleton_wp and https://github.com/devinsays/foghorn use the options-framework-plugin. All the heavy lifting has been done and it's very well thought out and super easy to create new and extend options pages with it.

i think roots started well but is moving towards a bad direction
some options might be good for unexperienced users but take flexibility off the whole
i've been drafting an OO modular roots sidekick and stopped when i realized a full integration will need major changes in roots very core
@johnnypeck if you're intrested i could give you more info

@skipstorm can you please elaborate on 'some options might be good for unexperienced users but take flexibility off the whole'

@skipstorm it would be great to see your OO changes to Roots. Maybe you could put up a fork of it?
The biggest thing lacking in Roots is the general architecture of the theme and lack of OO/modularity. Considering what it started as it was just never a priority.

see #230


Investigate - Role Support (RBAC)

Investigate Role Support
As a user, I would like to give other users access to my business.  Currently, the Streamline approach prevents this as users are tied to the business associated with their account.
Acceptance Criteria

Investigate RBAC with Auth0
Think about how this would look in our code base.
Discuss with team.
If we decide this is something we want, make new issue to implement.

My first thought regarding this is that moving to RBAC would require us to rework the way we handle businesses being tied to users, as it is currently dependent on getting the user's name identifier (which is their Auth0 user ID) from their access token.

This is a nice-to-have and definitely should be at the bottom of our priority list, IMO.


openTab patch is breaking Hotkey Helper features

After I installed this plugin to confirm and fix #5 in HH, I noticed that some HH features stopped working properly as well.  The issue is here:
        // Patch openTab to detect when a tab is opened
        const removeMonkeyPatchForSetting = around(this.app.setting, {
            openTab: (next: (tab: SettingTab) => void) => {
                return async function(this: Setting, tab: SettingTab) {
                    if (tab && tab.id === 'community-plugins') {
                        if(self.observedTab!==tab) {
                            await self.observeCommunityPluginsTab(tab);
                            self.patchCommunityPluginSettingTab(tab);
                        }
                    }
                    next.call(this, tab);
                };
            },

This is turning a synchronous method in Obsidian (openTab) into an async one, which is breaking its contract and will not work properly with any plugin relying on openTab or openTabById to have their normal synchronous behavior, even if they aren't doing any monkeypatching that involves it.  (HH doesn't patch it, just calls it by way of openTabById, expecting the tab to be displayed when the function returns.)
I've only looked at this code superficially, but my guess would be that there is no reason to have the async or await here, as none of the code in question appears to rely on observeCommunityPluginsTab() actually being finished in order to work.  (And even if you did need patchCommunityPluginSettingsTab to run after observeCommunityPluginsTab() finishes all its async loading actions, you could just use .then() and not make the patched function async.

On further examination, it looks like patchCommunityPluginSettingsTab is always called after observeCommunityPluginsTab, so it could just be called directly from there instead, which would avoid the need for either await or then in the openTab patch.  (Given the plugin's onload code, it's apparent that you don't need to make any of it run before the tab is opened, either, so the patch definitely doesn't need to be async.  For that matter, if the patching and observing is only supposed to be done once, you could use
const activeTab = this.app.setting.settingTabs.find(t => t.id === "community-plugins");`

in your onload and do away with the need to patch openTab at all.)

Hi PJ, thanks a lot for detailed feedback and the insightful suggestions.
When I made openTab async, I did not think that this would break the behavior of other parts of the code. You are totally right. So, I reverted to a standard synchronous function.
The problem was not much with calling patchCommunityPluginSettingTab which could have been shifted inside of observeCommunityPluginsTab as you suggested, but rather waiting that all this code has finished executing before calling the original openTab function through next.call(this, tab);.
I think there was a simple solution. I made use of then to ensure that next.call(this, tab); is called only after the rendering functions have been patched. It now works and I released a new version of the plugin https://github.com/alberti42/obsidian-plugins-annotations/releases/tag/1.7.5.
I also checked that the new version of your plugin now works seamlessly with my plugin. Great. Thanks to ksdavidc we have fixed a bug in each respective plugin.

Thanks for the quick update, but the problem is that next.call() needs to be called immediately, otherwise any code that opens the community plugins tab and then acts on it will have a problem.  It would be much better if you just called next.call() at the top of your patch, always.  If you need to patch rendering methods ahead of time, you can do that when the plugin starts, just search for the tab at workspace load using the .find() call I showed above -- in which case you could avoid the openTab patch altogether.

Get a room, guys. ;-)
For me this has been a fascinating (perhaps painful for you) excursion into the innards of the purple beast.
A lot of apps end up developing somewhat ambiguous relationships with their "plugineers". They provide critical functions as far as users are concerned, but are hacking away at your darlings. It becomes inherently difficult to manage all the moving parts, personalities, and priorities.
One of the things I especially like about Obsidian is its modularity. The mix and match quality of it makes it much better than having to wake up a herd of elephants just to cross the road. I have my complaints, but for the most part I am amazed at how flexible it can be, despite being a victim of its own success. I mean look at me, 236 plugins just to get one vault to live up to its potential...and somehow, thanks to heroes like you, it works (at least until the next crossroads). I like that it can still be good at doing things it was not designed to do.
Lastly, let me say I think both of your plugins are invaluable for haphazard newbies like me who are trying to manage the complexity. Arguably, a lot more of the internal maintenance tools like these should be incorporated into the mother ship, but I can see there is also an imperative to keep the core lean.

Hi PJ, thanks for the piece of advice and explanation about the then mechanism. I agree that using then does not ensure a synchronous execution of openTab.
I use:
this.app.setting.settingTabs.find(t => t.id === "community-plugins");`

and streamlined the rest of the code. I completely removed the Observer on the community plugin tab. It was a remnant from several code refactorings ago.
I created a new release of the app where there is no patch to openTab at all. The fewer, the better.
However, I still have a question that bugs me since the beginning and is related to this problem. I am really troubled by the fact that when I have multiple Obsidian devices, if I change the settings on one device, the settings are synchronized to the second device, but there is no mechanism (which I know) to detect that settings are changed.
In the present state, my plugin loads the settings on loading the application or when the plugin is installed. If the user keeps Obsidian open on two computers, works on computer B and changes some settings, and then comes back to computer A, there is no way my plugin learns the settings have changed! So, when he/she opens the setting pane on computer A, there would be bewilderment and disappointment that the settings are not there anymore. Of course, it would be sufficient to close and reopen Obsidian, but the user does not know this. So she/he would be frustrated and start retyping the changes manually... this is horrendous.
A way around is to use chokidar library to detect changes to data.json. However, I am afraid this is not going to work on mobile devices. If it works for mobile devices, then this could be a good solution.
However, I am really wondering whether there is an official way to detect changes in the settings happening because of synchronization between multiple devices. This is a huge problem not just affecting my plugin but possibly any other plugins.

I found this function onExternalSettingsChange. I will immediately give it a try.

I have released a new version with the following new features:

Detect changes to data.json made by the synchronisation engine (Obsidian or Google Drive or Dropbox etc) or any external editor. If the Community Preferences window is active, the changes will be shown immediately. Similarly, if changes are made using an external editor to the MarkDown file that stores the personal annotations, these changes will be detected and the preferences pane will be updated immediately to reflect the new changes.

I made many other small changes to clean up the code. Let's hope no new bugs have crept in.

Thanks!


Kimber Dynamic Soiling model

related to #61 and #668.
Kimber dynamic soiling model has 3 parameters:

soiling rate: decrease in Ee per day as percent, typically 0.15%?
threshold: amount of daily rainfall in millimeters required to completely restore panels, ie: reset cumulative soiling to zero, typically what? 13mm? I forgot!
grace period: amount of time after rainfall that panels stay clean, before they begin to accumulate at the soiling rate, typically 2 weeks

@mikofski @cwhanse regarding soiling rate, the authors arrived at a range of .1% - .3% a day, using a sample of 46 projects. Given that, I'm wondering if there is a better way than simply splitting the difference and assuming a static value of .2% in the model. The random and localized nature of this loss factor in particular presents a challenge. It seems we can either assume static values for the 3 parameters based on the averages provided by Kimber, or derive them from historical weather data (which might not always be available).  Thoughts? I'd like to help write this method, but want to agree on a defensible approach.

Hi @tahentx,
My preference would be to leave the Kimber model as is, and let users decide for themselves. IMO pvlib should not develop new research,  but present the current state of the art as understood and published in the literature. 😀
But there are other soiling models, so maybe we should provide a few others as well:

NREL had recommended a constant rate of like between 0.03%/day and 0.25%/day
2017 time series anaysis and seasonal soiling rates

@zdefreitas created an update to the Kimber model that uses the Köppen-Geiger climate classification. This is the model currently used in sunpower pvsim, but afaik it's never been published

Zoe, Sarah Kurtz, and @mdeceglie have a new paper this year on a new method soiling rates

@tahentx, here's an idea,  could you  make these parameters arguments?
def soiling_kimber(days, soiling_rate_daily=0.0015, grace_period=14, rain_threshold=30, locale='rural'):
"""
Kimber model reference.
"""
    return soiling

This way user could override default.

@tahentx I mostly agree with @mikofski. One primary purpose of pvlib is to provide model implementation that is faithful to the literature. In this case, a function that implement's Kimber's model (and only Kimber's model) is the first step.
Where I disagree is the suggestion to assign defaults to parameters.  Where the paper recommends a parameter value, that value should be provided as the default. I didn't see that Kimber's paper provides values for any of the three parameters (in fact I didn't see an equation for the soiling loss percent in terms of soiling rate, cleaning threshold and grace period). If this is the case, I'd leave it to the user to assign appropriate values.

Sorry I must have linked to the wrong paper, or maybe the Kimber model was internal only to SunPower. If there's no reference to the soiling loss equation, then I'm in favor of closing this in lieu of another soiling model.

@cwhanse AFAIK that is the right paper, but perhaps it's not an equation, it's just an algorithm:
import pandas as pd
import datetime

def soiling_kimber_mitchell(rainfall_timeseries, threshold=6, soiling_rate=0.0015,
                            grace_period=14, max_soiling=0.3, manual_wash_dates=None):
    """
    Parameters
    ----------
    rainfall_timeseries : pandas.DataFrame
        a timeseries of rainfall in millimeters
    threshold : float, default 6[mm]
        the amount of rain in millimeters [mm] required to clean the panels
    soiling_rate: float, default 0.15%
        daily soiling rate, enter as fraction, not percent
    grace_period: int, default 14-days
        The time after a rainfall event when it's assumed the ground is damp, and
        so it's assumed there is no soiling. Change to smaller value for dry climate
    max_soiling: float, default 30%
        maximum soiling, soiling will accumulate until this value
    manual_wash_dates: sequence or None, default None
        A list or tuple of dates when the panels were manually cleaned. Note there
        is no grace period after a manual cleaning, so soiling begins to accumulate
        immediately after a manual cleaning, sorry :(

    Returns
    -------
    soiling : timeseries
        the daily soiling
    """

    # manual wash dates
    if manual_wash_dates is None:
        manual_wash_dates = []

    # resample rainfall as days by summing intermediate times
    rainfall = pd.resample(rainfall_timeseries, freq="D").sum()

    # soiling
    soiling = np.zeros_like(rainfall)

    # rainfall events that clean the panels
    rain_events = rainfall > thresh

    # loop over days
    for today in rainfall.index:

        # did rain exceed threshold?
        rain_exceed_thresh = rainfall[today] > threshold

        # if yes, then set soiling to zero
        if rain_exceed_thresh:
            soiling[today] = 0

        # start day of grace period
        start_day = today - grace_period

        # rainfall event during grace period?
        rain_in_grace_period = any( rain_events [ start_day : today ] )

        # if rain exceeded threshold during grace period,
        # assume ground is still damp, so no or v. low soiling
        if rain_in_grace_period:
            soiling[today] = 0

        # is this a manual wash date?
        if today in manual_wash_dates:
            soiling[today] = 0

        # so, it didn't rain enough to clean, it hasn't rained enough recently,
        # and we didn't manually clean panels, so soil them by adding daily
        # soiling rate to soiling from previous day
        total_soil = soiling[today - datetime.timedelta(days=1)] + soiling_rate

        # check if soiling has reached the maximum
        soiling[today] = max_soiling if (total_soil >= max_soiling) else total_soil

    soiling = np.interp(rainfall_timeseries.index, rainfall.index, soiling)
    return pd.DataFrame(rainfall_timeseries.index, soiling)

WARNING: this is hacky bad psuedocode, needs to be rewritten by someone smart :)

@tahentx also check ilr out #739


[Install issue]:

What happened?
Doesn't work with Ubuntu 20.04
Versions
Chroma latest, Ubuntu 20.04, Python 3.10
Relevant log output
RuntimeError: Your system has an unsupported version of sqlite3. Chroma                     requires sqlite3 >= 3.35.0.

pip3.10 install pysqlite3-binary==0.5.2.post3
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement pysqlite3-binary==0.5.2.post3 (from versions: none)
ERROR: No matching distribution found for pysqlite3-binary==0.5.2.post3

still seems to be there...
>>> import chromadb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/sdan/.local/lib/python3.10/site-packages/chromadb/__init__.py", line 79, in <module>
    raise RuntimeError(
RuntimeError: Your system has an unsupported version of sqlite3. Chroma                     requires sqlite3 >= 3.35.0.
Please visit                     https://docs.trychroma.com/troubleshooting#sqlite to learn how                     to upgrade.
>>>
KeyboardInterrupt
>>>
sdan@sdan:~$ sqlite3 --version
3.35.0 2021-03-12 15:10:09 acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b

Python 3.10.14 (main, Apr  6 2024, 18:45:05) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import chromadb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/sdan/.local/lib/python3.10/site-packages/chromadb/__init__.py", line 79, in <module>
    raise RuntimeError(
RuntimeError: Your system has an unsupported version of sqlite3. Chroma                     requires sqlite3 >= 3.35.0.
Please visit                     https://docs.trychroma.com/troubleshooting#sqlite to learn how                     to upgrade.
>>> import pysqlite3
>>> conn = pysqlite3.connect(':memory:')
>>> print('SQLite version:', conn.execute('select sqlite_version()').fetchone()[0])
SQLite version: 3.35.0

still runningg into issues despite being on 3.35

@sdan, did you install the pysqlite3 binary or did you recompile from source?

@sdan, take a look at this comment:
https://github.com/chroma-core/chroma/issues/1985#issuecomment-2055963683

hey @sdan , did that help with this issue? I'm going to close this bug for hygiene but please re-open if we can provide more guidance!


Add authentication through firebase

https://angular-templates.io/tutorials/about/firebase-authentication-with-angular
https://firebase.google.com/docs/auth/

In progress

canceled firebase


AseConnection.InfoMessage is currently never triggered

When I issue the following command to an ASE
LOAD DATABASE AZU WITH LISTONLY=LOAD_SQL,UNTIL_TIME='2018-08-16T17:40:23:310'

it returns a SQL script which I could use to restore a database to a particular point in time. The problem is that the response is not a result set or so, but just informational messages.
I subscribed to AseConnection.InfoMessage, but the private AseConnection.NotifyInfoMessage() method is never triggered... The event InfoMessageInternal has a TODO flag :-).
What would be the best / desired way to implement that functionality? InternalConnection.InternalExecuteAsync() looks like a place where the command.Connection could be passed down to the MessageTokenHandler to fire this event.

TODO flag

😄
Yeah you're right, MessageTokenHandler should accept an AseConnection (optional constructor argument?) and then call NotifyInfoMessage. NotifyInfoMessage will need to be changed from private to internal.
Also, have a look at what the reference driver does -- for instance:

Does it actually emit InfoMessage events?
What does it set for the Errors and the Message properties on AseInfoMessageEventArgs?
Does it emit one info message per event, or multiple? (Since it's an AseErrorCollection, I'm not sure what the answer is).

Just for understanding: What is "the reference driver"? The Sybase.AdoNet4.AseClient NuGet package?

Yep, the SAP/Sybase driver. I call it the "reference" driver because I use its exposed public interfaces (and behaviour inferred from tests) as a reference for writing this driver.

I believe the reference driver does not behave correctly:
The SQL statement I run is this:
LOAD DATABASE AZU WITH LISTONLY=LOAD_SQL,UNTIL_TIME='2018-08-16T17:40:23:310'

Doing so on the isql command line give me this:
1> LOAD DATABASE AZU WITH LISTONLY=LOAD_SQL,UNTIL_TIME='2018-08-16T17:40:23:310'
2> go
LOAD DATABASE AZU FROM '/tmp/ase-backup-20180816-082639-AZU-full-1-1.cdmp.pipe'
go
LOAD TRAN AZU FROM '/tmp/ase-backup-20180816-082727-AZU-tran-1-1.cdmp.pipe'
go
LOAD TRAN AZU FROM '/tmp/ase-backup-20180816-082734-AZU-tran-1-1.cdmp.pipe'
go
LOAD TRAN AZU FROM '/tmp/ase-backup-20180816-210028-AZU-tran-1-1.cdmp.pipe'
   WITH UNTIL_TIME = 'Aug 16 2018  5:40:23:310PM'
go

Running the same via the reference driver
namespace FullDotNetApp
{
    using System;
    using System.Collections.Generic;
    using System.Threading;
    using System.Threading.Tasks;
    using Sybase.Data.AseClient; // reference driver

    class Program
    {
        static async Task Main(string[] args)
        {
            var server_address = "ase1";
            var server_port = 5000;
            var database = "AZU";
            var user = "sapsa";
            var password = "Test123.-";

            var cts = new CancellationTokenSource();
            using (var connection = new AseConnection(connectionString: $"Data Source={server_address};Server Port={server_port};Database={database};UserID={user};Password={password}"))
            {
                await connection.OpenAsync(cts.Token);
                var result = new List<string>();
                void captureResult(object sender, AseInfoMessageEventArgs aseInfoMessageEventArgs)
                {
                    result.Add(aseInfoMessageEventArgs.Message);
                }

                connection.InfoMessage += captureResult;
                using (var command = connection.CreateCommand())
                {
                    command.CommandText = "LOAD DATABASE AZU WITH LISTONLY=LOAD_SQL,UNTIL_TIME='2018-08-16T17:40:23:310'";
                    await command.ExecuteNonQueryAsync(cts.Token);
                }
                connection.InfoMessage -= captureResult;

                foreach (var line in result)
                {
                    await Console.Out.WriteLineAsync(line);
                }
            }
        }
    }
}

only gives this:
LOAD DATABASE AZU FROM '/tmp/ase-backup-20180816-082639-AZU-full-1-1.cdmp.pipe'\n

Yeah, it looks like it could be misbehaving. Do any of the other connection's events emit the other messages?

Or, does the AseInfoMessageEventArgs.Errors collection have the rest of the info messages, perhaps?

I need to ask an additional question re: the term "reference driver":  Looking at the package info on Nuget, the package comes from https://www.nuget.org/profiles/mholec which seems equivalent to @holec on [github](https://github.com/mholec]. The Sybase.AdoNet4.AseClient package info page lists SAP as author, but to me it seems like an SAP-external project.

Yes, as far as I can tell it's just a repackaging of the driver for easy access on nuget.

Ah, OK, so you say the underlying binary is actually from SAP, it's just that the NuGet package came via community... Got it.
I funneled back feedback to SAP that the driver behaves in a way that it only returns the first line...

Yep. FYI the binary's file version is <IP_ADDRESS>, which is admittedly a little old. So there's a chance your issue's already fixed in a newer version.
It might be a good idea to ask mholec to update the nuget package to a newer version!

Hi Guys, just send me link to current version of the driver and I'll update NuGet package immediately.

Hi @mholec I'm struggling to find a direct link.
Apparently it comes packaged with SDK for Adaptive Server Enterprise, as well as the database server itself...

Our reference driver places all messages inside the AseInfoMessageEventArgs.Errors property... adapted from my production logging code:
void captureResult(object sender, AseInfoMessageEventArgs aseInfoMessageEventArgs) {
    foreach (AseError error in aseInfoMessageEventArgs.Errors) {
        result.Add("\nMessage: " + error.Message +
                   "\nErr Number: " + error.MessageNumber +
                   "\nSQLState: " + error.SqlState +
                   "\nSeverity: " + error.Severity +
                   "\nIsError: " + error.IsError +
                   "\nIsFromServer: " + error.IsFromServer +
                   "\nIsFromClient: " + error.IsFromClient +
                   "\nIsInformation: " + error.IsInformation +
                   "\nIsWarning: " + error.IsWarning +
                   "\nLineNum: " + error.LineNum +
                   "\nProcName: " + error.ProcName +
                   "\nServerName: " + error.ServerName +
                   "\nStatus: " + error.Status +
                   "\nTranState: " + error.TranState +
                   "\n----");
    }
}

outputs multiple lines:
Message: LOAD DATABASE [redacted]

Err Number: 3640
SQLState: ZZZZZ
Severity: 10
IsError: False
IsFromServer: True
IsFromClient: False
IsInformation: False
IsWarning: True
LineNum: 1
ProcName:
ServerName:  [redacted]
Status: 0
TranState: 1
----

(I am using the <IP_ADDRESS> driver; to get the latest you are supposed to have your dba log in to their portal and download the sdk)

the type AseInfoMessageEventArgs has an interesting interpretation of what it should be doing... it has 2 properties:

AseInfoMessageEventArgs.Errors  is never null, it may contain 0 results though. It contains all? the TDS_EED messages from the response stream in the sequence they arrive.
AseInfoMessageEventArgs.Message always returns the value of Errors[0].Message and thus may potentially throw an index out of bounds error (in practice I don't think this ever happens because I hope the driver only ever raises the event when Errors has at least one element; regardless you should not treat .Message as a safe property to rely on)

My suggestion for the classes would be something like
public class AseInfoMessageEventArgs : EventArgs
{
    [NotNull]
    public AseErrorCollection Errors { get; }
    public string Message => Errors.FirstOrDefault()?.Message;

    internal AseInfoMessageEventArgs(AseErrorCollection errors) => Errors = errors;
}

public class AseErrorCollection : ReadOnlyCollection<AseError>
{
    internal AseErrorCollection([NotNull][ItemNotNull] IList<AseError> list) : base(list) { }
}

Now that the reference driver nuget package is marked as unlisted, I will probably update the test suite to require a BYO driver instead (and update wiki to explain how to get it).

Hi @chgeuer, it turns out that my company (DA) also has some need for this driver to report server messages.
Are you still active on this issue?
Thanks

Hey Senseibaka, I have not yet started on that. So if you can build it, please go ahead and don't wait for me.

Very nice, works on my machine (TM). Thanks a lot!


cmd/compile: can not use statictmp_0 as variable name

What version of Go are you using (go version)?
go version go1.10.1 linux/amd64 and go version devel +5f5168e Thu Apr 26 18:59:07 2018 +0000 linux/amd64
What did you do?
package main

var statictmp_0 string
var a []int

func init() {
	a = []int{ 7 }
}

func main() {
	println(a[0])
}

compiling this produces the error:
./teststatic.go:7:11: statictmp_0 redeclared in this block
	previous declaration at ./teststatic.go:3:5

Also fails with Go 1.7 and 1.9.

I know compilers are supposed to implement the spec, but I have admit my first reaction to this is: “Then don’t do that.” Though I think the official way to spell that is: Low priority. :)

Wow interesting. A shorter repro -
package main

var statictmp_0 string

// Also fails with these
// type statictmp_0 struct{}
// type statictmp_0 interface{}

func main() {
	a := []int{7}
	println(a)
}

Also fails with structs and interfaces. Are there other reserved keywords like these ?
Maybe good to document them in case this doesn't make it to 1.11.

@josharian: agreed. I only found this while looking at the symbols list in the linker.


In Batch class added clearing requests array after executing

Fixs #1552

I'm on the fence here. This would change behavior, which in a legacy library such as this is dangerous, but I do see how one would expect that it would clear the queue after sending.
However, there are existing (and simple) workarounds, chiefly simply calling $service->createBatch() again to create a new, clean batch.
Perhaps improved documentation is a better solution here.
@bshaffer @dwsupplee any thoughts?


make WorldUIContext public

Would it be possible to make WorldUIContext as well as the world_ui functions public?
I'm trying to embed the WorldInspector in a preexisting egui window

Done, it es exposed now in the 0.6.1 release.


Sync stops when extension is not available anymore

to reproduce:
clean install VSCode then import from this public gist: https://gist.github.com/spencercarli/7ef0262c5f294db8a530a991c3e46859#file-cloudsettings
expected behaviour: if extension is outdated / removed -> SKIP and proceed to install the next extension

meanwhile it is corrected you can by pass it by the option : ignoreExtensions in the settings file.


HTML Code uses domain root should be relative path

Some deployments might not be at the root of the domain. Ideally the code should be using relative paths instead this way it works under sub directories, etc.

Yes, already someone mentioned this in an issue.

Not yet fixed the issue. Wait for the update. Or you can do it yourself on your deployment.
Edit css and index.html and remove first ''
For fonts and other assets.

Hi @openspeedtest
I really appreciate your work here!
Is there any PR underway for this? At least for docker it's quite annoying to change index.hml etc. ;)

@klepptor  Very soon. How will this affect docker? When binding domain name? Can you post your issue in more detail?
all static assets should be like 'css/app.css' instead of '/css/app.css' right. I thought this will only affect custom deployments.

@openspeedtest
I need to deploy OpenSpeedTest in a subdir, e.g. http://myserver/speedtest
Therefore I'd like to use the docker version, behind a reverse proxy (Citrix ADC).
With absolute paths in index.html etc. most of the assets aren't loaded, but changing to relative paths in index.html etc is quite uncomfortable with docker, because you have to use volumes to get the changed files into the container. And you habve to do this again with every new version of OpenSpeedTest.
Or do I miss something here?

@klepptor No, You are correct. I never think about Sub Directory. I will fix this within two days. Thanks for posting the context.

@klepptor I updated Docker Image. Please check it and let me know if there is any problem.

@openspeedtest
I just tested the new docker image:
in index.html you missed one absolute path:
<object style="visibility:hidden" id="OpenSpeedTest-UI" data="/assets/images/app.svg" type="image/svg+xml"></object>
Therefore, the JS in assets/js/app-2.5.4.min.js fails and the page isn't loaded any further.
Please check the JS for any absolute paths, as the up-/downloading paths aren't correct either.
app-2.5.4.min.js line 48:   /upload /downloading
app-2.5.4.js line 671:   /upload /downloading
darkmode.js line 4: href="/assets/css/darkmode.css"

@klepptor hmm, Try now. Delete local image before run.

@openspeedtest Yeah, now it's working fine in my environment!
OpenSpeedTest docker in a subdir served by a reverse proxy/load balancer
Thx a lot for your amazing work!

Done! Test and look at browser console. Make sure everything working fine. Thanks
Warning! If you run it behind https://github.com/openspeedtest/Speed-Test/issues/4#issuecomment-1229157193 you should increase post body content length to 35 Megabytes or more.


Generate content id when absent

This is a proposal for working around the missing content_id values for hrmc_manual and hmrc_manual_section formats in the content store.
Full story here https://trello.com/c/pULByuHs/393-fix-invalid-content-store-data
Original PR https://github.com/alphagov/hmrc-manuals-api/pull/121

The uuid is generated consistently from the base_path of the manual/section, it's a valid v5 uuid as per RFC4122. It's also discernible from a typical SecureRandom.uuid as these are v4.
Gone items get a content_id generated by the same method.

I think this is a good plan.  I've not had time to review the implementation.

This looks good to me. Would it be worth it to have a test that checks that a specific base_path gets turned into a specific UUID? That will prevent us from changing the algorithm and breaking the api.

@tijmenb https://github.com/alphagov/hmrc-manuals-api/commit/32606933a98025e2098cd94456bea429785c948c

@steventux beautiful.
I'll let @jennyd merge this as it's her team that owns this app.

:+1:

:tada: :fireworks:


stats: list all running containers unless specified otherwise

Unless specified otherwise by --all, --latest or via arguments, list all
running containers.  This matches the behaviour of Docker and is also
illustrated in the man pages where containers and options are marked to
be optional.
Fixes: #4274
Signed-off-by: Valentin Rothberg<EMAIL_ADDRESS>

LGTM other than the lint hiccup

The linter should be happy now :)

/lgtm
/hold
hold cancel when tests pass.

@vrothberg mind peeking at these test failures and seeing if they are legit and would require a fix?

@vrothberg mind peeking at these test failures and seeing if they are legit and would require a fix?

Eeek, took me a while to wrap my head around the problem (it passes locally). The system test to parse the help messages gets into an infinite loop when hitting stats now. Will update accordignly.

Green!
/hold cancel

@rhatdan @TomSweeneyRedHat @baude @giuseppe needs a lgtm for merging

LGTM

/lgtm


invalid images generated by server

When checking pngs saved from the served website:
❯ pngcheck old-man-yells-at-fivetran.png
old-man-yells-at-fivetran.png  EOF while reading CRC value
ERROR: old-man-yells-at-fivetran.png

pngs generated directly from the command line are fine.

Hi @tekumara
The code that is executed in the CLI and the website should be the same.
Do you have a sample input that is misbehaving consistently and you are willing to share?

Thanks @oncilla try this jpeg via the server:

Interesting, on my android i get this:

What platform are you using?
The website is running webassembly and all the processing happens in your browser.

It displays fine but does not have a valid CRC, ie: if i run pngcheck on the image you shared i get EOF while reading CRC value

Hi @tekumara
This should be fixed by #22. Could you double check if it is working now?

Thanks @oncilla it now works!


unknown option: guicolors

When I run vim(7.4), it says:
Error detected while processing /home/user/.vimrc:
line   17:
E518: Unknown option: guicolors

my .vimrc:
set nocompatible
set nu

filetype off

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'jacoborus/tender'
call vundle#end()
set guicolors
colorscheme tender
filetype plugin indent on

Vim or neovim? version?

Oh, I missed it. Vim version is 7.4

set guicolors is for vim v7.4.1770 or newer in order to enjoy the 24bit version of the colorscheme. Vim 8 doesn't need that config line

So? Don't I need that line?

Nope, I think 24 bit color schemes just work on vim8+ and neovim 0.1.3+. I removed that line from the readme because it appears to do nothing.

But I almost have plaintext after opening PHP file with vim. :disappointed: Did I miss something in .vimrc?

let's see, give me more info:

screenshot
vim, gvim or neovim?:
Version used:
Environment name and version (terminal, tmux, ...):
Operating System and version:
.vimrc file

Here's the screenshot:

Vim's version:

I'm using zsh for my terminal.
I'm using Ubuntu 15.04
And I posted .vimrc in the description of the issue above.

does :colors tender return any error?

No, but it does nothing also.

ok, that''s weird. Is that Gnome terminal? Did you try vim with other colorschemes succesfully?

Yes, it's GNOME terminal. No I haven't tried with other colorschemes at all so far. Should I try?

yes

I just installed vim 8 in Ubuntu and made the theme work with this config:
set nocompatible
filetype off
set termguicolors
syntax enable
colorscheme tender

I suppose with your vim version this should work:
set nocompatible
filetype off
set t_Co=256
syntax enable
colorscheme tender

Got it, right? :+1:

Yes!! But when you update to vim8 it will look even better