text:
New Term - MaterialCitation

New term

Submitter: Plazi (Donat Agosti, @myrmoteras)

Justification (why is this term necessary?): Specimens are the basis for taxonomic research and are cited in taxonomic treatments and other works. Increasingly these material citations are extracted from publications and submitted as part of data sets to GBIF and reused in studies. Currently GBIF includes 33,199 datasets derived from taxonomic publications and 408,021 material citations which are labeled as occurrences. An estimate of 45,000 species are only represented in GBIF through material citations from publications, mainly covering new species that are extracted from the literature just after the publishing time and thus cut short the time to enter taxonomic names and re-submit datasets to GBIF. This leads to confusion and discussions (https://discourse.gbif.org/t/basisofrecord-for-plazi-datasets/2238/16 ) which need to be resolved, not least because material citations are not specimens per se, but the citation of a specimen. Furthermore, material citations can be part of a specimen, a specimen, or groups of specimens. They can be very verbose or very cursory.

Proponents (at least two independent parties who need this term).
Demand requirement. There are four main groups: the publishers of taxonomic and other scholarly publications; the data converters; the re-users of the data, e.g. data aggregators and scientists analysing data.
Three publishers already make use of material citations: Pensoft GmbH, the Science Press of the Muséum d’histoire naturelle Paris, and the CETAF publishing group.
As a data converter, Plazi so far produces 400,000 material citations from 33,000 publications and submits them to GBIF. This includes data from xx scientific journals. GBIF is importing material citations as occurrence data and would like to separate these data from other occurrence data.
Scientists used data originating from taxonomic publications in over 320 scientific articles.
Furthermore there is a demand raised by GBIF users to separate material citations from specimen occurrence data (see above).
There is clearly a demand to introduce this new class.

Efficacy requirement: Within this community there is a consensus that this new class will accomplish the desired outcome. The equivalent term material-citation (https://terms.tdwg.org/wiki/tp:material-citation) in the TaxPub Journal Article Tag Suit is already used in the production of over 30 scholarly journals (eg. http://plazi.org/resources/schemas-and-ontologies/taxpub/ ) .
Stability requirement: Since this is a new class, this will not interfere with existing implementations but rather contribute to resolve a well known issue.
Proposed attributes of the new term:

Term name (in lowerCamelCase): MaterialCitation (modified by @tucotuco)
Class (e.g. Location, Taxon): None (modified by @tucotuco - the proposal is for a Class, not a property)
Definition of the term: A reference to or citation of one, a part of, or multiple specimens in scholarly publications. (modified by @tucotuco)
Usage comments (recommendations regarding content, etc.): This class constitutes a new value for the controlled vocabulary in the recommendations for basisOfRecord. When importing Darwin Core Archives of literature-based datasets to GBIF, the basisOfRecord should be changed from “Occurrence”, "PreservedSpecimen" or "Literature" to “MaterialCitation”.
Examples:

the citation of a physical specimen from a scientific collection in  a taxonomic treatment in a scientific publication.
the citation of a group of physical specimens, such as paratypes in a taxonomic treatment  in a scientific publication.
the occurrence mentioned in a field note book

Refines (identifier of the broader term this term refines, if applicable): None
Replaces (identifier of the existing term that would be deprecated and replaced by this term, if applicable): None
ABCD 2.06 (XPATH of the equivalent term in ABCD, if applicable): Not in ABCD.

BioCASe/ABCD provides for a slightly different set of values:
<xs:enumeration value="PreservedSpecimen"/>
<xs:enumeration value="LivingSpecimen"/>
<xs:enumeration value="FossileSpecimen"/>
<xs:enumeration value="OtherSpecimen"/>
<xs:enumeration value="HumanObservation"/>
<xs:enumeration value="MachineObservation"/>
<xs:enumeration value="DrawingOrPhotograph"/>
<xs:enumeration value="MultimediaObject"/>
<xs:enumeration value="AbsenceObservation"/>

I have updated the term name to comply with Darwin Core convention of using upper camel case for Class names. I have also noted where I have made minor modifications. One thing that needs to be change is the "Examples" content. As a class, what is needed here are strings describing entities that would be considered members of the class rather than a reference to a specific instance of one. Please revise.
Note that if this proposal is ratified, it would be best to add MaterialCitation to the Examples for basisOrRecord. A separate, provisional issue could be made for that.

I have updated the MaterialCitation example.

I have updated the MaterialCitation examples with respective strings.

@myrmoteras Those are examples of content for a property rather than examples of what kinds of things constitute a MaterialCitation. Have a look at the examples given for other Darwin Core classes to get an idea of what is sought here. We're looking for something more like, An Occurrence documented in a taxonomic treatment in a journal article, An Occurrence mentioned in a field notebook etc.

That should work, thank you @myrmoteras.

I'm not 100% sure I understand the scope of this proposed new class, but if it is for what I think it is for, then I strongly support it. We have discussed the idea of an "Evidence" class to represent a superclass of things that represent evidence supporting either an instance of Occurrence or an instance of Identification.  Among the "things" that can serve in this "Evidence" capacity that we track include:

Media (Images, videos, sound recordings)
Specimens (and other flavors of MaterialSample)
HumanObservation reports
MachineObservation data
Published records

If I understand this proposal correctly, it would effectively represent the last item on the list above, and the one that is not already accommodated (at least partially) by existing DwC classes.  If my interpretation is correct, then I would suggest adjusting the definition to something like:
"Documented instances of organisms that serve as evidence of Occurrence or Identification that appear within published or unpublished references."
I would also add under the Examples, something along the lines of:

A report of an unvouchered observation of an organism in a reference

In our implementation, we create "virtual" instances of organisms for any report of a taxon at a locality.  For example, if a publication provides a list of species for a particular region, without any specific evidence (specimen, image, specific observation), then we create an Occurrence instance, linked to a "virtual" organism, and anchor that Occurrence instance (via an Evidence instance) to the publication.  I'm assuming something like this would be considered within scope of MaterialCitation?

@deepreef You have the sense of it correct. Your recommendations for amending the term look good to me. If @myrmoteras agrees, we will make those changes before sending this out in a pending massive public review.

I don't understand though "taxonomic identification" in this context. May be @deepreef can explain? Otherwise I agree with @deepreef

I think, and I can be wrong, that any identified material citation is a statement of a taxonomic identification - someone is saying that the studied material belongs to a specific taxon concept that is currently known by a specific label (taxon name). Also, not all of these material citations will have geographical data - this is odd, somehow rare, but true.
Thus, by defining it as '...as evidence of occurrence and/or taxonomic identification' I think @deepreef nailed it.

I think I understand the confusion introduced by the reference to Identification. It suggests that the term could be used for multiple contexts, and that wouldn't be good for semantics. As I understand it, @myrmoteras meant this as written material as evidence of an Occurrence. The Occurrence carries an Identification with it by definition - it posits the presence or absence of an Organism identified as a member of a Taxon at a place and time. The confusion would be if this allowed for written material about the (re)identification of an Organism alone - in other words, it is not positing the evidence of an Occurrence but rather an opinion about an Identification alone. I think it should be made clear that it is not the latter.

Arghh!!!  I had written a detailed comment, then managed to kill the browser before posting... so that's 15 minutes I'll never get back.  OK, here's the short version:
I tossed in the "and/or taxonomic identification" bit specifically as a way of paving the path towards a future "Evidence" class/concept.  This is something that @baskaufs and I and others have been discussing for several years (including some epically long emails in recent days), and is best represented in this diagram, as "Token" (="Evidence").  The idea behind Token/Evidence is that it is (sort of) a superclass for things like LivingSpecimen, PreservedSpecimen, FossilSpecimen, HumanObservation, MachineObservation, MaterialSample, various multimedia files (images, videos, sound recordings, telemetry tracking devices, etc.), and published reports of organisms.  That last bit is why I'm enthusiastic about creating MaterialCitation, to go along with the other semi-classes in DwC that serve the function of Token/Evidence.
If you look at the Darwin-SW diagram linked above, you'll see that Token (=Evidence) can serve two roles:

Evidence of Occurrence
Evidence of taxonomic Identification

The description of the new term MaterialCitation focuses on the "evidence of occurrence" part, but it can also function as "evidence of Identification".  For example, an in-situ video clip can simultaneously represent evidence that "this organism was here", and also "this organism should be identified as taxon X".  Similarly, a published treatment can represent evidence that "organisms occurred at this place", and also "organisms belong to this taxon" (e.g., via morphological or genetic characters included within the treatment).
Maybe it was an over-reach at this stage to include the "and/or taxonomic identification" language in the definition/description of MaterialCitation; in which case it's fine to remove those words from the definition text. If so, we can address it later, whenever the "Evidence" class discussion takes place.
I hope that makes sense... not as clear as my original version, but no time to re-write it carefully again.

That makes sense to me, but I reiterate my concern over dual semantics. It
would be better to have a class for each one. And if we want to anticipate
an Evidence class, why not call this term WrittenEvidenceOfOccurrence, and
the other one WrittenEvidenceOfIdentification?
On Tue, Apr 20, 2021 at 7:49 PM Richard L. Pyle @.***>
wrote:

Arghh!!! I had written a detailed comment, then managed to kill the
browser before posting... so that's 15 minutes I'll never get back. OK,
here's the short version:
I tossed in the "and/or taxonomic identification" bit specifically as a
way of paving the path towards a future "Evidence" class/concept. This is
something that @baskaufs https://github.com/baskaufs and I and others
have been discussing for several years (including some epically long emails
in recent days), and is best represented in this diagram
https://raw.githubusercontent.com/darwin-sw/dsw/master/img/dsw-1-0-graph-model.png,
as "Token" (="Evidence"). The idea behind Token/Evidence is that it is
(sort of) a superclass for things like LivingSpecimen, PreservedSpecimen,
FossilSpecimen, HumanObservation, MachineObservation, MaterialSample,
various multimedia files (images, videos, sound recordings, telemetry
tracking devices, etc.), and published reports of organisms. That last
bit is why I'm enthusiastic about creating MaterialCitation, to go along
with the other semi-classes in DwC that serve the function of
Token/Evidence.
If you look at the Darwin-SW diagram
https://raw.githubusercontent.com/darwin-sw/dsw/master/img/dsw-1-0-graph-model.png
linked above, you'll see that Token (=Evidence) can serve two roles:

Evidence of Occurrence
Evidence of taxonomic Identification

The description of the new term MaterialCitation focuses on the "evidence
of occurrence" part, but it can also function as "evidence of
Identification". For example, an in-situ video clip can simultaneously
represent evidence that "this organism was here", and also "this organism
should be identified as taxon X". Similarly, a published treatment can
represent evidence that "organisms occurred at this place", and also
"organisms belong to this taxon" (e.g., via morphological or genetic
characters included within the treatment).
Maybe it was an over-reach at this stage to include the "and/or taxonomic
identification" language in the definition/description of MaterialCitation;
in which case it's fine to remove those words from the definition text. If
so, we can address it later, whenever the "Evidence" class discussion takes
place.
I hope that makes sense... not as clear as my original version, but no
time to re-write it carefully again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/dwc/issues/329#issuecomment-823647313, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADQ7233BDEQHJTY47J5BWLTJYAIHANCNFSM42YYRVHA
.

I see where you're coming from, but if your concerned with dual semantics, then I would simply drop the "and/or taxonomic identification" bit from the definition.  I think it's better to keep MaterialCitation consistent in general nature with the other evidence-like classes of DwC. I would avoid getting too deep into the weeds with concepts like WrittenEvidenceOfOccurrence and WrittenEvidenceOfIdentification at this stage.   Better, I think, to stick with MaterialCitation in keeping what @myrmoteras was originally proposing, then when we get serious about Evidence, perhaps then consider the split EvidenceOfOccurrence and EvidenceOfIdentification separately.  I already discussed this in more detail in the recent email to you and @baskaufs; for now, I think we're on the right track in establishing MaterialCitation in parallel with the other "tokens" that serve in an evidentiary capacity.

I support the addition of this Class  - as necessary to support current and emerging research.

I support the addition of this Class. MaterialCitation will allow freeing up specimen occurrence data from past publications. These data will often involve specimens sitting in collections but that have not been digitized yet.

This might be a tangent to this issue, and if not sufficiently relevant, please ignore.  However, I've been meaning to raise an issue with respect to generating duplicate/redundant Occurrence instances based on MaterialSamples, and cited MaterialSamples in the form of MaterialCitations.
I was reviewing the GBIF occurrence records for one of my favorite species, and it turns out that there are 21 of them.  However, there are actually only 7 Occurrence records represented.  Six of the 21 records in GBIF come from the institutions that hold the respective specimens, 7 of them have been separately published by OBIS (harvested from the publication), and 8 have been separately published by PLAZI (also harvested from the publication). Coincidentally (or not?) the one PLAZI published twice is the one that was not published by the original institution that actually holds the specimen (Western Australian Museum).
I bring this up here, in this context, to encourage mechanisms whereby the generation of new MaterialCitation instances do not artificially manufacture duplicate/redundant Occurrence instances.  At the moment, two-thirds of the records for Chromis abyssus in GBIF are drawn from MaterialCitation evidence, and as a consequence we have 3 times as many Occurrence records represented in GBIF as there are actual Occurrence instances.  I don't know how pervasive this sort of duplication is in GBIF, but I worry that it will continue to expand if all specimen records cited in publications serve as the basis for generating new Occurrence instances where those Occurrence records are already represented by PreservedSpecimen records.
Of course, I have no idea how people who harvest specimen data from publications (e.g., PLAZI) will be able to reliably discover existing matching Occurrence records in GBIF (I'm sure Guido can figure something out!), so it may be the lesser of evil in this phase of biodiversity informatics history to generate redundant records rather than ignore published records.  But I think this is an issue that the minters of MaterialCitation instances should at least be cognizant of.

@deepreef I entirely agree with you that duplicate/redundant Occurrence records can be an issue when MaterialCitation data are gathered from publications. Matching records from MaterialCitation to a record already in GBIF (during the data capture such as through Plazi) seems quite complex but could hopefully be accomplished especially if we use/cite specimen identifiers on the physical specimen that are unique way beyond our own institutions ('globally' unique - although not in the strict sense; I would argue that a specimen identifier from my institution such as USNMENT01234567 is 'globally' unique). In addition, GBIF is working on a clustering algorithm to group similar records and the hope would be that your example of 21 Occurrence records and only 7 PreservedSpecimen records would be matched to each other to reflect the correct number of physical specimens known to scientists.
I live in the insect world and there are Millions and Millions of specimens in museum collections that have not yet and will not in the near future be digitized. Providing access to specimen occurrence data from peer-reviewed and published articles can bring to light an enormous number of insect records that can be used for all sorts of analyses by being made available in GBIF. This argument doesn't solve the duplicate/redundant Occurrence records problem, but it supports the notion that insect collection digitization is lacking behind and in most cases a MaterialCitation record from Plazi from a recently published article might be the first and only Occurrence of that species in GBIF.
Looping in @myrmoteras and @mguidoti .

Thanks, @tdikow !
I'm actually not worried about PLAZI per se (they know what they're doing) -- I'm much more worried about other initiatives that might start harvesting MaterialCitation instances from literature, but without the experience PLAZI has.  We can try to link up records through the trusty "DwC triplet" (institutionCode+collectionCode+catalogNumber), but I suspect that will only be reliable a fraction of the time.
I also have faith that GBIF clustering efforts will deal with a lot of this sort of thing.  And I fully agree with you that the benefits of harvesting otherwise "dark" specimen records from MaterialCitation instances will (vastly?) outweigh the cost of a few duplicate records here and there (i.e., the "lesser of two evils").  I mostly wanted to shine a spotlight on this issue for would-be harvesters of literature-based specimen records.
As for me, I'm actually much more excited about minting MaterialCitation records for literature reports that are not backed up with vouchers.  Indeed, in my neck of the evolutionary tree, those will likely far outnumber the otherwise "dark" PreservedSpecimen instances hiding in literature that are not already represented from source Museums.  We in the coral-reef fish world have lots of unvouchered reports of Occurrences in publications that will help us properly document geographic distributions with far greater granularity than the vouchers alone could provide.

There is another aspect of MaterialCitation: The link to the context where the specimen has been used. This can be an article, or in the Plazi case a taxonomic treatment. This connection MaterialCitation-treatment-article allows to make statments such as:

This specimen/occurrence has been identified (published) as species Y by author X in this treatment in this article.
This specimen has been used by author X as source of gene sequences Y, Z.
This specimen has been identified as species Y and has distribution Z.
This specimen identified by author A as species Y has been re-identified as species Z by author B.

MaterialCitation function like a transaction record for an authoritative identification of a specimen.
As stated above, MaterialCitation are about a specimen, occurrence, not an occurrence per se.

As stated above, MaterialCitation are about a specimen, occurrence, not an occurrence per se.

EXACTLY!  In other words, "Evidence of Occurrence" (and/or "Evidence of Identification").  In other words "Token" sensu Darwin-SW.
My only point is that the minters of new MaterialCitation instances should be cautious about automatically minting new Occurrence instances (i.e., minting new occurrenceID values, when such IDs may already exist).

For fossilSpecimen occurrences in GBIF at least 3,575,489 records out of 11,611,790 would most likely fall within the proposed materialCitation class. This update would have a significant impact on the clarity of the fossil specimen occurrence records vs. literature occurrence records (e.g., from the Paleobiology Database dataset) and is very encouraged from the collections data provider point of view for many of the reasons already noted in this thread.

Erica Krimmel, Holly Little, and Talia Karim (on behalf of the Paleo Data Working Group)

I routinely reverse-database old published catalogs of collections, in order to discover missing types and other specimens. That reverse digitization is also valuable for institutions which don't have complete collection databases. I am happy to use MaterialCitation for reverse-digitization outputs, as there was no specific term for this.
I am also imagining a use case in which a database manager could add MaterialCitation(s) to the "complete" institutional database, meaning that a specimen currently known only from the literature is added to a database that is otherwise considered complete. I have done this with the MCZBase staff, for example. Now those literature records could be displayed as MaterialCitation.
Please, keep the definition comprehensive. That is, material citations to come not just from the scholarly literature, but also from unpublished museum catalogs, field notes, etc. The definition "A reference to biological material (e.g., a specimen, an observation) including those used as the basis of a taxonomic description." (https://terms.tdwg.org/wiki/tp:material-citation) looks good to me.

@Archilegt This term is now in production. You can see the final definition, usage comments and examples (which includes field notebooks) at https://dwc.tdwg.org/terms/#materialcitation.

Hi @tucotuco
Thank you for the link. Please, note that the narrower definition ("...in scholarly publications") is contradicted by the last example ("...in a field note book"). That will cause confusion and we will then have people asking "Why field note book, if it is not a scholarly publication?". I think that we do want the field notes and collection catalogs included in the MaterialCitation class. That leaves us with no other option that to change the definition. Or is there another solution to the definition vs. example contradiction?

For consistency, I think the definition has to change. I don't think there
was any opinion counter to including permitting more than scholarly
publications, even if that was the primary motivation for the creation of
the term. However, given that the definition is normative and the usage
comments and examples are not, this has to be a formal change with
associated review.
On Wed, Aug 4, 2021 at 7:48 PM Archilegt @.***> wrote:

Hi @tucotuco https://github.com/tucotuco
Thank you for the link. Please, note that the narrower definition ("...in
scholarly publications") is contradicted by the last example ("...in a
field note book"). That will cause confusion and we will then have people
asking "Why field note book, if it is not a scholarly publication?". I
think that we do want the field notes and collection catalogs included in
the MaterialCitation class. That leaves us with no other option that to
change the definition. Or is there another solution to the definition vs.
example contradiction?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/dwc/issues/329#issuecomment-893024169, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADQ72ZA5XT4PP7QWAPQYULT3G7U3ANCNFSM42YYRVHA
.
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
.

I agree -- it was an oversight to restrict the definition to "scholarly publications" (a term with an entirely arbitrary and ambiguous meaning).  The term I use in such circumstances is "published or unpublished documents", or "published or unpublished references".

Since this particular term addition is already a done deal. We'll need a new Term - change request. From here:
How can I propose a change to the Darwin Core standard?
Changes can be proposed at any time. There are three requirements that must be satisfied in order to justify that a change be considered, the demand requirement, the efficacy requirement, and the stability requirement. Be prepared to satisfy these requirements if you want to make a change. The details of these requirements can be found in Section 3.1 Justifications for Change in the Vocabulary Maintenance Specification.
To initiate the change request, the preferred method is to create a new issue (https://github.com/tdwg/dwc/issues/new/choose) in the Darwin Core Issue Tracker. Use the appropriate template to create a new issue and fill it out as clearly, concisely, and completely as possible. Don't worry, if there are things you can not provide, the Darwin Core Maintenance Group will help you to develop the issue to maturity. If you can not or do not wish to use the Issue Tracker, please send the proposal in a message to tdwg-content@lists.tdwg.org.

if you want to suggest a change to a Darwin Core term, please use the Term change template
if you want to suggest a new Darwin Core term, please use the New term template
for any other request for change to the Darwin Core standard, fill out a new blank issue

It was intentional to restrict MaterialCitation to scholarly publications. This is where an expert provides and communicates his opinion about the identify of a specimen as part of his research generally in form of, and as part of, a taxonomic treatment, from where it is  often linked to other data.
Scholarly publications are well established through the way scientists work, building a corpus of hundreds of millions of printed pages resulting in more than 15,000 treatments of new species published every year, and a multiple of annotating previous treatments with new results in reference to the published work.
There has always been discussions on what to consider a scholarly publication. In the digital age, there are discussions what scholarly publications are, in what format they have to be published.
One important change in the digital age is that digital copies of works exist that can be cited and accessed from everywhere at any time and anybody, and that data within such work can be made open findable, accessible, interoperable and reusable (FAIR). Whilst the scholarly publications where produced with the intention to disseminate results as widely as possible, field note books where meant as a complement to fieldwork as basis for further analyses. However, in the digital age, a digitized field notebook can be as easily made accessible as a scholarly publication, including notes about a specimen.
MaterialCitation in the now defined sense can be considered a specific kind of MaterialCitations in a more general sense as something citing a specimen, as they can occur in fieldbooks, or even emails.
In the above sense, they are the result of a research project and thus have a special status. They are often the only evidence of the presence of a specimen (see e.g. the contribution to the long tail data of species only once mentioned in GBIF), and their identification is vouchered by the source treatment or publication.
It thus does makes sense to keep them in a format so that they can be retrieved, but agreeable they could or should be included in a category “MaterialCitation in the wider sense”

It was intentional to restrict MaterialCitation to scholarly publications.

Are you saying that you oppose the revision of the definition of MaterialCitation in DwC to broaden its scope to include unpublished sources of information?  If so, I strongly disagree (i.e., I support revising the definition to generalize it).
I think restricting the source of MaterialCitation instances to "scholarly publications" is a very bad idea. In my experience, field notebooks and other non-published documents contain just as much valuable information from experts as published works do (sometimes more), so it would be a mistake to exclude such resources from global biodiversity data exchange. (Or to characterize in a different way at the class level).
Obviously, scholarly publications will form the bulk of instances of MaterialCitation records, and that's great.  But there is no rational basis that I can think of to actively exclude unpublished documents as sources of information for taxonomic and other biodiversity information.  In some ways, this would similar to restricting MaterialSample instances to only specimens housed in public museums, and excluding any instances housed in private collections or other repositories.
As with the public museum vs. private collection example, the threshold at which a document represents a "scholarly publication" is subjective and arbitrary. There would be endless debates about whether some records surpass the threshold for inclusion vs. exclusion.

However, in the digital age, a digitized field notebook can be as easily made accessible as a scholarly publication, including notes about a specimen.

Yes, exactly!  So what advantage is there to explicitly exclude such valuable (and accessible) sources of biodiversity information?
My enthusiasm for supporting the MaterialCitation class is because it opens an important door to biodiversity data provenance by representing References (sensu lato) as a source of Evidence.  Just as preserved specimens can serve as critical provenance/evidence of organism occurrences and taxonomic identifications, so too can documents (published or otherwise).
If you want to be able to restrict query results to scholarly publications, then perhaps some terms could be added to flag "scholarlyPublication" or "peerReviewed" or "singleCopyDocument" or whatever metric(s) you want to use to qualify different sources.  But it seems absurd to me to exclude valuable sources of printed (paper or electronic) information based on whether or not it represents an arbitrary distinction of "scholarly publication".

@deepreef wrote:

My enthusiasm for supporting the MaterialCitation class is because it opens an important door to biodiversity data provenance by representing References (sensu lato) as a source of Evidence. Just as preserved specimens can serve as critical provenance/evidence of organism occurrences and taxonomic identifications, so too can documents (published or otherwise).

Yes ^^^ my enthusiasm too. I cannot like this enough. Finally a place for references to grey literature, for example. I think this was in the original thread. Maybe it just got lost in translation?

Done.

Note: I closed this issue to signify that the change request went through the public review process and resulted in the ratified term as defined here and in the Quick Reference Guide. Comments including and after https://github.com/tdwg/dwc/issues/329#issuecomment-894325931 should be carried to the new issue https://github.com/tdwg/dwc/issues/372.

authors: AaronWilton Archilegt debpaul deepreef ekrimmel mguidoti myrmoteras tdikow tucotuco

repo: tdwg/dwc


text:
Feat/49 51 random images

Closes #49
Closes #51
Changes made by this Pull Request

Display images in random order in frontend
Add some ECG images

Definition of Done

[ ] Tests are written and run successful
[ ] Code is documented
[ ] User Manual is updated
[ ] All requirements of the user story are met

Codecov Report

Merging #66 (b1976fb) into dev (b75cb9e) will decrease coverage by 3.40%.
The diff coverage is 88.23%.

@@            Coverage Diff             @@
##              dev      #66      +/-   ##
==========================================
- Coverage   99.16%   95.75%   -3.41%
==========================================
  Files           5        7       +2
  Lines         120      165      +45
==========================================
+ Hits          119      158      +39
- Misses          1        7       +6

Impacted Files
Coverage Δ

api/mod/src/routers/debug.py
97.29% <ø> (-0.08%)
:arrow_down:

api/mod/src/routers/images.py
82.35% <57.14%> (-17.65%)
:arrow_down:

api/mod/src/app.py
100.00% <100.00%> (ø)

api/mod/src/models/annotation.py
100.00% <100.00%> (ø)

api/mod/src/models/task.py
100.00% <100.00%> (ø)

api/mod/src/routers/tasks.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

source: gharchive/pull-request

authors: bewee codecov-commenter

repo: team-folivora/annoto

license: MIT

license_type: permissive

license_source: github-api


text:
Does it work with LinearLayouts as children?

I would say that it does not.
Should I convert my linearlayouts to relativelayouts ?

Hi @omatrot, yes it should. It is a normal FrameLayout which can have any kind of children views.
Could you provide a sample code where it is not works?

Of course, here we go:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
    <io.supercharge.shimmerlayout.ShimmerLayout android:id="@+id/shimmer_text" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="center_horizontal" android:layout_marginTop="50dp" android:paddingLeft="30dp" android:paddingRight="30dp" app:shimmer_animation_duration="1200">
        <LinearLayout android:orientation="horizontal" android:weightSum="20" android:layout_width="match_parent" android:layout_height="wrap_content">
            <TextView android:layout_height="wrap_content" android:minLines="2" android:layout_width="0dp" android:layout_weight="16" android:id="@+id/qol1" android:text="Avoir du temps pour moi" />
            <TextView android:layout_height="wrap_content" android:layout_width="0dp" android:id="@+id/score_qol1" android:text="6" android:layout_weight="2" style="@android:style/TextAppearance.DeviceDefault.Large" android:gravity="right" />
            <TextView android:id="@+id/score_qol1_10" android:text="/10" android:gravity="left" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" />
        </LinearLayout>
    </io.supercharge.shimmerlayout.ShimmerLayout>
</LinearLayout>

The inner most horizontal Linear Layout is used to size TextViews children upon the individual weight.

So, the first thing is that you should start the animation either from Java/Kotin code or at the XML by adding the shimmer_auto_start attribute.
The text color here is very similar to the default shimmer color so you cannot see the animation itself. If you change the shimmer_color attribute for example to red, then you can see the animation.
As for you question, anything inside the ShimmerLayout which has a color will run the animation.
Is it working by applying the above instructions?

Ok understood, thanks for the clarification.

source: gharchive/issue

authors: omatrot veghtomi

repo: team-supercharge/ShimmerLayout

license_source: bigquery


text:
[#169647021] added registration page 3

added translations for page 3
moved token setting and user profile api call to DefaultContainer (as token and profile info are used in every child component of DefaultContainer)
added registration step 3
added integration with get documents api
moved loading page to default container (as it is used only after login)
added new env variable to api env file

Warnings

:warning:
This PR changes a total of 4473 LOCs, that is more than a reasonable size of 250. Consider splitting the pull request into smaller ones.

Affected stories

🌟 #169647021: Aggiungere pagina caricamento creazione documenti

New dependencies added: file-saver, react-cookie and @types/file-saver.
file-saver
Author: Eli Grey
Description: An HTML5 saveAs() FileSaver implementation
Homepage: https://github.com/eligrey/FileSaver.js#readme

Createdover 3 years agoLast Updated5 months agoLicenseMITMaintainers2Releases16Keywordsfilesaver, saveas and blob

README
If you need to save really large files bigger then the blob's size limitation or don't have
enough RAM, then have a look at the more advanced StreamSaver.js
that can save data directly to the hard drive asynchronously with the power of the new streams API. That will have
support for progress, cancelation and knowing when it's done writing
FileSaver.js
FileSaver.js is the solution to saving files on the client-side, and is perfect for
web apps that generates files on the client, However if the file is coming from the
server we recommend you to first try to use Content-Disposition attachment response header as it has more cross-browser compatiblity.
Looking for canvas.toBlob() for saving canvases? Check out
canvas-toBlob.js for a cross-browser implementation.
Supported Browsers

Browser
Constructs as
Filenames
Max Blob Size
Dependencies

Firefox 20+
Blob
Yes
800 MiB
None

Firefox < 20
data: URI
No
n/a
Blob.js

Chrome
Blob
Yes
2GB
None

Chrome for Android
Blob
Yes
RAM/5
None

Edge
Blob
Yes
?
None

IE 10+
Blob
Yes
600 MiB
None

Opera 15+
Blob
Yes
500 MiB
None

Opera < 15
data: URI
No
n/a
Blob.js

Safari 6.1+*
Blob
No
?
None

Safari < 6
data: URI
No
n/a
Blob.js

Safari 10.1+
Blob
Yes
n/a
None

Feature detection is possible:
try {
    var isFileSaverSupported = !!new Blob;
} catch (e) {}

IE < 10
It is possible to save text files in IE < 10 without Flash-based polyfills.
See ChenWenBrian and koffsyrup's saveTextAs() for more details.
Safari 6.1+
Blobs may be opened instead of saved sometimes—you may have to direct your Safari users to manually
press ⌘+S to save the file after it is opened. Using the application/octet-stream MIME type to force downloads can cause issues in Safari.
iOS
saveAs must be run within a user interaction event such as onTouchDown or onClick; setTimeout will prevent saveAs from triggering. Due to restrictions in iOS saveAs opens in a new window instead of downloading, if you want this fixed please tell Apple how this WebKit bug is affecting you.
Syntax
Import saveAs() from file-saver
import { saveAs } from 'file-saver';

FileSaver saveAs(Blob/File/Url, optional DOMString filename, optional Object { autoBom })

Pass { autoBom: true } if you want FileSaver.js to automatically provide Unicode text encoding hints (see: byte order mark). Note that this is only done if your blob type has charset=utf-8 set.
Examples
Saving text using require()
var FileSaver = require('file-saver');
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "hello world.txt");

Saving text
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "hello world.txt");

Saving URLs
FileSaver.saveAs("https://httpbin.org/image", "image.jpg");

Using URLs within the same origin will just use a[download].
Otherwise, it will first check if it supports cors header with a synchronous head request.
If it does, it will download the data and save using blob URLs.
If not, it will try to download it using a[download].
The standard W3C File API Blob interface is not available in all browsers.
Blob.js is a cross-browser Blob implementation that solves this.
Saving a canvas
var canvas = document.getElementById("my-canvas");
canvas.toBlob(function(blob) {
    saveAs(blob, "pretty image.png");
});

Note: The standard HTML5 canvas.toBlob() method is not available in all browsers.
canvas-toBlob.js is a cross-browser canvas.toBlob() that polyfills this.
Saving File
You can save a File constructor without specifying a filename. If the
file itself already contains a name, there is a hand full of ways to get a file
instance (from storage, file input, new constructor, clipboard event).
If you still want to change the name, then you can change it in the 2nd argument.
// Note: Ie and Edge don't support the new File constructor,
// so it's better to construct blobs and use saveAs(blob, filename)
var file = new File(["Hello, world!"], "hello world.txt", {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(file);

Installation
# Basic Node.JS installation
npm install file-saver --save
bower install file-saver

Additionally, TypeScript definitions can be installed via:
# Additional typescript definitions
npm install @types/file-saver --save-dev

react-cookie
Author: Benoit Tremblay
Description: Universal cookies for React
Homepage: https://github.com/reactivestack/cookies/tree/master/packages/react-cookie/#readme

Createdover 4 years agoLast Updated4 months agoLicenseMITMaintainers1Releases63Direct Dependencies@types/hoist-non-react-statics, hoist-non-react-statics and universal-cookieKeywordsuniversal, isomophic, cookie and react

README

react-cookie

  Universal cookies for React

Integrations

universal-cookie - Universal cookies for JavaScript
universal-cookie-express - Hook cookies get/set on Express for server-rendering

Minimum requirement
react-cookie @ v3.0+

React.js >= 16.3.0 (new context API + forward ref)

react-cookie @ v0.0-v2.2

React.js >= 15

Getting started
npm install react-cookie
or in the browser (global variable ReactCookie):

<CookiesProvider />
Set the user cookies
On the server, the cookies props must be set using req.universalCookies or new Cookie(cookieHeader)
useCookies([dependencies])
Access and modify cookies using React hooks.
const [cookies, setCookie, removeCookie] = useCookies(['cookie-name']);

React hooks are available starting from React 16.8
dependencies (optional)
Let you optionally specify a list of cookie names your component depend on or that should trigger a re-render. If unspecified, it will render on every cookie change.
cookies
Javascript object with all your cookies. The key is the cookie name.
setCookie(name, value, [options])
Set a cookie value

name (string): cookie name
value (string|object): save the value and stringify the object if needed
options (object): Support all the cookie options from RFC 6265

path (string): cookie path, use / as the path if you want your cookie to be accessible on all pages
expires (Date): absolute expiration date for the cookie
maxAge (number): relative max age of the cookie from when the client receives it in second
domain (string): domain for the cookie (sub.domain.com or .allsubdomains.com)
secure (boolean): Is only accessible through HTTPS?
httpOnly (boolean): Is only the server can access the cookie?
sameSite (boolean|lax|strict): Strict or Lax enforcement

removeCookie(name, [options])
Remove a cookie

name (string): cookie name
options (object): Support all the cookie options from RFC 6265

path (string): cookie path, use / as the path if you want your cookie to be accessible on all pages
expires (Date): absolute expiration date for the cookie
maxAge (number): relative max age of the cookie from when the client receives it in second
domain (string): domain for the cookie (sub.domain.com or .allsubdomains.com)
secure (boolean): Is only accessible through HTTPS?
httpOnly (boolean): Is only the server can access the cookie?
sameSite (boolean|lax|strict): Strict or Lax enforcement

withCookies(Component)
Give access to your cookies anywhere. Add the following props to your component:

cookies: Cookies instance allowing you to get, set and remove cookies.
allCookies: All your current cookies in an object.

Your original static properties will be hoisted on the returned component. You can also access the original component by using the WrappedComponent static property. Example:
function MyComponent() {
  return null;
}
const NewComponent = withCookies(MyComponent);
NewComponent.WrappedComponent === MyComponent;

Cookies
get(name, [options])
Get a cookie value

name (string): cookie name
options (object):

doNotParse (boolean): do not convert the cookie into an object no matter what

getAll([options])
Get all cookies

options (object):

doNotParse (boolean): do not convert the cookie into an object no matter what

set(name, value, [options])
Set a cookie value

name (string): cookie name
value (string|object): save the value and stringify the object if needed
options (object): Support all the cookie options from RFC 6265

path (string): cookie path, use / as the path if you want your cookie to be accessible on all pages
expires (Date): absolute expiration date for the cookie
maxAge (number): relative max age of the cookie from when the client receives it in second
domain (string): domain for the cookie (sub.domain.com or .allsubdomains.com)
secure (boolean): Is only accessible through HTTPS?
httpOnly (boolean): Is only the server can access the cookie?
sameSite (boolean|lax|strict): Strict or Lax enforcement

remove(name, [options])
Remove a cookie

name (string): cookie name
options (object): Support all the cookie options from RFC 6265

path (string): cookie path, use / as the path if you want your cookie to be accessible on all pages
expires (Date): absolute expiration date for the cookie
maxAge (number): relative max age of the cookie from when the client receives it in second
domain (string): domain for the cookie (sub.domain.com or .allsubdomains.com)
secure (boolean): Is only accessible through HTTPS?
httpOnly (boolean): Is only the server can access the cookie?
sameSite (boolean|lax|strict): Strict or Lax enforcement

Simple Example with React hooks
// Root.jsx
import React from 'react';
import App from './App';
import { CookiesProvider } from 'react-cookie';

export default function Root() {
  return (
    <CookiesProvider>
      <App />
    </CookiesProvider>
  );
}

// App.jsx
import React from 'react';
import { useCookies } from 'react-cookie';

import NameForm from './NameForm';

function App() {
  const [cookies, setCookie] = useCookies(['name']);

  function onChange(newName) {
    setCookie('name', newName, { path: '/' });
  }

  return (

      <NameForm name={cookies.name} onChange={onChange} />
      {cookies.name &&
Hello {cookies.name}!
}

  );
}

export default App;

Simple Example with Higher-Order Component
// Root.jsx
import React from 'react';
import App from './App';
import { CookiesProvider } from 'react-cookie';

export default function Root() {
  return (
    <CookiesProvider>
      <App />
    </CookiesProvider>
  );
}

// App.jsx
import React, { Component } from 'react';
import { instanceOf } from 'prop-types';
import { withCookies, Cookies } from 'react-cookie';

import NameForm from './NameForm';

class App extends Component {
  static propTypes = {
    cookies: instanceOf(Cookies).isRequired
  };

  constructor(props) {
    super(props);

    const { cookies } = props;
    this.state = {
      name: cookies.get('name') || 'Ben'
    };
  }

  handleNameChange(name) {
    const { cookies } = this.props;

    cookies.set('name', name, { path: '/' });
    this.setState({ name });
  }

  render() {
    const { name } = this.state;

    return (

        <NameForm name={name} onChange={this.handleNameChange.bind(this)} />
        {this.state.name &&
Hello {this.state.name}!
}

    );
  }
}

export default withCookies(App);

Server-Rendering Example
// src/components/App.js
import React from 'react';
import { useCookies } from 'react-cookie';

import NameForm from './NameForm';

function App() {
  const [cookies, setCookie] = useCookies(['name']);

  function onChange(newName) {
    setCookie('name', newName, { path: '/' });
  }

  return (

      <NameForm name={cookies.name} onChange={onChange} />
      {cookies.name &&
Hello {cookies.name}!
}

  );
}

export default App;

// src/server.js
import React from 'react';
import ReactDOMServer from 'react-dom/server';
import { CookiesProvider } from 'react-cookie';

import Html from './components/Html';
import App from './components/App';

export default function middleware(req, res) {
  const markup = ReactDOMServer.renderToString(
    <CookiesProvider cookies={req.universalCookies}>
      <App />
    </CookiesProvider>
  );

  const html = ReactDOMServer.renderToStaticMarkup();

  res.send('<!DOCTYPE html>' + html);
}

// src/client.js
import React from 'react';
import ReactDOM from 'react-dom';
import { CookiesProvider } from 'react-cookie';

import App from './components/App';

const appEl = document.getElementById('main-app');

ReactDOM.render(
  <CookiesProvider>
    <App />
  </CookiesProvider>,
  appEl
);

// server.js
require('@babel/register');

const express = require('express');
const serverMiddleware = require('./src/server').default;
const cookiesMiddleware = require('universal-cookie-express');

const app = express();

app
  .use('/assets', express.static('dist'))
  .use(cookiesMiddleware())
  .use(serverMiddleware);

app.listen(8080, function() {
  console.log('Listening on 8080...');
});

@types/file-saver
Author: Unknown
Description: TypeScript definitions for FileSaver.js
Homepage: http://npmjs.com/package/@types/file-saver

Createdabout 3 years agoLast Updated9 days agoLicenseMITMaintainers1Releases6Direct Dependencies

README
Installation

npm install --save @types/file-saver

Summary
This package contains type definitions for FileSaver.js ( https://github.com/eligrey/FileSaver.js/ ).
Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/file-saver
Additional Details

Last updated: Tue, 21 May 2019 19:56:14 GMT
Dependencies: none
Global values: none

Credits
These definitions were written by Cyril Schumacher https://github.com/cyrilschumacher, Daniel Roth https://github.com/DaIgeb, Chris Barr https://github.com/chrismbarr, HitkoDev https://github.com/HitkoDev.

  Generated by :no_entry_sign: dangerJS against 5069460b09d861ae0cfc06325437d26ac92f53f7

authors: d-al-ibm digitalcitizenship

repo: teamdigitale/io-onboarding-pa


text:
🛑 Appointments API is down

In 5ab55eb, Appointments API (https://app.greyfinch.com/rest/v1/public/divisions/981581/locations) was down:

HTTP code: 503
Response time: 35 ms

Resolved: Appointments API is back up in 2390570.

repo: teamgreyfinch/public-status


text:
🛑 API is down

In 9c45a73, API (https://api.staging.greyfinch.com/healthz) was down:

HTTP code: 503
Response time: 116 ms

Resolved: API is back up in 516f94c.

repo: teamgreyfinch/staging-status


text:
Can't push with ssh-ed25519 keys

From @amingilani on November 5, 2016 21:55
Currently I can keys:add my primary ssh-ed25519 ssh key but I can't push, and have to rely on my alt RSA key.
Github let's me push using my primary ssh-ed25519, I can log in as core@coreOS using my ssh-ed25519 just fine.
Steps to reproduce:

Create a new key using ssh-keygen -o -a 100 -t ed25519
Add the key to Deis
Create and push using the key

Copied from original issue: deis/workflow#598

From @amingilani on November 8, 2016 20:58
@kmala could you independently run the following? The command to generate a ed25519 key is ssh-keygen -o -a 100 -t ed25519

From @kmala on November 8, 2016 20:1
whatever key git client passes during git push deis master is the one used by the deis to authenticate. So, if you should be able to use  ssh-ed25519 key if you can make git client to use it for ssh.

From @amingilani on November 8, 2016 20:56
@kmala here:
Checking to make sure my key exists on deis
$ deis keys:list
=== amin_shah Keys
gilani@redbull.local ssh-ed25519 AAAA...bull.local
gilani@redbull       ssh-rsa AAAAB3Nz...ni@redbull

Testing git push
# Using RSA key on Github
$ GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa -F /dev/null" git push github master
Everything up-to-date

# Using ED25519 key on Github
$ GIT_SSH_COMMAND="ssh -i ~/.ssh/id_ed25519 -F /dev/null" git push github master
Everything up-to-date

# Using RSA key on Deis
$ GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa -F /dev/null" git push deis master
Everything up-to-date

# Using ED25519 key on Deis
$ GIT_SSH_COMMAND="ssh -i ~/.ssh/id_ed25519 -F /dev/null" git push deis master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

From @kmala on November 8, 2016 21:35
yes...i get the same behavior but the weird thing is the server is getting the rsa key and not the ed25519 key even when using the  GIT_SSH_COMMAND.

From @kmala on November 8, 2016 23:10
On further investigation i found that this is happening only for ed25519 keys.... i am able to use different keys using the GIT_SSH_COMMAND

From @bacongobbler on November 8, 2016 23:24
Not sure if this is relevant (fly-by comment) but we only generate rsa, dsa and ecdsa host keys for the builder: https://github.com/deis/charts/blob/master/workflow-dev/tpl/deis-builder-secret-ssh-private-keys.yaml#L10-L13
Perhaps that is relevant?

From @bacongobbler on March 27, 2017 22:48
this has been fixed upstream so we should be able to accept ed25519 keys if someone feels like hacking up a PR for the controller and the builder. :)

From @kmala on November 9, 2016 17:1
Upon further investigation found that golang ssh implementations doesn't support ed25519 keys https://github.com/golang/go/issues/8581 .The issue is fixed but isn't released.

From @kmala on March 28, 2017 6:31
It was fixed long back but isn't released in any release.

repo: teamhephy/workflow


text:
allow optional parameters to upgrade_to

@abezzub Can you please review?
This allows passing optional argument (i.e. webhook) to the upgrade_to resource.

lgtm

authors: abezzub bmasc

repo: teamupstart/plaid-ruby

license: mit


text:
use base64/uudecode if present to validate tar xz support

resolves #54

This is one of the more epic PRs I've ever seen.

Thwarted because some bottles don’t have .tar.xz available.
Can we fix that?

almost certainly everything prior to the rebuild is going to be removed. I can write a script to move it out of the way for now.

Fixed unicode at least (we somehow got a 71.1.1 in there, but 71.1.0 is the latest in the pantry, so that's what we're building). the longer cleanup is more complicated, so I'll think about how to cleanly script that, since we need to update inventories as well.

added a few fixes:

[x] some shellcheck bashism from my work basing on the recent merge
[x] clean up accidental output
[x] pass xJ instead of xz for xz vs. gz (this is confusing but real)
[x] clean up one of the CI checks to deal with the fact that v0.10 doesn't match shell pattern v0.?

authors: jhheider mxcl

repo: teaxyz/setup


text:
BUG - Different behaviour for assertSelectorHasText

When running assertSelectorHasText on body to verify if a text is present, the script on Firefox PASS but on Chrome it FAILS
Example:
http://tebel.org/gist/about_tebel

test.assertSelectorHasText(tx('body'), "Tebel.Automation",'Check if has keyword');

Firefox: ./src/tagui ./sample/test_body firefox test
PASS Check if has keyword
Chrome: ./src/tagui ./sample/test_body chrome test
AIL Check if has keyword
#    type: assertSelectorHasText
#    file: /Sites/localhost/tagui/sample/test_body.js
#    subject: false
#    selector: "body"
#    text: "Tebel.Automation"
#    actualContent: ""
[info] [phantom] Step anonymous 3/4: done in 1462ms.
# http://tebel.org/gist/about_tebel - About Tebel
[info] [phantom] Step anonymous 4/4: done in 1666ms.
[info] [phantom] Done 4 steps in 1666ms
PASS /Users/tim/Sites/localhost/tagui/hyperlane/test_body (1 test)
FAIL 1 test executed in 1.487s, 0 passed, 1 failed, 0 dubious, 0 skipped.

Additional, I use assertSelectorHasText to check if a text exists in the page, perhaps there are better checks for this?
I looked in the CasperJS documentation and Google but none of them gave me a working solution.

Hi @thim81 yes this is expected. The testing framework for CasperJS is not usable with running on Chrome as CasperJS does not support Chrome at the moment. I added that note in the testing section, and also another note at the start of developers reference with a recommended list of open-source tools that can be used for test automation. This is because there are many established tools that can do a great job at specifically testing. https://github.com/tebelorg/TagUI#testing

For CasperJS testing framework if you want to check text for the page body you can consider using this.assertTextExists() - http://docs.casperjs.org/en/latest/modules/tester.html#asserttextexists

Actually CasperJS testing framework is expressive and really good at that time when it was introduced. My only guess is due to other frameworks such as NightmareJS moving to the more popular Electron browser, and that being centrally developed instead of having a plug-and-play model, over time I don't think the testing framework become the leading approach for developers / test automation engineers.

This issue can probably be closed, I think I can update the readme to make it more clear. There are some updates to improve readme clarity from a couple from your closed issues as well.

repo: tebelorg/TagUI


text:
company display name should be in secondary language

both in business and individual

SAME ISSUE OCCUR IN VENDOR MODULE

bug fixed

repo: techgebra/polosys-books

license: Unlicense


text:
feat: ajustes seção desafios

Criação de um arquivo com um array de obejcts para inserção das informações dos cards, que agora são criados de maneira dinâmica. Modificação do grid para display flex para melhorar o alinhamento.

Merge realizado na main

authors: ManuCoutinho uira-e

repo: tecnocrias/tecnocrias


text:
请问一下，服务器有多个公网ip，如何给每个用户分配独立的公网ip

请问一下，服务器有多个公网ip，如何给每个用户分配独立的公网ip

首先，此问题是与主题无关的。这不是与此repo相关的issue，所以不应该出现在这里。
其次，你并没有清晰的描述你的问题。你的服务器为什么有多个用户？是切分docker容器每人一个容器，还是kvm虚拟机每人一个虚拟机，还是shadowsocks服务器每人一个代理隧道？
https://lug.ustc.edu.cn/wiki/doc/smart-questions/

您好，您的邮件已收到，我将尽快回复您。如是删除信息，我们将在5个工作日内处理，请尽量使用密码删除信息，如预留邮箱，可自助找回密码，不便之处敬请谅解。------------------------------本邮件为自动回复，谢谢！

authors: CodeInn1024 recolic xianrennet

repo: teddysun/across


text:
Change Plot Axes using OSC Messages and MIDI CC Messages

Because we're conceiving of controlling this application via MIDI and OSC from other applications (such as Max or SuperCollider) (most of which is already implemented!) it would be great to also be able to change the axes with osc messages and midi control change messages so that the performative space could be changed in real-time during a performance!

Fixed with PR #24


text:
Add the configurable option to show the distance of a route in miles …

…instead of kilometers (default false). Update readme to show option in config. Add spanish translation file

Glad to see this is being added - KM is not widely recognized here.

Sorry to tack on more code changes for review under this PR. I have added the display of what time of day the user is estimated to arrive at their location. Please see screenshot for reference. Thank you.

authors: ant-garz dapperbulldawg


text:
rsync command is failing on execute task#2 in case task#1 did not clean mount files on single node test

running the following command results rsync failure
tmt  --on-plan-error continue --environment RELEASE_NAME=ER3  execute provision --how connect -u root -p password -g host -P 22 discover  plans --name plans/sst_kernel_ft/memory
execute task #2: upstream_er on default-0
result the following error
Cause number 1:
    Command 'rsync -s -R -r -z --links --safe-links --delete -e 'sshpass -p password ssh -oForwardX11=no -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oServerAliveInterval=60 -oServerAliveCountMax=5 -oIdentitiesOnly=yes -p22 -oPasswordAuthentication=yes -S/tmp/tmp2oqvtk9r' /var/tmp/tmt/run-016/plans/sst_kernel_ft/memory/plan root@testhost:/' returned 23.

running the following command in DUT
mount | grep /var/tmp/tmt
bz843035_1 on /var/tmp/tmt/run-016/plans/sst_kernel_ft/memory/plan/discover/internal_er/tests/general/memory/regression/reg-suit/tmp.lP2qqXrawp/bz843035 type fuse.bz843035_1 (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
shows there is mounted directory.
Expected result:
run the above command and release the mount before calling rsync

I'm afraid this is outside of tmt responsibility.
There are many possibility how rsync or ssh can get broken and IMO tmt cannot be expected to repair guests.

I would agree with @lukaszachy here. I'd say here it should be responsiblity of the test to clean up the mount after it's done or create the mount outside of the tmt run workdir so that rsync does not fail. Closing. Feel free to reopen of you disagree.

authors: Yarboa lukaszachy psss

repo: teemtee/tmt


text:
Replace "plan+import" keys in favor of "import-plan"

It spurred as a quest to slightly improve readability of structure importing a plan:
/myplan:
  plan:
    import:
      url: ...

There is a plan, called /myplan, and it contains a plan key, apparently duplicating the plan-ness of the entity. plan key is now necessary, because there is no execute which is used to identify plans, and plan key presence is used instead.
The plan key is slightly puzzling, we encountered the question fo where adjust should be placed:
# In /myplan?
/myplan:
  plan:
    import:
      url: ...
  adjust:
    ...

# Or in plan?
/myplan:
  plan:
    import:
      url: ...
    adjust:
      ...

The first idea was to drop plan and promote import one level up. As shown above, plan serves as an anchor identifying plans: as briefly discussed, tmt plan ls --shallow would not work without it, even though we might open door to importing other entities, tests and stories - do we want to add support for that?
So, maybe dropping plan and moving import one level up is probably not as hairless as it might look, and has side-effects, how about dropping plan, moving import one level up and renaming it to import-plan? It would still serve as an anchor, we would be able to tell plans from other entities, we would remove one nested level in fmf files, and we can support both keys for some time, deprecating plan now and remove it in 2028 or something:
/myplan:
  import-plan:
    url: ...
  adjust:
    ...

My reading  w.r.t. adjust is that the first case adjusts the plan import itself, e.g.:
/myplan:
  plan:
    import:
      url: ...
      ref: main
  adjust:
    when: distro == centos
    plan+:
      import+:
      ref: centos

And the second case would adjust the plan itself similar to the planned adjust-tests in discover:
/myplan:
  plan:
    import:
      url: ...
    adjust-plan:
      when: distro == centos
      prepare+:
        - how: install
           ...

Currently the latter is not implemented afaik, but maybe it should have a similar naming scheme.
W.r.t. plan vs import-plan probably both formats can be structured to be more intuitive, e.g. plan.adjust-plan and import-plan.adjust (since import-plan.adjust-plan looks a bit much).

Also worth considering the original idea of grafting in fmf. I think having such a feature on fmf itself is also feasible.

authors: LecrisUT happz


text:
Move code-related pages under new code directory

Namely, plugins.rst becomes code/plugins.rst, which vacates a place for documentation of actual plugins to live in plugins/.
Pull Request Checklist

[x] implement the feature

/packit test --identifier full

authors: happz psss


text:
Menu/Search isn't working.

It redirects to /tz/ and doesn't show content.

This one comes from the PR, I was talking about the collab

authors: NoRulesJustFeels melMass

repo: teia-community/teia-ui


text:
version number

Would be cool if there was numbered version or published date in files.

The project is now published to bower wit corresponding version numbers.

authors: bouks teijo

repo: teijo/jquery-bracket


text:
SLSA version in Tekton Chains

Currently Tekton Chains generates intoto statement with SLSA 0.2 predicate. However, we might expect breaking changes from SLSA version v0.X to v1.0 according to the official doc since it is constantly evolving (SLSA roadmap).

Note about 0.x versions
We expect regular iteration on 0.x versions until 1.0. During 0.x, we lean towards smaller, faster releases in order to get earlier feedback on the design. After 1.0, we will limit the frequency of breaking changes.
To make this manageable, we recommend that:

Provenance generators choose the latest 0.x version at the time of implementation and then stick with that until 1.0 unless there is reason to upgrade before then.
Provenance consumers accept all known versions and convert internally between them.

This issue is to track supporting SLSA v1 provenance in Chains.
If you have any questions, comments or concerns on the SLSA version changes in Chains, feel free to add them here.

Concern
While supporting the latest SLSA provenance, we should avoid breaking the users/consumers who are still relying on the older SLSA version.
Proposal

Chains generates one intoto statement per SLSA version (that is, each intoto statement contains a specific version of SLSA predicate).
To support 1/, Chains needs to use the generic Statement struct rather than the SLSA0.2-specific ProvenanceStatement  struct from the in-toto-golang package.

Chatted with @chuangw6 about this a bit last week - I think we landed on a similar idea to yours @priyawadhwa! The alternative we were thinking of was allowing multiple values in the existing artifacts.*.format field, i.e. intoto-v0.2, intoto-v1, with the existing intoto value just being an alias to the latest version. Thinking about it more now, I think your approach might be better to add in a backwards compatible way (I'm not sure if we can move from string -> list without client config changes).
The other wrinkle to this is wanting to support multiple versions for phased rollouts. I agree we should avoid supporting all versions forever, but supporting a configured set seems reasonable for cases like upgrades. i.e. when we want to add SLSA v1, allow Chains to optionally write v0.2 and v1 (choose to pin to 1 version, or allow writing both), then turn down v0.2 once we consider v1 to be stable. wdyt?

Just want to clarify:
If we introduce the new formats.in-toto.version field, is it just an auxiliary field for the existing artifacts.taskrun.format field?
To put it differently, users still need to configure the in-toto option for the artifacts.taskrun.format field. And when we see in-toto is selected, we check formats.in-toto.version:
- If formats.in-toto.version is empty or intoto-v1, we only generate the latest version.
- If formats.in-toto.version is a list i.e. intoto-v0.2,intoto-v1, we will generate multiple versions.
Is that the idea? @priyawadhwa @wlynch

/assign

repo: tektoncd/chains


text:
Question/Proposal: Step Resource

Currently, the Task resource consists of Steps that each run in a separate container. I am wondering why Steps are not a separate resource that could be defined separately from a Task and then reused as part of several Tasks.
This would follow the design considerations of other Tekton resources that are highly reusable, such as Tasks and PipelineResources.
What is the reasoning for not having a Step resource?

@danielhelfand I think this is a really interesting idea - maybe relevant to @ahpook 's interests as well?

What is the reasoning for not having a Step resource?

We've been focusing on a Task as the most reusable unit; additionally the container images within the Steps are kind of another reusable unit, so I think we haven't seen a clear reason to make a Step itself reusable.
Maybe you could give some examples of where this could be useful?

@bobcatfish This is kind of related to Task composition and issues like #1367 (Allow for TaskReference Interpolation within Pipeline). I think the idea would be able to define some common step that need to be done in a Task, so that they can be shared and re-use easily.
I wonder if it should be a PipelineResource or its own type, usable/injectable in the Task spec. And as it is "arbitrary" (Step being a ContainerSpec or a script), it would make it possible to do anything (like replacing any other type of resources, kinda :stuck_out_tongue_closed_eyes: ).

I think the main use case I see for this is, as @vdemeester has mentioned, is about being able to define a step once and have it be reusable across tasks. Being able to write the step once and then be able to have a StepRef as part of a task would help to avoid having to write out a whole step each time.
Granted, it's debatable how much this would be worth it considering how much has already been done around having tasks as the most basic unit, but I think promoting reuse of images, resource allocation for the step, and individual commands would be nice to package as some type of resource.

Following up on this, I think a good use case of this could be cli tools used as part of a task. For instance, currently there is a task for gcloud and also one for oc. These tasks basically only execute one command, but I think the better use case would be to have these tasks represented as reusable steps.

I think this could be pretty cool, though it's hard for me to imagine exactly what it would look like. @danielhelfand and/or anyone else, would you be interested in putting together a proposal with maybe some examples of what this would be like?

@bobcatfish Sure! Do you have any particular format for a proposal, or would you like a high level examples of how I imagine this?

@danielhelfand either is great - we have some suggestions for what we try to look for in proposals in https://github.com/tektoncd/community/blob/master/process.md#proposing-features
but basically as much/little as you think is reasonable :D and the working group (https://github.com/tektoncd/community/blob/master/working-groups.md#general) is a great place to discuss this out loud if you'd prefer that route

I don't think we've ever really established whether or not we want to do this, it comes up every once in a while in conversation but it still feels (to me at least!) like we have no use cases for this that are compelling enough for us to do it

authors: bobcatfish danielhelfand vdemeester

repo: tektoncd/pipeline


text:
Inconsistent Status Reason for Cancelled PipelineRun/TaskRun

The PipelineRunReasonCancelled const is Cancelled while TaskRunReasonCancelled is TaskRunCancelled.
Why I think it would make sense for these statuses to be consistent is that the PipelineRun/TaskRun condition reason is usually used to report that status of runs to end users through tkn and the dashboard. It's a bit odd to have to choose one of these format styles in order to report the reason a PipelineRun or TaskRun didn't succeed.
I could also see including the resource name as part of the reason as helpful in some cases (e.g., PipelineRunCancelled being the status of TaskRuns as opposed to TaskRunCancelled since the PipelineRun cancellation causes the cancel of associated TaskRuns).
/kind feature

/remove-lifecycle stale

authors: danielhelfand vdemeester


text:
Compose multiple Pipeline workspaces into a single Task workspace

Feature request
Add the ability to compose multiple Pipeline workspaces into a single Task workspace. The new workspace would essentially be an emptyDir + subdirectories for each workspace.
Use case
A taskRef is expecting a single workspace to be provided, but that data exists within multiple workspaces in my Pipeline. For example, one workspace contains data loaded from a ConfigMap and another contains data from a PVC.
Another use case is a taskRef that expects N configurations to be provided within a single workspace (for example, a set of service bindings, each in its own directory). This could be accomplished using a projected volume that maps a bunch of Secrets & ConfigMaps into my workspace, but projected volumes have other problems:

They cannot map PVCs
The root of the volume remains read-only, even if it's empty
Each key of a ConfigMap or Secret must be explicitly enumerated (At least in all the examples I can find). This is unlike a regular Secret/ConfigMap workspace binding inside of a PipelineRun, which includes the entire contents of the Secret/ConfigMap. This is important for scenarios where the Secret/ConfigMap may contain arbitrary keys.

Example
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: my-pipeline
spec:
  workspaces:
  - name: foo-workspace
    description: A workspace containing foo.txt, mounted from a ConfigMap
  - name: bar-workspace
    description: A workspace containing bar.txt, mounted from a PVC
  tasks:
  - name: my-task
    taskRef:
      name: my-taskref
    workspaces:
    - name: config
      workspaces:
      - name: foo-workspace
        mountPath: config1
      - name: bar-workspace
        mountPath: config2

In this example, my-task expects a single workspace config, which is formed by combining two workspaces. In the end, my-taskref sees this:
<workspace>/config1/foo.txt
<workspace>/config2/bar.txt

/remove-lifecycle rotten

authors: afrittoli ben-galusha


text:
Controller cannot watch for resources

Expected Behavior
Controller should work fine. Or at least tell, which Resource/version actually was the problem.
Actual Behavior
Logs state:
W0522 11:08:36.763611 1 reflector.go:270] github.com/tektoncd/pipeline/pkg/client/informers/externalversions/factory.go:114: watch of *v1alpha1.ClusterTask ended with: The resourceVersion for the provided watch is too old.

Steps to Reproduce the Problem

Install Tekton on OpenShift 3.9
RoleBind tekton-pipeline-controller to edit

Gave up on installing on OS3.9.


text:
🛑 Annuaire API is down

In caa4e3f, Annuaire API (https://www.tela-botanica.org/service:annuaire:auth/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Annuaire API is back up in 0af89f1.

repo: telabotanica/status


text:
회원가입 validator 버그 수정

개요
회원가입 validator 함수에서 버그가 발생하여 수정하고 테스트 코드도 조금 더 정교하게 추가해보았습니다.
이슈 번호

closes #22

변경사항

util 함수에서 정규식 및 validator 함수 수정
test 코드 테스트 케이스 추가 및 수정

특이사항
:bug:

테스트 해봤는 데 postman의 pw pattern test에서 오류가 있네요. 숫자만 입력했는 데도 통과가 됩니다.

https://github.com/telbby/telbby-backend/issues/23 에서 언급한 것처럼 패스워드 조합 관련 테스트 케이스가 부재해서 추가가 필요합니다.
패스워드 조합 관련해서 문제가 있는 것처럼 보이네요.

@hseoy 헉 !!! 그렇군요 !!! 패스워드 조합이면 정규식에 문제가 있는 것 같군요!
네 좋습니다 그럼 이 부분 바로 #23 이슈에서 이어가면 좋을 것 같아요! 어푸룹 & 바로 머지해주세욥!!!

authors: Seogeurim hseoy

repo: telbby/telbby-backend


text:
인증 관련 API 요청 구현

개요
인증, 회원가입 API 관련해서 요청 유틸 함수와 관련 hook을 구현했습니다.
이슈 번호

closes #10

변경사항

로그인, 로그아웃, 토큰 갱신, 회원가입 API에 대한 요청 유틸 함수 구현 - src/apis 참고

axios 라이브러리를 추가했고 해당 라이브러리를 사용해 구현했습니다.

userState 추가  - src/atoms 참고
인증 관련 hook 추가 - src/hooks 참고

useAuth : login, logout api 관련 hook
useAutoLogin : refresh api를 사용한 자동 로그인 관련 hook
useSignup : signup api 관련 hook

환경 변수 추가 - .mock.env 참고

APP_API_URL : API 서버 경로 - ex) http://localhost:5000

특이사항

현재 사용자 정보를 가져오는 부분은 아직 구현되지 않아 제외하고 인증 관련 hook을 구현하여 추후에 수정될 여지가 있습니다.

관련해서 수정되어야 할 사항은 // @TODO로 표시해두었습니다.

API 요청 유틸 함수들과 인증 관련 hook에 대해서도 테스트 코드를 작성하려고 했지만 약간 시행착오가 있을 것 같아 먼저 PR 올리고 테스트 코드 관련 이슈를 만들어 추후에 작업하려고 합니다.

hook 관련 테스트 코드는 종호님께서 설치하셔서 사용하신 라이브러리를 사용해서 하면 될 것 같습니다.
hook 관련 테스트 라이브러리를 설치하게 되면 종호님 PR과 의존성 부분에서 꼬일 가능성이 있다고 생각한 점과 위에서 언급한 시행착오로 인한 시간 지연 가능성으로 인해 별도의 이슈로 분리해서 추후에 작업하고자 결정했습니다. -> 혹시 머지되는 모든 코드에는 반드시 테스트 코드가 있어야 한다라는 컨벤션이 있었다면 말씀해주세요!

인증 관련 hook 내에서 api 요청을 수행하고 있는 데 해당 부분에 대해 에러 처리가 적절한 지에 대해서 살펴봐주세요!
서버 데이터와 관련된 타입 같은 경우에는 현재 많은 타입이 존재하지 않아 apis/types.ts, 한 파일에 저장하여 사용하고 있습니다. 이것이 적절한 지 살펴봐주세요!
이외 기타 사항에 대해서 거리낌 없이 자유롭게 지적해주세요!~~~~

해당 코드에 대해서는 메신저에서 말씀드린 대로 클래스 형태로 수정하면서 리팩토링을 할 예정입니다. 빠르게 리팩토링한 이후 다시 리뷰 요청드리도록 하겠습니다~~

클래스를 사용해서 API 모듈을 재설계했습니다~~. 관련해서 리팩토링 이전 코드와 많이 변경되었으니 다시 리뷰해주세요~!!!
리팩토링하면서 고민한 것은 axios에 대한 의존성을 줄이는 것이었습니다. 내부적으로는 axios를 사용하든 fetch를 사용하든 외부에서는 같은 인터페이스로 사용하는 것을 목표로 했습니다. 그렇지 않으면 추후 어떤 이유로 인해 네트워크 모듈을 변경해야 할 때 너무 많은 변경사항이 발생할 수 있다고 생각했습니다.
그래서 네트워크 모듈을 추상화시킨 ApiClient 추상 클래스를 만들고 해당 클래스를 상속받아 AxiosApiClient 클래스를 구현했습니다. AuthApi, UsersApi와 같은 API 요청 클래스에서는 ApiClient 타입으로 client를 받아 axios와 같은 네트워크 라이브러리와의 의존성을 최소화하려 했습니다.
에러 처리 측면에서도 axios에서 발생하는 에러를 그대로 사용하는 것이 아니라 ApiError라는 Error 클래스를 상속받은 에러 클래스를 만들고 try-catch로 axios 에러를 잡아 ApiError로 변환해서 던져주도록 하였고 결과적으로 외부에서 에러 처리할 때는 내부 네트워크 모듈의 에러와는 상관없이 동일한 인터페이스의 에러 처리를 수행할 수 있도록 하는 방안을 생각했습니다.
나름대로 열심히 고민을 하면서 구현했으나 부족한 점이 있을 수 있으니 편하게 지적해주세요~~

말씀해주신 사항들에 대해서 모두 수정 완료했습니다.
폴더 깊이의 경우, 폴더를 분리함으로서 해결했는 데 괜찮은 지 의견 남겨주시면 좋을 것 같습니다.

기존 src/apis/dto => src/types
기존 src/apis/client => src/utils/httpClient
기존 src/apis/apis => src/apis

결과적으로 src/apis 디렉토리 구조는 아래와 같습니다.
- src/apis
  - index.ts
  - api.ts
  - userApi(directory)
  - authApi(directory)

repo: telbby/telbby-frontend


text:
How to call identify in MixpanelPeopleContext

The current implementation exposes various functions on the people object but does not allow identifying a user using the identify method.
This is also not documented yet. Is there already a way to do this?

https://github.com/mixpanel/mixpanel-node/issues/13

I tried ctx.mixpanel.client.identify but that does not work as well, maybe because it is on a very old version of mixpanel.

https://github.com/mixpanel/mixpanel-node/issues/13

authors: LetItCode divyenduz

repo: telegraf/telegraf-mixpanel


text:
support pausing pools

InClusterIPPools support a .spec.paused property which will pause the reconciliation of claims referencing that pool

We already have support for the paused annotation.
Is that sufficient or would you prefer to have the field as well?

It looked to us that this annotation is set on the IPAddressClaim and that there is not currently a mechanism to pause a Pool resource.
We thought it would be useful to allow operators to pause at a pool level.
Does it make sense here that we're exposing this as a spec property rather than using the annotation? This is more aligned with what we've seen in the Cluster spec, but then there is a diff in how to pause claims vs pools that I'm not happy with.

Oh, sorry, I went over this too quickly.
Definitely makes sense to pause on pool level as well.
Also not sure what's better here either. Properties are definitely more user-friendly. But at the same time annotations are easier to handle with generic tools.
Could you check if there is a plan for harmonising this on CAPI? ClusterClass doesn't have a paused field for example.

Also not sure what's better here either. Properties are definitely more user-friendly. But at the same time annotations are easier to handle with generic tools.
Could you check if there is a plan for harmonising this on CAPI? ClusterClass doesn't have a paused field for example.

My 2c after talking with @tylerschultz. I think it may make sense for us to continue the pattern of using the annotation. I think what swayed us was the fact that every resource other than cluster just relies on the annotation and it lets us utilize the generic tooling that exists. I'll work with @adobley to update the PR to use annotations.

Updated the PR to use the pause annotation.

authors: adobley christianang schrej


text:
Forhåndsvisning fungerer ikke hvis endring - IE

Forhåndsvisning første gang, fungerer.
Deretter kommer:
Gir "Objektet støtter ikke egenskapen eller metoden remove Linje 8 material-modal.min.js".

https://github.com/MarkRabey/material-modal/issues/1 får vente til det evt blir fikset i hovedbiblioteket

authors: maccyber zrrrzzt

repo: telemark/minelev


text:
Updated to Rack 0.6 API

@teletypist Should you be compliant with a contribution, I submit my updates to the new Rack 0.6 API (reference: Rack Plugin Repair Team)
EDIT: compilation and Rack loading were tested under Windows 8.1

I really appreciate you doing this! The VCVRack community is like none I have ever encountered. Keep up the awesomeness!

@teletypist Thanks to  your for your work and adding the plugin to the Community!

Great work! Thank you!

authors: cschol dizzisound teletypist

repo: teletypist/stochasm


text:
Update package.json

Update repo url

Have you checked the lock file too?

I didn't see anything and didn't expect to because when you pull this down locally and run using nx it essentially does a yarn link for local package dependencies

Have you checked the lock file too?

I didn't see anything and didn't expect to because when you pull this down locally and run using nx it essentially does a yarn link for local package dependencies

Might wanna check the ds?

repo: telicent-oss/rdf-libraries


text:
Initial draft of testing documentation

For https://github.com/tempestphp/tempest-app/pull/8 I wanted to add documentation about testing. This is ofcourse far from complete, but I hope this is a good start. I think next up could be the following subjects:

Console commands
Mocking objects
Interacting with the container
Database migrations
Using the clock to change time

Yes, very good start!

authors: Xammie brendt

repo: tempestphp/tempest-docs


text:
🛑 Secret Site2 is down

In f2ccd0e, Secret Site2 ($SECRET_SITE_2) was down:

HTTP code: 404
Response time: 79 ms

Resolved: Secret Site2 is back up in 0512f1a after 58 minutes.

repo: templain/mywatcher


text:
🛑 Secret Site2 is down

In 5fa795f, Secret Site2 ($SECRET_SITE_2) was down:

HTTP code: 404
Response time: 104 ms

Resolved: Secret Site2 is back up in b663580.


text:
[Feature Request] Set higher frontend.persistenceMaxQPS default for dev server

Describe the solution you'd like
In 0.11 when we disabled search attribute cache (system.forceSearchAttributesCacheRefreshOnRead=true) and overrode QPS (frontend.persistenceMaxQPS=10000). When we re-disabled SA cache in 0.13.1 in #593, we did not re-override that max QPS setting and users are now hitting it. We should set it as it was in 0.11.

may need to bump history.persistenceMaxQPS as well if it is not already higher.

authors: cretz yiminc

repo: temporalio/cli


text:
Use gRPC interceptor instead of data converter for encoding/decoding

Fixes #367
Depends on unmerged PR https://github.com/temporalio/sdk-go/pull/1303
What was changed

Do payload encoding/decoding for all client requests, using a gRPC interceptor
Stop doing payload encoding/decoding in the dataconverter
Eliminate the global mutable dataconverter model

Why?

temporal workflow show was respecting --codec-endpoint but temporal workflow show --output json was not

Why do we think this change is correct?
For this change to maintain previous semantics, all the code paths that were using the custom dataconverter must have been operating on data that was either a response obtained using SDKClient, FrontendClient, or OperatorClient, or is being prepared for a request via one of those clients. I have added comments inline establishing that this is true.
For this change to be correct, we require that all code paths that send/receive data containing Payloads are using SDKClient, FrontendClient, or OperatorClient.
How was this tested

Manual testing only so far, using https://github.com/temporalio/samples-python/tree/main/encryption:

[ ] More testing needed

Checklist

Addresses #367 w.r.t. workflow show --output json
Any docs updates needed?
No

@dandavison - Look at https://pkg.go.dev/go.temporal.io/api/proxy#VisitPayloads for visiting all payloads (be sure to exclude search attributes). https://github.com/temporalio/sdk-go/blob/v1.25.1/converter/grpc_interceptor.go#L47 is an example of it being used.

@dandavison did you test search attributes? Those don't appear to be excluded by NewPayloadCodecGRPCClientInterceptor ?

Superseded by https://github.com/temporalio/cli/pull/421

authors: Quinn-With-Two-Ns cretz dandavison


text:
Scout commands do not work

Description
When trying to run a Laravel Scout scout:import command, I receive The "model" argument does not exist..
php artisan tenancy:run scout:import --tenant=1 --argument="model=App\Models\User"

If run without the argument, everything works as expected.

Actual behavior
host: php artisan tenancy:run scout:import --tenant=1 --argument="model=App\Models\User"

  The "model" argument does not exist.

Expected behavior
The command should run.

Information

hyn/multi-tenant version: 5.6.4
laravel version: 7.27.0

Resolved with
                $this->call('tenancy:run', [
                    'run'      => 'scout:import',
                    '--argument' => ['model=' . $model],
                ]);

repo: tenancy/multi-tenant


text:
Is there any training related code?

Hello, I have run test_env.py successfully, and the documentation just finshes here. So is there any further code ande tutorial, like how to train, inference and so on?

https://github.com/tencent-ailab/hok_env/tree/master/code

authors: hongyangqin zszzlmt


text:
Middleware replay protection

unit tests failing to be addressed before merge

Note to any prevention of overflow attacks on the sequence number should be incorporated into the serialization of the nonce Tx (so inherently the uint64 limit has already been enforced due to the fact that a uint32 is being fed into the function)

Hey Rigel, you did a nice bit of cleanup, but there is still one logic error and a missing query command.
I added some failing tests to indicate the problems I mentioned in my review.  If they pass, then I will go ahead and merge.

Cool thanks - fixed. Also needed to modify the sort algorithm

Looks good.  Just rebased on unstable and merging.

authors: ethanfrey rigelrozanski

repo: tendermint/basecoin


text:
iDMRG bookkeeping of energy

Hi Johannes,
I am a new user of tenpy. I ran some iDMRG simulations and found that the energy converges rather slowly, while other measurables such as correlations and entanglement entropy converge much faster.
After looking into the library, I came to notice the following minor issue concerning the bookkeeping of energy in iDMRG procedure and I wonder if you would agree with me:
in tenpy.algorithms.dmrg.py, line 447:
 E = (Es[-1] - Es[0]) / (age[-1] - age[0])
should perhaps be changed to:
 E = (Es[-1] - Es[-2]) / (age[-1] - age[-2])
to get rid of the boundaries, which are not well-optimized.
Thanks for the nice package, by the way.

Thank you very much for pointing that out and even suggesting the corrected code!
The age[-2] is just one bond update before, so this it's also not the correct thing to use, but
the actual fix ae900e3e4dfaa097b58e67ea0cdaa0a3153f96b6 looks quite similar.
Thanks again!

repo: tenpy/tenpy


text:
2020-02-11 tc017 M4SD generates numerous warning messages when using actual time

Minor Issue
When running tc017 M4SD with actual time a large number of uninformative warnings are printed, causing the warnings to reach the maximum value of 50. An example of the output is shown below.
> # tc017 M4SD with mct$TIME == "ACTUAL", mct$ACTTIME == "PKATPD", mct$ACTENDTIME == "PKATPDE"
> results_list <- run_computation(data = d, map = mct, flag = flags,
+   parameterset = parameterset)
unit_conversion : Unit Class 1 (Time) time_col:  TMAXRATE MIDPTLAST TLAG KELTMLO KELTMHI THALF MIDPT1 MIDPT2 MIDPT3 MIDPT4  parameters are scaled from  HR  to  HR  via scaling factor:  1
unit_conversion : Unit Class 2 (Amount) amount_col:  AMT.4.00 AMT.12.00 AMT.24.00 AMT.48.00 AE.4.00 AE.12.00 AE.24.00 AE.48.00 AE  parameters are scaled from  NG  to  MG  via scaling factor:  1e-06
unit_conversion : Unit Class 3 (Dose) dose_col:  DOSE1  parameters are scaled from  MG  to  MG  via scaling factor:  1
unit_conversion : Unit Class 4 (Volume) volume_col:  VOLSUM  parameters are scaled from  ML  to  L  via scaling factor:  0.001
unit_conversion : Unit Class 6 (1/Time) kel_col:  KEL  parameters are scaled from  1/HR  to  1/HR  via scaling factor:  1
unit_conversion : Unit Class 11: ([Volume.Amount]/Volume) aurc_col:  AURCALL AURCLAST AURC1 AURC2 AURC3 AURCINFO AURCINFP  parameters are scaled from  ML.NG/ML  to  ML.UG/ML  via scaling factor:  0.001
unit_conversion : Unit Class 13: (Amount/Time) rate_col:  MAXRATE RATELAST RATE1 RATE2 RATE3 RATE4  parameters are scaled from  NG/HR  to  UG/HR  via scaling factor:  0.001
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In validate_timeconc_data(map, data, flag, verbose = verbose) :
  No tau information provided in 'map'.
2: In validate_timeconc_data(map, data, flag, verbose = verbose) :
  No told information provided in 'map'.
3: In run_computation(data = d, map = mct, flag = flags,  ... :
  'TAUs and TOLDs values are not provided via 'flag'! Using values provided via 'data' instead!
4: In run_M4_SD_computation(data = merged_data, map = map_data,  ... :
  Flag 'FLGACCEPTKELCRIT' values provided via 'map' does not have a valid parameter name 'AUCXPCTP'
5: In run_M4_SD_computation(data = merged_data, map = map_data,  ... :
  Flag 'FLGEMESIS' is not present in the dataset
6: In run_M4_SD_computation(data = merged_data, map = map_data,  ... :
  Flag 'FLGACCEPTPREDOSECRIT' cannot be computed if 'CMAX' is not part of the calculated parameters
7: In matrix(value, n, p) :
  data length [6] is not a sub-multiple or multiple of the number of columns [4]
8: In matrix(value, n, p) :
  data length [6] is not a sub-multiple or multiple of the number of columns [4]
9: In matrix(value, n, p) :
  data length [6] is not a sub-multiple or multiple of the number of columns [4]
10: In matrix(value, n, p) :
  data length [6] is not a sub-multiple or multiple of the number of columns [4]
...truncated...
48: In matrix(value, n, p) :
  data length [6] is not a sub-multiple or multiple of the number of columns [4]
49: In matrix(value, n, p) :
  data length [6] is not a sub-multiple or multiple of the number of columns [4]
50: In matrix(value, n, p) :
  data length [6] is not a sub-multiple or multiple of the number of columns [4]

This issue does not occur in commit fbb93e0. Closing this.

repo: tensfeldt/openNCA


text:
Bug: Update sdk document

https://docs.modelz.ai/sdk
$ python3 test-sd-mosec.py
Traceback (most recent call last):
  File "/Users/xieyuandong/Workspace/tencent/projects/tensorchord/modelz/test/test-sd-mosec.py", line 7, in <module>
    client = modelz.ModelzClient(key=key, deployment="text-xieydd-mosec-sd", serde="msgpack")
TypeError: __init__() got an unexpected keyword argument 'serde'

Will update the doc.

authors: kemingy xieydd

repo: tensorchord/modelz-py


text:
feat(docs): Document the image requirements

We need an http probe route in the container localhost:port/
Or the HTTP probe will fail.

I would love to work on this issue, Can you assign it to me and also I would like to know how to proceed with this issue
@gaocegege

We should add a section in https://docs.open.modelz.ai/deployment/deploy or somewhere, to tell users that the image should run a single-port http server, and provide a http healthz check endpoint. We will use "/" by default.

BTW, we already support mdz deploy --probe-path /healthz.

Hi @cybergeekgyan any progress for this issue? Feel free to ask here if you have any questions.

authors: cybergeekgyan gaocegege kemingy

repo: tensorchord/openmodelz


text:
Dynamic Margin

Dynamic Margin for Triplet Loss would allow for the embedding space distances to be weighted by the data instances categorical relationships (in the case of nested categories).
Example: Dog / Cat classifier with breeds
DOG_Shepherd vs DOG_Husky has different margin than DOG_Shepherd vs CAT_Persian

I am willing to contribute
Relevant academic paper:

https://www.researchgate.net/figure/Triplet-loss-with-dynamic-margin-better-separation-achieved-by-setting-different_fig3_321815679

We are evaluating to add a paper threshold. See https://github.com/tensorflow/addons/pull/2370

This seems to have a number of citations under the threshold. Please reopen this if it will accumulate more citations.

authors: bhack tdrvlad

repo: tensorflow/addons


text:
Unable to build from source with GPU support

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 20.04
TensorFlow version and how it was installed (source or binary): source
TensorFlow-Addons version and how it was installed (source or binary): source
Python version: 3.8.10
Is GPU used? (yes/no): yes

Describe the bug
I've downloaded and built from source TF 2.9.1 with GPU support. No errors.
But an error occurred during tensorflow_addons (0.17.0) building from source
DEBUG: /home/alex/.cache/bazel/_bazel_alex/f67f41e413892adc9e99d88ee1f21ae3/external/org_tensorflow/third_party/repo.bzl:124:14:
Warning: skipping import of repository 'cub_archive' because it already exists.
DEBUG: /home/alex/.cache/bazel/_bazel_alex/f67f41e413892adc9e99d88ee1f21ae3/external/bazel_tools/tools/cpp/lib_cc_configure.bzl:118:10:
Auto-Configuration Warning: 'TMP' environment variable is not set, using 'C:\Windows\Temp' as default
DEBUG: Rule 'io_bazel_rules_docker' indicated that a canonical reproducible form can be obtained by modifying arguments shallow_since = "1596824487 -0400"
DEBUG: Repository io_bazel_rules_docker instantiated at:
  /home/alex/jupyter/build/addons/WORKSPACE:45:14: in <toplevel>
  /home/alex/.cache/bazel/_bazel_alex/f67f41e413892adc9e99d88ee1f21ae3/external/org_tensorflow/tensorflow/workspace0.bzl:107:34: in workspace
  /home/alex/.cache/bazel/_bazel_alex/f67f41e413892adc9e99d88ee1f21ae3/external/bazel_toolchains/repositories/repositories.bzl:35:23: in repositories
Repository rule git_repository defined at:
  /home/alex/.cache/bazel/_bazel_alex/f67f41e413892adc9e99d88ee1f21ae3/external/bazel_tools/tools/build_defs/repo/git.bzl:199:33: in <toplevel>
WARNING: /home/alex/.cache/bazel/_bazel_alex/f67f41e413892adc9e99d88ee1f21ae3/external/local_config_tf/BUILD:13345:8: target 'libtensorflow_framework.so.2' is both a rule and a file; please choose another name for the rule
INFO: Analyzed target //:build_pip_pkg (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
ERROR: /home/alex/jupyter/build/addons/tensorflow_addons/custom_ops/image/BUILD:7:18: Compiling tensorflow_addons/custom_ops/image/cc/kernels/adjust_hsv_in_yiq_op_gpu.cu.cc failed: (Exit 1): crosstool_wrapper_driver_is_not_gcc failed: error executing command external/ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc -MD -MF ... (remaining 60 arguments skipped)
/dt9/usr/bin/gcc: No such file or directory
nvcc fatal   : Failed to preprocess host compiler properties.
Target //:build_pip_pkg failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 0.429s, Critical Path: 0.12s
INFO: 25 processes: 25 internal.
FAILED: Build did NOT complete successfully

Code to reproduce the issue
git clone https://github.com/tensorflow/addons.git
cd addons

export TF_NEED_CUDA="1"

python3 ./configure.py

bazel clean --expunge
bazel build build_pip_pkg

But if I manually replace crosstool_top value in .bazelrc with "@local_config_cuda//crosstool:toolchain" - build successfull.

But if I manually replace crosstool_top value in .bazelrc with "@local_config_cuda//crosstool:toolchain" - build continues...
And another error occured:
ERROR: /home/alex/jupyter/build/addons/tensorflow_addons/custom_ops/seq2seq/BUILD:7:18: Compiling tensorflow_addons/custom_ops/seq2seq/cc/kernels/beam_search_ops_gpu.cu.cc failed: (Exit 1): crosstool_wrapper_driver_is_not_gcc failed: error executing command external/local_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc -MD -MF ... (remaining 61 arguments skipped)
Traceback (most recent call last):
  File "external/local_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc", line 269, in <module>
    sys.exit(main())
  File "external/local_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc", line 256, in main
    return InvokeNvcc(leftover, log=args.cuda_log)
  File "external/local_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc", line 207, in InvokeNvcc
    nvccopts += r'-gencode=arch=compute_%s,\"code=sm_%s\" ' % (
TypeError: not all arguments converted during string formatting

It can be fixed by removing last ", capability" here https://github.com/tensorflow/addons/blob/master/build_deps/toolchains/gpu/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl#L208
And after that build will be successful.

Can you try to submit a PR?

@seanpmorgan Do we still needs these build_deps with the new 2.9 toolchain?

Ugly fix on ubuntu 20.04
sudo mkdir -p /dt9/usr
sudo ln -s /usr/bin /dt9/usr/bin

Is @ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda only intended to build from a docker image ?

Is @ubuntu20.04-gcc9_manylinux2014-cuda11.2-cudnn8.1-tensorrt7.2_config_cuda only intended to build from a docker image ?

It is mainly for producing manylinux2014 compatible wheels. But as we don't wan to maintain to much build configs we rely on this.

@bhack , this issue is still not resolved.
It still required to manually replace crosstool_top value in .bazelrc with "@local_config_cuda//crosstool:toolchain"
I think it should be either set automatically when building outside docker or specified via args in "configure" command and documented in readme.

@shkarupa-alex It was closed automatically as connect to your PR by Github "magic" keywords..

authors: atuleu bhack shkarupa-alex


text:
Removed a run_deprecated_v1 in lazy adam.

Similar to #1686

@ssaishruthi
You are owner of some files modified in this pull request.
Would you kindly review the changes whenever you have the time to?
Thank you very much.