text:
🛑 Fakultas Hukum is down

In a541e7c, Fakultas Hukum (https://lawfaculty.unhas.ac.id) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Fakultas Hukum is back up in 1bedb84 after 4 minutes.


text:
🛑 Fakultas Kedokteran Gigi is down

In bf2d0e1, Fakultas Kedokteran Gigi (https://dent.unhas.ac.id) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Fakultas Kedokteran Gigi is back up in a793570 after 4 minutes.

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
🛑 SSO Unhas is down

In 525afa4, SSO Unhas (https://sso.unhas.ac.id) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SSO Unhas is back up in 5a97406 after 21 minutes.


text:
🛑 Fakultas Ilmu Budaya is down

In 518686b, Fakultas Ilmu Budaya (https://ilmubudaya.unhas.ac.id) was down:

HTTP code: 500
Response time: 23270 ms

Resolved: Fakultas Ilmu Budaya is back up in 4f00fac after 2 hours, 11 minutes.


text:
DS-3687

Changed hard coded string for reference to a new field in language bundle.

I'm not using xmlui here, in which file is the resource bundle for xmlui located?

@Generalelektrix , the XMLUI file is here: https://github.com/DSpace/DSpace/blob/dspace-6_x/dspace-xmlui/src/main/webapp/i18n/messages.xml
Unfortunately, this would create a separate key for the same value.  I wonder if there is another resource bundle for dspace-api.  I will post a question to Slack to see if someone can comment here.

Maybe we could just give the value a more generic key name.

@Generalelektrix , that makes sense to me.  See the following conversation with @tdonohue.
Terry Brady [1:22 PM]
See https://github.com/DSpace/DSpace/pull/1836 .  What is the proper way to manage the display text referenced in this PR?  This value will display in both XMLUI and JSPUI.
Tim Donohue [1:33 PM]
@terrywbrady : unfortunately, it has to be done separately for JSPUI vs XMLUI, as they use different i18n keys/settings.  JSPUI uses Messages.properties, while XMLUI uses messages.xml, and there's no relationship between these two "messages" files
[1:35]
Although, hmm...in this case you are using shared API-level code.
[1:36]
So, it might just use Messages.properties only
[1:36]
Have you tested this PR? It might "just work" in XMLUI...it could be that the key should just be named something more generic (i.e. not start with "jspui.") (edited)
Terry Brady [1:38 PM]
I have not tested it.  I did not realize that all of the keys in the resource bundle were specific to a single UI which tells me that my initial solution may have been a bit messy.
Tim Donohue [1:40 PM]
Unfortunately, my answer may have been misleading cause it is confusing.  JSPUI always only uses Messages.properties.... however XMLUI will use messages.xml (for i18n in the dspace-xmlui) and sometimes Messages.properties (if the i18n occurs at the dspace-api layer)
[1:40]
So, it's a bit of a mess
[1:41]
My "guess" for this 1836 PR is that the PR might be OK mostly as-is, but the key should be named something like org.dspace.statistics.content.StatisticsDataVisits.legacy = (legacy)
Terry Brady [1:41 PM]
Thanks. I will add this conversation to the PR.
Tim Donohue [1:42 PM]
(As this key likely is NOT JSPUI specific...and you'll see other keys named like this in the Messages.properties near the bottom)

@Generalelektrix You may want to remote this .metadata stuff from eclipse.

Yeah, I commited those files by mistake and I'm trying to remove them, but I'm new to git (mainly used SVN and TFS here) and I'm working on it.

I think I've corrected everything, should be ready for review now.

+1, verified that the label is visible in XMLUI.

source: gharchive/pull-request

authors: AlexanderS Generalelektrix terrywbrady

repo: DSpace/DSpace


text:
DS-3533 Projections continued

This is a continuation of the projections work that is expected to improve performance significantly.
Status as of 2020/02/06

All changes described below are implemented
All previous ITs are passing
TBD: Adding additional tests to improve projections coverage

Status as of 2020/01/30

Functionality works as described below
Tests need to be adjusted and improved

Details
This PR:

Makes all subresource GETs use LinkRepositories where possible. This makes it easier to control, on a per-request basis, whether they are embedded or not.
Inverts the default embed behavior, as discussed in the working group meeting in January. Now, subresources are generally NOT embedded by default. They are only embedded now if a projection allows them to be. The "list" projection has been removed and replaced with a "full"  projection. When requested, whether on a single resource or collection resource, projection=full causes all allowed embeds to be included in the response.
Disables embedding of communities within communities, and groups within groups, even in the "all" projection; sub-resources must therefore always be requested explicitly. This effectively avoids recursively embedding the entire tree, when a single top-level community or group is requested.
Updates tests accordingly

Note:

This PR has the effect of standardizing the name of the array property "mappedCollections" to "collections" (using the plural type name as the array property name, as is conventional for all other paged subresources), and has the following minor angular PR that should be merged at the same time: https://github.com/DSpace/dspace-angular/pull/548
This PR also fixes https://jira.lyrasis.org/browse/DS-4248

Thanks @cwilper for this PR.
One thing I noticed from your description without having completed a full review:

You mention renaming "mappedCollections" to "collections". This may become confusing since this doesn't contain the owning collection

Am I correct to summarize this PR as:

When requesting a single item, the embedded data (relationships, owningCollection, bundles) is excluded when using projection=list
For discovery searches, the embedded data of the items is always excluded
When requesting item lists, the embedded data of the items is always excluded
When requesting a single community, the embedded data (collections) is excluded when using projection=list
When requesting community lists, the embedded data of the communities is always excluded

Thanks for taking a look @benbosman

One thing I noticed from your description without having completed a full review:

You mention renaming "mappedCollections" to "collections". This may become confusing since this doesn't contain the owning collection

The "rel" name of the subresource is still mappedCollections -- this just changes the name of the embedded array property inside the "page" of mappedCollections. For this PR, the fact that this inner-array name changed was actually a side-effect of making this info come from a link repository instead of its own controller and related scaffolding. As long as we're consistent, I figured it would be a low friction way to go, as that his how other link repository-provided subresource embeds currently work (using the plural form of the type). But I can also see the argument for forcing it to match the rel name in all cases. I don't mind either style -- I mainly just care about consistency.

Am I correct to summarize this PR as:

When requesting a single item, the embedded data (relationships, owningCollection, bundles) is excluded when using projection=list

true.

For discovery searches, the embedded data of the items is always excluded

by default yes, because the default projection in that context is "list". But that can be overridden by forcing it via projection=default.

When requesting item lists, the embedded data of the items is always excluded

by default, yes, with same exception described above.

When requesting a single community, the embedded data (collections) is excluded when using projection=list

yes.

When requesting community lists, the embedded data of the communities is always excluded

yes.

@benbosman I just wanted to quickly follow up on the paged embedded sub-resource rel naming issue and note that I'm looking at consistency issues in detail.
I found an inconsistency with this branch currently: If I temporarily allow certain paged subresources to be embedded in a resource (e.g. mappedCollections embedded in a collection resource), I see that the array name matches the rel name in that context. However, if I hit the URL for the subresource directly, the embedded array name matches the plural type name of the embedded resources. This inconsistency should be addressed. I'm not sure how yet.
I am looking at the possibility of just always making the rel name match the array name regardless of what context the embed occurs in (inside a resource vs. as a subresource via a link repository).
There are other possibilities but I want to explore this one fully before falling back to another approach.
Marking this PR as in-progress again.

@cwilper what would this imply for the sub-resources (e.g. item's mappedCollections or browse's entries also named browseEntries)
Currently, an item's mappedCollections is not directly embedded, but a HAL link to /server/api/core/items/uuid/mappedCollections is included. Opening /server/api/core/items/uuid/mappedCollections contains:
"_embedded": {
    "mappedCollections": [
...
]
  }

A browse's entries is embedded, using a HAL link to e.g. /server/api/discover/browses/subject/entries and the embed of /server/api/discover/browses/subject is:
"_embedded": {
    "entries": {
      "_embedded": {
        "entries": []
      },
      "page": {
        "number": 0,
        "size": 20,
        "totalPages": 0,
        "totalElements": 0
      },
      "_links": {
        "self": {
          "href": "https://dspace7-demo.atmire.com/server/api/discover/browses/subject/entries"
        }
      }
    }
  }

Opening /server/api/discover/browses/author/entries?size=1 contains:
{
  "_embedded": {
    "browseEntries": [
      {
        "authority": null,
        "value": "Abdominal and Paediatric Surgery",
        "valueLang": null,
        "count": 9,
        "type": "browseEntry",
        "_links": {
          "items": {
            "href": "https://dspace7-demo.atmire.com/server/api/discover/browses/author/items?filterValue=Abdominal and Paediatric Surgery"
          }
        }
      }
    ]
  },
  "_links": {
    "first": {
      "href": "https://dspace7-demo.atmire.com/server/api/discover/browses/author/entries?page=0&size=1"
    },
    "self": {
      "href": "https://dspace7-demo.atmire.com/server/api/discover/browses/author/entries?size=1"
    },
    "next": {
      "href": "https://dspace7-demo.atmire.com/server/api/discover/browses/author/entries?page=1&size=1"
    },
    "last": {
      "href": "https://dspace7-demo.atmire.com/server/api/discover/browses/author/entries?page=468&size=1"
    }
  },
  "page": {
    "size": 1,
    "totalElements": 469,
    "totalPages": 469,
    "number": 0
  }
}

I would expect the end-result to be:

The HAL link still contains the name explaining the actual functionality (e.g. mappedCollections)
The embed in the parent record still contains that same name explaining the actual functionality
The nested embed in the parent record's embed contains the type of object, e.g.

"_embedded": {
   "mappedCollections": {
      "_embedded": {
        "collections": []
      }
   }
}

Opening the HAL link contains the type of object, similar to the inner part of the embed

Does that match your expectations?

Note: The Travis failure above is a timeout, very early in the build, while downloading maven dependencies. Probably a service blip on their end. We have an upcoming commit that will trigger it again soon, but as of yesterday, existing tests were passing.

Merging, as this is at +2.  Thanks for the (continued) hard work on Projections @cwilper !

authors: benbosman cwilper tdonohue


text:
Missing focus indicators

Describe the bug
When navigating the sandbox or demo site by keyboard-only, two instances are showing a missing focus indicator:

The search icon in the utility navigation:

The hierarchical tree view:

To Reproduce
Steps to reproduce the behavior:

Navigate the demo or sandbox site by keyboard only.

Expected behavior
According to SC 2.4.7 Focus Visible (Level AA) (https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html), a vertical bar should be displayed in the field, indicating that the user can insert text. This happens, when the user clicks (or hits enter) on the search icon, but not before
In the hierarchical tree view, there is are no focus elements around the subject categories when navigating with keyboard only.

@hostle83: I was able to reproduce the error in the search facets, currently there is a deadlock preventing to access that link so I added that fix to this PR. For the first issue I can see a focus indicator on the latest version of DSpace, so could you perhaps check if this still happens for you?

repo: DSpace/dspace-angular


text:
Spark SQL syntax error

Report from @zoudaokoulife

completed by @OnlyFlyer

completed by @OnlyFlyer
https://github.com/DTStack/dt-sql-parser/pull/173/files#diff-d9f3b1ef273aa9ebbc9b903fa48845dbcaa7115cffb9c4c3f76cfff7958ef177R11

repo: DTStack/dt-sql-parser


text:
Auxiliary support

You wanted it :exclamation:

A+, Needs more javadoc though.

what is a Auxiliary Cable?
System audio line?

See here

See here

authors: Almighty-Alpaca DV8FromTheWorld DinosParkour kantenkugel mcNETDev

license_source: bigquery


text:
feat(engine): add support for changing subtitles

This PR adds support for changing the subtitles without needing to re-initializing the engine. Please note that these changes haven't been applied to the sync version and it might even break it.
This PR also includes these additional changes:

Refactor the parsing of the ass file for the font names.
Fix issue with defining window in web worker scope causing issue with emscripten boilerplate code (trying to get document.currentScript). Not sure whether we want to include this as https://github.com/kripken/emscripten/pull/7231 will also fix the issue.

I'm not exactly sure whether the loading of fonts are working correctly. Any input on that is welcome.
This is not the exact same code as I used for the version I used for my HTML5 player for Crunchyroll as it also includes some "hacky" code to allow for running it in a userscript.

Looks interesting, i'll do some tests tomorrow

Thanks for PR

repo: Dador/JavascriptSubtitlesOctopus

license: mit


text:
关于消息列表的内存优化建议

首先我设置inverted={true}，该值为false时载入界面会自动播放N长时间的往下滚动动画（不知是不是bug）
初始载入1000条消息的情况（注意views数量）：

往上滑动一段距离后，views数量增长了极多，而且不会降下来:

另外，长按多选时，消息多了明显卡顿。
--------------分割线---------------------
之后我在源码中flatlist的渲染处加上了removeClippedSubviews={true}，初始化载入情况:

往上滑动一段距离后，views数量基本不变:

是否可加上一些flatlist优化参数的配置入口

首先 以最新消息一定是最后一条为原则 当inverted= false ，进入聊天界面，为了能快速到达最新一条消息是有一个滚动到底部的动画，消息多的话肯定会卡顿，你应当考虑在列表超过屏幕的时候，下次在进入聊天界面采用倒排形式即inverted= true

已加属性flatListProps

authors: DaiYz yangfanyu

repo: DaiYz/react-native-easy-chat-ui


text:
didn't understand how to pick first break?

could you help me out , how to pick first break? I have read all of the codes. but only functions are defined. Didn't understand what are the functions are to be called ?

Yes, of course.
First breaks are calculated during training to keep track of metrics. This is done using function here. This function does several calculations based on the last layer's featuremap.
To get a vector with the values of the first breaks, use this function.

Hi DaloroAT, really interesting code and a nice readme! However, I'd like to add a vote to a better documentation and how to use/test the code. An example code introducing and demonstrating the expected input for the individual steps would be very appreciated.

Hi @poprafka . Nice to hear that someone is interested in improving the project. In fact, I did this project when I wanted to go into deep learning, it was part of my CV. The last commit was more than two years ago when I was hired))
If you need usage documentation, I'll add it as soon as free time becomes available.
Also I continue the idea of this project in a private repository. It changed the architecture, the network was trained on real data, and a FastAPI web server was also written to serve the model. If you are interested, write to at.daloro@gmail.com.

Hi, thank you for the code. As you mentioned above, did you had a chance to write down document on how to use the code?

Hello @ad1995-geek @poprafka @HHTC0 !
I've finally updated the repo, added tutorials and model weights, and released new features.
You can find updates on two URLs:
https://github.com/DaloroAT/first_breaks_picking
https://pypi.org/project/first-breaks-picking/


text:
Enhancement: Support msgspec data modelling

Description
Support msgspec library for things like Struct for building.
Why
Msgspec is fast, some people don't have to download extra libraries (in my case, at least... msgspec is already bundled with my libraries as a dependency)

So long as it supports enough introspection abilities (dont see anything obvious in the docs) to extract the information cappa needs, shouldn't be too difficult

@JacobCoffee I dont suppose you have any real-world code ready to consume this PR, to make sure it works as intended, before I merge?
If not, I can always follow up in bugfix PRs, as this is net-new behavior anyway

Not at the moment! 😬

authors: DanCardin JacobCoffee

repo: DanCardin/cappa


text:
Manual change in input for timer mode does not update modal selector

Problem occurs when changing local type in providers
 // providers: [{ provide: LOCALE_ID, useValue: 'es' }],

⛔ ⛔ ⛔    WARNING : READ BEFORE CREATING ISSUES    ⛔ ⛔ ⛔
This library was abandoned by its owner. I tried to contact him about 3 months ago with no success. Please cease to open new issues as they will not be handled by him. If you want, there is a fork created by Daniel Moncada and his team which is being currently maintained. Please don't open new issues here so that new users won't be mislead into believing this repo is still up-to-date.

authors: francoqueirolo gongAll

repo: DanielYKPan/date-time-picker


text:
weight-only

if i want use the chpeckpoint training method. if weight-only set to True or False affect the training results greatly? I found if set weight-only default=Fasle the loss of heatmps and pafs will biger.

Hi! Model weights are used to give better initialization when training starts, than random initialization. That is why there is --weights-only option. Another thing is that if you have stopped the training at some time (e.g. electricity was switched off suddenly, or a noise from PC disturbs your relatives while they are slipping), it is better not to loose current trained model, but save it and continue training next time from this saved state keeping all previous progress. That is why there is --checkpoint-path option. You can check these tutorials for the details:

Saving and loading a general checkpoint in PyTorch.
Saving and loading models.

BTW, I see you have a lot of questions. If you are doing a particular project, we can discuss the details online to not spend time on writing.

Thans a lot,  i will take your advice


text:
Add Directions Button to the TweetList Fragment

From our functional requirements:

The user must be able to view directions from their current location to nodes displayed on a map by being redirected to the Google Maps app.

Is it alright if I take over this task? I'm currently working in the TwitterListFragment.

@zandermax Sure!

authors: basimr ermel272 zandermax

repo: DankIdeaCentral/migrate-app


text:
Added spacing in the container gaps

Please add it

Pls follow the  rules and create an issue before a PR

Please mention the process clearly in readme

Did you read the contributing guidelines at all and what was these PR aimed at solving?

I have mentioned in a issue. Please check

repo: DanonymousCoder/Random-quotes-generator


text:
Update sniffer.md

spelling error

Good spot! Thanks!


text:
can not log in. need help

can not log in. here is the full log file:
`C:\Users\Minhajul Islam\Downloads\cr-dl>]cd-dl login [options] [jak528@gmail.com] [rushhour2]
']cd-dl' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\Minhajul Islam\Downloads\cr-dl>cd-dl login [options] [jak528@gmail.com] [rushhour2]
'cd-dl' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\Minhajul Islam\Downloads\cr-dl>
C:\Users\Minhajul Islam\Downloads\cr-dl>cr-dl login [options] [ja***@gmail.com] [*****ur2]
CaptchaError: captcha
at validateResponse (C:\snapshot\CR-dl\node_modules\cloudscraper\index.js:273:11)
at onCloudflareResponse (C:\snapshot\CR-dl\node_modules\cloudscraper\index.js:222:5)
at onRequestResponse (C:\snapshot\CR-dl\node_modules\cloudscraper\index.js:205:5)
at Request. (C:\snapshot\CR-dl\node_modules\cloudscraper\index.js:149:7)
at Object.onceWrapper (events.js:418:26)
at Request.emit (events.js:311:20)
at Request. (C:\snapshot\CR-dl\node_modules\request\request.js:1154:10)
at Request.emit (events.js:311:20)
at Gunzip. (C:\snapshot\CR-dl\node_modules\request\request.js:1076:12)
at Object.onceWrapper (events.js:417:28)
at Gunzip.emit (events.js:323:22)
at endReadableNT (_stream_readable.js:1204:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
name: 'CaptchaError',
message: 'captcha'
}
C:\Users\Minhajul Islam\Downloads\cr-dl>`
when I try to use cookies. I got this error:
`C:\Users\Minhajul Islam\Downloads\cr-dl>cr-dl --cookies cookie.txt
error: unknown option '--cookies'
C:\Users\Minhajul Islam\Downloads\cr-dl>`

I'm having mostly the same problem.
Anyway, @MinhajBoss, you're using the --cookies parameter in the wrong way. You should use "login" before, like this:
cr-dl login --cookies cookies.txt
However, even with that, I had no luck with it. I'm still getting the "CaptchaError" despite I've used correctly the "cookies.txt" extension on Firefox and even using the absolute path to the file.
What am I doing wrong? 🤷♂

authors: GatoSoft-Software MinhajBoss

repo: DasKraken/CR-dl

license: Unlicense


text:
ra-DSPDC-1284-change-target-path

updates targetPath value to contain the filename with extension; will update all getOrElse exception throwing to error logging in a separate PR. Updated test for file ingest request generation as well.

Codecov Report

Merging #31 into master will increase coverage by 0.83%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #31      +/-   ##
==========================================
+ Coverage   46.82%   47.65%   +0.83%
==========================================
  Files           1        1
  Lines         126      128       +2
  Branches        1        1
==========================================
+ Hits           59       61       +2
  Misses         67       67

Impacted Files
Coverage Δ

...roadinstitute/monster/hca/HcaPipelineBuilder.scala
47.65% <100.00%> (+0.83%)
:arrow_up:

Continue to review full report at Codecov.

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

authors: codecov-commenter raaidbroad

repo: DataBiosphere/hca-ingest


text:
[ID-895] Prevent stale requests from signing out the user.

Jira Ticket: https://broadworkbench.atlassian.net/browse/ID-895
Summary of changes:
Prevented stale requests from signing out the user.
When a request completes with a failure and fails to load a new auth token, if the authToken used for the requests different from the current authToken, that means that a new token has already been gotten (user has signed in again) and we should not signOut the user again.
Why

This will help address the multi-login issues.

I also wonder if the store updates in loadOidcUser and reloadAuthToken are clobbering each other?

authors: nawatts sjkobori

repo: DataBiosphere/terra-ui


text:
[AD] fix AD starting two checks if using templates in labels

What does this PR do?
Don't add image names to container AD identifiers if we detect an AD template in docker labels / kube pod annotations. We don't try to parse / validate it, that's for the configresolver to do / log.
This PR is rebased on https://github.com/DataDog/datadog-agent/pull/1271 , so that one must be merged before.

Manually cherry-picked the squashed commit into master after the base branch was merged

repo: DataDog/datadog-agent


text:
Make logsagentexporter config options public

What does this PR do?

We added new config options for the logsagentexporter in this PR: https://github.com/DataDog/datadog-agent/pull/24622. The config options can't be used outside of this module because they're currently private, this PR makes them public.
Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


text:
fix(stale-branches): Update exclusions

What does this PR do
Exclusion are regex, they must be more accurate if we only want to exclude a single branch name

Motivation
Clean up

Additional Notes
Just for main it will delete ~30 branches, and much more for the 7.*.x/6.*.x pattern

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


text:
[EBPF] Add system-probe GPU monitoring module

What does this PR do?
This PR adds the system-probe module for GPU monitoring. It consists of an eBPF program that attaches to CUDA API calls using uprobes, and then processes those events and generates stats that will later be queried by the core agent check, to be added in another PR.
Motivation
EBPF-546
GPU Monitoring RFC
Describe how to test/QA your changes

Enable the gpu monitoring system-probe module adding gpu_monitoring.enabled: true to system-probe config
Run programs that use CUDA
See populated stats in the /gpu/check system-probe endpoint.

Possible Drawbacks / Trade-offs
In order to monitor shared libraries, the sharedlibraries program from USM has been modified to include the libcudart library in its checks. In theory this shouldn't affect performance noticeably (specially because libcudart is not a common library).
Additional Notes
Some PT_REGS macros have been added to deal with 6th/7th arguments in function calls from user-space.

initial review. is it possible to split this PR to multiple PRs to handle different CUDA events separately?
this is quite a big PR...

I could take out the memory monitoring, but the biggest part of the PR is all the scaffold for the eBPF probe and the event consumer, it's not going to reduce it that much.

The tests provided here do not seem to be exercising the eBPF code. I think we should atleast have a test which attempts to load all the eBPF code in the kernel so we know it clears the verifier.
If possible it would be nice to see a mock program with the probed functions, which can be triggered to exercise the eBPF code.

I added a test to load the eBPF code, I also have ready another PR with a mock program (had to change more things in the build pipeline to build the program): https://github.com/DataDog/datadog-agent/pull/29688

Given the issues with bpf_memset on stack variables that @brycekahle reported, can you change that usage. I think initializing stack variables directly should be enough. struct something s = {0};.
Map pointers and other memory still works fine with bpf_memset so those can remain as is.

Fixed, thx for the heads up!

Given the issues with bpf_memset on stack variables that @brycekahle reported, can you change that usage. I think initializing stack variables directly should be enough. struct something s = {0};.
Map pointers and other memory still works fine with bpf_memset so those can remain as is.

Actually looking at the PR again, it seems there are issues with all pointer types. So better to remove in all cases for now.

/merge

authors: gjulianm usamasaqib


text:
Add Node 14 lambda layer support

What does this PR do?
Add in Node 14 support for the layers - node 14 has been supported for a while but this construct hasn't been updated to make use of it. I tried to use node 14 earlier and it was trying to apply an undefined layer and broke all of our lambda code
Motivation
I want to add support for the Node 14 lambda layer so that I can run our lambdas on node 14
Testing Guidelines
I added a relevant test case into layers.spec.ts to check that it can recognise the Node 14 layer
Additional Notes
I had to add a file for the example lambda code as the node 14 runtime doesn't support inline code :(
Types of Changes

[ ] Bug fix
[x] New feature
[ ] Breaking change
[ ] Misc (docs, refactoring, dependency upgrade, etc.)

Check all that apply

[x] This PR's description is comprehensive
[ ] This PR contains breaking changes that are documented in the description
[ ] This PR introduces new APIs or parameters that are documented and unlikely to change in the foreseeable future
[ ] This PR impacts documentation, and it has been updated (or a ticket has been logged)
[x] This PR's changes are covered by the automated tests
[ ] This PR collects user input/sensitive content into Datadog
[ ] This PR passes the integration tests (ask a Datadog member to run the tests)

Hey @nhinsch or @zARODz11z could you take another look at this one please? Keen to get it moving

Hey @nhinsch or @zARODz11z could you take another look at this one please? Keen to get it moving

I will take another look at it, also thank you for contributing!

Thank you!

Hey @zARODz11z are there any plans to tag the new release soon so it can be used please?

@nkeers Apologies for the late reply, I am currently working on using JSII to create a Python version of the Datadog CDK. We try to hold on releases if we are close on new features however I will ask the team if we think it's time to make a minor release.

repo: DataDog/datadog-cdk-constructs


text:
Network requests tracking for 3rd parties

Is your feature request related to a problem? Please describe.
I would like Datadog to be able to automatically track the network requests for every third party libraries I have in my apps.
For some libraries, it's possible to give a custom Okhttp instance and add the required interceptors but not all libraries allow this.
This is particularly useful to get alerts when a 3rd party service is down.
Describe the solution you'd like
Ideally, something like what Firebase Performances propose:
https://firebase.google.com/docs/perf-mon/network-traces?platform=android&hl=en
Network requests are automatically tracked by just applying the plugin.
It also works on third-party libraries.

Hello @fleficher!
Indeed, we currently require manual setup for the particular OkHttpClient instance.
What Firebase Performance is doing is achieved by the bytecode injection done by the com.google.firebase:perf-plugin, which scans the code being compiled and modifies it to inject the necessary instrumentation.
We currently don't have such functionality, but we may look into it in the future.
Since it may be a big feature request for us, can I please ask you to also open a Feature Request by contacting our support and referencing this issue as well. This will allow us to have a better tracking of it.

repo: DataDog/dd-sdk-android


text:
RUMM-1708: Allow to specify custom SDK version

What does this PR do?
This change introduces a possibility to override native SDK version which is need for other SDKs using the native one, like React Native SDK.
This is achieved by having a new property _dd.sdk_version in the additionalConfiguration dictionary which is passed during the native SDK initialization.
We are going to use custom SDK version only for API v2 uploaders, API v1 uploaders are left untouched.
Review checklist (to be filled by reviewers)

[x] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[x] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[x] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #747 (f70328e) into nogorodnikov/merge-release-1.11.0-into-master (0a3c093) will decrease coverage by 0.10%.
The diff coverage is 100.00%.

@@                                 Coverage Diff                                 @@
##             nogorodnikov/merge-release-1.11.0-into-master     #747      +/-   ##
===================================================================================
- Coverage                                            90.18%   90.08%   -0.10%
- Complexity                                            1772     1778       +6
===================================================================================
  Files                                                  192      192
  Lines                                                 5967     5985      +18
  Branches                                               686      688       +2
===================================================================================
+ Hits                                                  5381     5391      +10
- Misses                                                 370      379       +9
+ Partials                                               216      215       -1

Impacted Files
Coverage Δ

.../com/datadog/android/tracing/TracingInterceptor.kt
77.88% <ø> (ø)

...oid/src/main/kotlin/com/datadog/android/Datadog.kt
78.02% <100.00%> (-0.39%)
:arrow_down:

...n/com/datadog/android/core/internal/CoreFeature.kt
96.72% <100.00%> (+0.04%)
:arrow_up:

.../android/core/internal/net/DataOkHttpUploaderV2.kt
98.51% <100.00%> (+0.02%)
:arrow_up:

...adog/android/error/internal/CrashReportsFeature.kt
100.00% <100.00%> (ø)

.../src/main/kotlin/com/datadog/android/log/Logger.kt
97.81% <100.00%> (+0.03%)
:arrow_up:

...in/com/datadog/android/log/internal/LogsFeature.kt
100.00% <100.00%> (ø)

...atadog/android/log/internal/domain/LogGenerator.kt
100.00% <100.00%> (ø)

...g/android/log/internal/net/LogsOkHttpUploaderV2.kt
100.00% <100.00%> (ø)

...android/monitoring/internal/InternalLogsFeature.kt
100.00% <100.00%> (ø)

... and 17 more


text:
Update to v1.2.0 breaking Android build

Describe what happened
Since updating to v1.2.0 we've seen Android builds failing with the below error:
[stderr] 1: Task failed with an exception.
[stderr] -----------
[stderr] * Where:
[stderr] Script '/home/expo/workingdir/build/node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle' line: 83
[stderr] * What went wrong:
[stderr] Execution failed for task ':app:uploadReleaseSourcemaps'.
[stderr] > JS bundle file doesn't exist, aborting upload.

I suspect this is related to the included changes modifying how the bundle is located.
We've mitigated this by disabling uploads for Android builds via the following configuration:
androidProguardMappingFiles: false,
androidSourcemaps: false,

Steps to reproduce the issue:

Update to v.1.2.0
Ensure Android uploads are enabled
Run a build with Gradle 7.5.1

Describe what you expected:

A successful build with bundle/source maps uploaded to DataDog

Additional context
Versions: Expo SDK 47, React Native 0.70

Version of the SDK
package.json
Podfile and Podfile.lock
android/build.gradle and android/app/build.gradle

Hi @euc-callum,
Thanks for reaching out!
Unfortunately we're not able to reproduce this on our end with a brand new Expo 47 project and gradle 7.5.1.
Could you include the following information to help us troubleshoot the issue?

the content of your android/app/build.gradle file
the list of expo plugins you are applying

In the log of your Android build, there should be a few lines that look like this, not far from the error:
info Writing bundle output to:, /Users/me/apps/expo-47/android/app/build/generated/assets/react/release/index.android.bundle
info Writing sourcemap output to:, /Users/me/apps/expo-47/android/app/build/generated/sourcemaps/react/release/index.android.bundle.map
info Done writing bundle output
info Done writing sourcemap output

Could you copy the build log from these lines to see if anything is moving the bundle file somewhere?
And finally, if you can reproduce the error when building locally (by running npx expo prebuild then npx expo run:android --variant release), could you look at the content of your android/app/build/generated directory and see if the bundle is at the expected location (should be android/app/build/generated/assets/react/release/index.android.bundle for your RN version).
Thanks a lot!
If you want to share more easily outputs, feel free to reach out to our support team in parallel, mentioning this github issue.

Hi @louiszawadzki, thanks for the swift response!
The logs from the Android build are:
info Writing bundle output to:, /home/expo/workingdir/build/android/app/build/generated/assets/react/release/index.android.bundle
info Writing sourcemap output to:, /home/expo/workingdir/build/android/app/build/intermediates/sourcemaps/react/release/index.android.bundle.packager.map
info Done writing bundle output
info Done writing sourcemap output

build.gradle
plugins {
    id("com.datadoghq.dd-sdk-android-gradle-plugin") version "1.5.+"
}

datadog {
    checkProjectDependencies = "none"
}
apply plugin: "com.android.application"

import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation. If none specified and
 *   // "index.android.js" exists, it will be used. Otherwise "index.js" is
 *   // default. Can be overridden with ENTRY_FILE environment variable.
 *   entryFile: "index.android.js",
 *
 *   // https://reactnative.dev/docs/performance#enable-the-ram-format
 *   bundleCommand: "ram-bundle",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // whether to disable dev mode in custom build variants (by default only disabled in release)
 *   // for example: to disable dev mode in the staging build type (if configured)
 *   devDisabledInStaging: true,
 *   // The configuration property can be in the following formats
 *   //         'devDisabledIn${productFlavor}${buildType}'
 *   //         'devDisabledIn${buildType}'
 *
 *   // the root of your project, i.e. where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"],
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()

def reactNativeRoot = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath()

project.ext.react = [
    entryFile: ["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android"].execute(null, rootDir).text.trim(),
    enableHermes: (findProperty('expo.jsEngine') ?: "jsc") == "hermes",
    hermesCommand: new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc",
    cliPath: "${reactNativeRoot}/cli.js",
    composeSourceMapsPath: "${reactNativeRoot}/scripts/compose-source-maps.js",
]

apply from: new File(reactNativeRoot, "react.gradle")
apply from: "/Users/callum/Documents/Data/Git/mobile/node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()

/**
 * The preferred build flavor of JavaScriptCore.
 *
 * For example, to use the international variant, you can use:
 * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
 *
 * The international variant includes ICU i18n library and necessary data
 * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
 * give correct results when using with locales other than en-US.  Note that
 * this variant is about 6MiB larger per architecture than default.
 */
def jscFlavor = 'org.webkit:android-jsc:+'

/**
 * Whether to enable the Hermes VM.
 *
 * This should be set on project.ext.react and that value will be read here. If it is not set
 * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
 * and the benefits of using Hermes will therefore be sharply reduced.
 */
def enableHermes = project.ext.react.get("enableHermes", false);

/**
 * Architectures to build native code for.
 */
def reactNativeArchitectures() {
    def value = project.getProperties().get("reactNativeArchitectures")
    return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
}

android {
    ndkVersion rootProject.ext.ndkVersion

    compileSdkVersion rootProject.ext.compileSdkVersion

    defaultConfig {
        applicationId 'vc.eucalyptus.juniper.dev'
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 83
        versionName "1.0.7"
        buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()

        if (isNewArchitectureEnabled()) {
            // We configure the CMake build only if you decide to opt-in for the New Architecture.
            externalNativeBuild {
                cmake {
                    arguments "-DPROJECT_BUILD_DIR=$buildDir",
                        "-DREACT_ANDROID_DIR=${reactNativeRoot}/ReactAndroid",
                        "-DREACT_ANDROID_BUILD_DIR=${reactNativeRoot}/ReactAndroid/build",
                        "-DNODE_MODULES_DIR=$rootDir/../node_modules",
                        "-DANDROID_STL=c++_shared"
                }
            }
            if (!enableSeparateBuildPerCPUArchitecture) {
                ndk {
                    abiFilters (*reactNativeArchitectures())
                }
            }
        }
    }

    if (isNewArchitectureEnabled()) {
        // We configure the CMake build only if you decide to opt-in for the New Architecture.
        externalNativeBuild {
            cmake {
                path "$projectDir/src/main/jni/CMakeLists.txt"
            }
        }
        def reactAndroidProjectDir = project(':ReactAndroid').projectDir
        def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
            dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
            from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
            into("$buildDir/react-ndk/exported")
        }
        def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
            dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
            from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
            into("$buildDir/react-ndk/exported")
        }
        afterEvaluate {
            // If you wish to add a custom TurboModule or component locally,
            // you should uncomment this line.
            // preBuild.dependsOn("generateCodegenArtifactsFromSchema")
            preDebugBuild.dependsOn(packageReactNdkDebugLibs)
            preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)

            // Due to a bug inside AGP, we have to explicitly set a dependency
            // between configureCMakeDebug* tasks and the preBuild tasks.
            // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
            configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild)
            configureCMakeDebug.dependsOn(preDebugBuild)
            reactNativeArchitectures().each { architecture ->
                tasks.findByName("configureCMakeDebug[${architecture}]")?.configure {
                    dependsOn("preDebugBuild")
                }
                tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure {
                    dependsOn("preReleaseBuild")
                }
            }
        }
    }

    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include (*reactNativeArchitectures())
        }
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            // Caution! In production, you need to generate your own keystore file.
            // see https://reactnative.dev/docs/signed-apk-android.
            signingConfig signingConfigs.debug
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }

    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        if (project.tasks.findByName("minify${variant.name.capitalize()}WithR8")) {
            tasks["minify${variant.name.capitalize()}WithR8"].finalizedBy { tasks["uploadMapping${variant.name.capitalize()}"] }
        }

        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // https://developer.android.com/studio/build/configure-apk-splits.html
            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }

        }
    }
}

// Apply static values from `gradle.properties` to the `android.packagingOptions`
// Accepts values in comma delimited lists, example:
// android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini
["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop ->
    // Split option: 'foo,bar' -> ['foo', 'bar']
    def options = (findProperty("android.packagingOptions.$prop") ?: "").split(",");
    // Trim all elements in place.
    for (i in 0..<options.size()) options[i] = options[i].trim();
    // `[] - ""` is essentially `[""].filter(Boolean)` removing all empty strings.
    options -= ""

    if (options.length > 0) {
        println "android.packagingOptions.$prop += $options ($options.length)"
        // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**'
        options.each {
            android.packagingOptions[prop] += it
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])

    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:+"  // From node_modules

    def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true";
    def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true";
    def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true";
    def frescoVersion = rootProject.ext.frescoVersion

    // If your app supports Android versions before Ice Cream Sandwich (API level 14)
    if (isGifEnabled || isWebpEnabled) {
        implementation "com.facebook.fresco:fresco:${frescoVersion}"
        implementation "com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}"
    }

    if (isGifEnabled) {
        // For animated gif support
        implementation "com.facebook.fresco:animated-gif:${frescoVersion}"
    }

    if (isWebpEnabled) {
        // For webp support
        implementation "com.facebook.fresco:webpsupport:${frescoVersion}"
        if (isWebpAnimatedEnabled) {
            // Animated webp support
            implementation "com.facebook.fresco:animated-webp:${frescoVersion}"
        }
    }

    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.fbjni'
    }
    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
        exclude group:'com.squareup.okhttp3', module:'okhttp'
    }
    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

    if (enableHermes) {
        //noinspection GradleDynamicVersion
        implementation("com.facebook.react:hermes-engine:+") { // From node_modules
            exclude group:'com.facebook.fbjni'
        }
    } else {
        implementation jscFlavor
    }
}

if (isNewArchitectureEnabled()) {
    // If new architecture is enabled, we let you build RN from source
    // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
    // This will be applied to all the imported transtitive dependency.
    configurations.all {
        resolutionStrategy.dependencySubstitution {
            substitute(module("com.facebook.react:react-native"))
                    .using(project(":ReactAndroid"))
                    .because("On New Architecture we're building React Native from source")
            substitute(module("com.facebook.react:hermes-engine"))
                    .using(project(":ReactAndroid:hermes-engine"))
                    .because("On New Architecture we're building Hermes from source")
        }
    }
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.implementation
    into 'libs'
}

apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle");
applyNativeModulesAppBuildGradle(project)

def isNewArchitectureEnabled() {
    // To opt-in for the New Architecture, you can either:
    // - Set `newArchEnabled` to true inside the `gradle.properties` file
    // - Invoke gradle with `-newArchEnabled=true`
    // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
    return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
}

Expo Plugins

expo-asset
expo-community-flipper
expo-constants
expo-datadog
expo-dev-client
expo-font
expo-haptics
expo-linking
expo-splash-screen
expo-status-bar
expo-system-ui
expo-web-browser

Running npx expo run:android --variant release succeeds locally and places the bundle at the expected location:
android/app/build/generated/assets/react/release/index.android.bundle
Running npx eas build --profile development --platform android fails on expo.dev, with the logs mentioned previously.

We have a similar problem, it seems in the datadog-sourcemaps.gradle file targetName and targetPath are a bit mixed up. We resolved it by applying this patch:
diff --git a/node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle b/node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle
index c51dc54..080220b 100644
--- a/node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle
+++ b/node_modules/@datadog/mobile-react-native/datadog-sourcemaps.gradle
@@ -30,7 +30,7 @@ afterEvaluate {
         def targetName = variant.name.capitalize()
         def targetPath = variant.dirName

-        def reactConfig = getReactConfig(buildDir, targetName)
+        def reactConfig = getReactConfig(buildDir, variant)
         def reactRoot = file(reactConfig.root)

         def bundleTask = tasks.findByName(reactConfig.bundleTaskName)
@@ -122,8 +122,10 @@ private def getBundleFileResolver(String[] jsBundleDirs, String bundleAssetName)
  * - config was in "project.react" and is now in "project.extensions.react"
  * - accessing parameters values requires calling a getter
  */
-private def getReactConfig(File buildDir, String targetName) {
+private def getReactConfig(File buildDir, variant) {
     def reactConfig = [:]
+    def targetName = variant.name.capitalize()
+    def targetPath = variant.dirName

     if (project.extensions.findByName("react")) {
         // From RN 0.71
@@ -140,14 +142,14 @@ private def getReactConfig(File buildDir, String targetName) {
         // Legacy way, before RN 0.71
         def bundleAssetName = project.react.bundleAssetName ?: "index.android.bundle"
         reactConfig['bundleTaskName'] = "bundle${targetName}JsAndAssets"
-        reactConfig['bundleFileResolver'] = getBundleFileResolver(["$buildDir/generated/assets/react/${targetName}"] as String[], bundleAssetName)
+        reactConfig['bundleFileResolver'] = getBundleFileResolver(["$buildDir/generated/assets/react/${targetPath}"] as String[], bundleAssetName)
         reactConfig['bundleAssetName'] = bundleAssetName
         reactConfig['root'] = project.react.root ?: "../../"
     } else {
         // We assume this cannot happen with RN >= 0.71, so we use the legacy default values
         def bundleAssetName = "index.android.bundle"
         reactConfig['bundleTaskName'] = "bundle${targetName}JsAndAssets"
-        reactConfig['bundleFileResolver'] = getBundleFileResolver(["$buildDir/generated/assets/react/${targetName}"] as String[], bundleAssetName)
+        reactConfig['bundleFileResolver'] = getBundleFileResolver(["$buildDir/generated/assets/react/${targetPath}"] as String[], bundleAssetName)
         reactConfig['bundleAssetName'] = bundleAssetName
         reactConfig['root'] = "../../"
     }

Thanks a lot for your insight @jimbofoo!
It looks like the previous code passed all checks on Mac filesystems (which is case-insensitive) but breaks on Linux systems (which is case-sensitive).
We'll fix this issue in the next patch release.

Thanks, this will fix it for us! Please note it's not just about case-sensitivity, targetPath can be something quite different than targetName with different flavors and variants, for example:
targetName can be ProductionFooRelease and targetPath can then be productionFoo/release

Hi,
This issue should be fixed in the new 1.2.1 release.
I'm going to mark the issue as closed, please feel free to reopen the issue if you encounter any trouble fixing it :)

This has resolved our build failures, thanks!

authors: euc-callum jimbofoo louiszawadzki

repo: DataDog/dd-sdk-reactnative


text:
Website is out of sync with doc in repo

Website missing "Service Checks" heading and description.
Does the site not source it's docs from here?
https://docs.datadoghq.com/integrations/tls/

https://github.com/DataDog/integrations-core/blob/master/tls/README.md

hey @tonglil - this is a great catch! it seems the docs site requires a very specific order for this content in order to format correctly. Fixed in #4366 - thanks for letting us know!

authors: apigirl tonglil

repo: DataDog/integrations-core


text:
[NDM] Add cyberpower-pdu profile

Add profile for cyberpower-pdu

TODO: change cps to cyberpower


text:
Extend messages from dependency validation.

What does this PR do?

Say which ddev command to run to fix particular type of error.
Report success at the end.

Motivation

Improving user experience a bit in light of the upcoming release.
Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Changelog entries must be created for modifications to shipped code
[ ] Add the qa/skip-qa label if the PR doesn't need to be tested during QA.

I updated the changelog

authors: FlorentClarret iliakur


text:
docs: use reno for release notes management

Fixes #34

Codecov Report

Merging #68 (213dc4c) into master (4e08c93) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #68   +/-   ##
=======================================
  Coverage   92.62%   92.62%
=======================================
  Files           5        5
  Lines         461      461
=======================================
  Hits          427      427
  Misses         34       34

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 4e08c93...213dc4c. Read the comment docs.

don't forget to enforce Changelog / Validate changelog in PR merging options

I'm in favour of naming the label "no-changelog" vs "changelog/no-changelog" 😄

authors: Kyle-Verhoog brettlangdon codecov-io jd

repo: DataDog/riot


text:
Try 3.9 for parametric tests

Motivation

Changes

Workflow

⚠ Create your PR as draft ⚠
Work on you PR until the CI passes (if something not related to your task is failing, you can ignore it)
Mark it as ready for review

Test logic is modified? -> Get a review from RFC owner. We're working on refining the codeowners file quickly.
Framework is modified, or non obvious usage of it -> get a review from R&P team

:rocket: Once your PR is reviewed, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist

[ ] If PR title starts with [<language>], double-check that only <language> is impacted by the change
[ ] No system-tests internal is modified. Otherwise, I have the approval from R&P team
[ ] CI is green, or failing jobs are not related to this change (and you are 100% sure about this statement)
[ ] A docker base image is modified?

[ ] the relevant build-XXX-image label is present

[ ] A scenario is added (or removed)?

[ ] Get a review from R&P team

also failing on 3.9 😭

repo: DataDog/system-tests


text:
Add support for search attributes

What changed?
This adds support for search attributes:
Defines two new startup flags to pre-register search attributes:  search-attributes-type& search-attributes-key'. If the user gives values for these flags (multiple values must be separated by a comma), then temporalite will initialize the custom search attributes as defined in the user input. In addition to this, we also give the ability to pre-register search attributes on a temporalite TestServer`.
How did you test it?
Tests are included.

While I see that this adds attributes to the cluster metadata, do search attributes actually work with this? I was under the impression elastic search was required. Can workflow.UpsertSearchAttributes be used here?

While I see that this adds attributes to the cluster metadata, do search attributes actually work with this? I was under the impression elastic search was required. Can workflow.UpsertSearchAttributes be used here?

Hi! Yes search attributes "work" without ElasticSearch. You can use:
`workflowUpsertSearchAttributes' or even:
client.StartWorkflowOptions{
			TaskQueue:        "hello_world",
			SearchAttributes: map[string]interface{}{"test": "test-value"},
		},

And they will run just fine. I am far from an expert but my tests show that you only need to pre-register the search attribute name and type before working with them. In addition to that, searching by search attributes will fail.

Codecov Report

Merging #28 (27bd997) into main (701f0b2) will increase coverage by 1.92%.
The diff coverage is 54.07%.

@@            Coverage Diff             @@
##             main      #28      +/-   ##
==========================================
+ Coverage   41.75%   43.68%   +1.92%
==========================================
  Files          11       12       +1
  Lines         728      863     +135
==========================================
+ Hits          304      377      +73
- Misses        402      456      +54
- Partials       22       30       +8

Impacted Files
Coverage Δ

cmd/temporalite/main.go
1.11% <0.00%> (-0.26%)
:arrow_down:

internal/liteconfig/config.go
81.81% <ø> (ø)

server.go
57.14% <33.33%> (-2.62%)
:arrow_down:

dbutil.go
73.49% <73.49%> (ø)

options.go
47.27% <100.00%> (+4.13%)
:arrow_up:

temporaltest/options.go
100.00% <100.00%> (ø)

temporaltest/server.go
79.48% <100.00%> (+0.26%)
:arrow_up:

Continue to review full report at Codecov.

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

authors: MarcosCela codecov-commenter cretz

repo: DataDog/temporalite


text:
Communication section seems unfinished

This section has a few TODOs, questions and notes. It feels unfinished, especially compared to the content above.
How would people feel about separating out communication and validation as a separate document and then focusing on getting the profile structure definition finished and released before coming back to communication and validation?

I like splitting them up; I think we're likely to end up with both finished (the core of the communication section is pretty much done, since what it's defining is minimal; the TODOs are just odds and ends), but it definitely makes sense organizationally.

(Also, I've done a preliminary split)

repo: DataInteroperability/xapi-profiles


text:
org.xml.sax.SAXException sometimes Happens on ResourceMapSubprocessor

Sometime I saw this error
org.xml.sax.SAXException: FWK005 parse may not be called while parsing.
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
	at org.dataone.cn.indexer.parser.ResourceMapSubprocessor.processDocument(ResourceMapSubprocessor.java:133)
	at org.dataone.cn.indexer.SolrIndex.process(SolrIndex.java:242)
	at org.dataone.cn.indexer.SolrIndex.insert(SolrIndex.java:401)
	at org.dataone.cn.indexer.SolrIndex.update(SolrIndex.java:498)
	at org.dataone.cn.indexer.IndexWorker.indexOjbect(IndexWorker.java:356)
	at org.dataone.cn.indexer.IndexWorker.access$200(IndexWorker.java:70)
	at org.dataone.cn.indexer.IndexWorker$1$1.run(IndexWorker.java:316)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

According to the google search result, the DocumentBuilderFactory class is not thread-safe. It shouldn't be a class field.

The class of ResourceMapDataSource seems to have the same issue.

Make those variables local.

repo: DataONEorg/dataone-indexer


text:
Cleaned up properties descriptions

Renamed some properties
Cleaned up categories
Cleaned up tags
Renamed some classes to improve clarity

This needs to go into release-3.0

Code changes are made

Merged to 3.0

authors: ilooner tweise

repo: DataTorrent/Malhar


text:
Encrypt everything (t-shirt)

Encrypt everything, not just PII (at rest and in transit) (XL)
T-Shirt estimate was made on 05/31/19.

S: < 1 pair / .5 sprint
M: 1 pair / 1 sprint
L: 2 pairs / 1 sprint
XL: way >

07-02-2019 Migrated from SMRT-1324

@rob-h-m
This is specific to Columbus and should move to SmartColumbusOS

Closing, as this was a placeholder card for grant forecasting purposes.

authors: jdenen jessicapfoster rob-h-m

repo: Datastillery/smartcitiesdata


text:
Loging and send to APP BE

• Add the score per miner
• gather the logs per miner
• send logs to App BE

• Add job id per miner
• Update the logs(even though failed)

repo: Datura-ai/compute-subnet


text:
bwrap bind /bin hides system's git on /usr merge distributions

On distributions with UsrMerge like Arch Linux, /bin is a symlink to /usr/bin. If git is already installed, nix-portable will find it at /usr/bin/git and sets needGit to false. Then it proceeds to bind ${busybox}/bin to /bin, which actually binds to /usr/bin and hides the host's git binary. Executing any nix command that requires git now results in:
executing 'git': No such file or directory

There are multiple ways to fix, maybe just don't bind ${busybox}/bin but prepends it to PATH? Or perhaps it doesn't even need to bring its own busybox, just assume the system's coreutils, tar, xz as dependencies which should be available on almost every system.

Oh, busybox should definitely not be mounted to /bin.
I would really like to not depend on the system providing tar  and xz.
Maybe it would be best to just append busybox to PATH? I guess there shouldn't be any situations where this breaks anything.

I think not binding busybox and just prepending its store path to PATH is the easiest fix.

Should be fixed on master. Could you check again?

Works fine here now!

authors: DavHau PkmX

repo: DavHau/nix-portable


text:
Hide Plotly Logo

Hey,
Thanks a ton for the amazing wrapper, has made my first time using vue (and plotly) an enjoyable experience. I was wondering how to hide the plotly logo in the modebar using these instructions from within your wrapper. Any help is welcomed,
Thanks again.

Thanks.
Using props displaylogo="false" should work.

Sorry for the lapse in reply, got a little busy. Thanks a bunch, it worked great.

authors: David-Desmaisons Kyxsune

repo: David-Desmaisons/vue-plotly


text:
Is the order of rendering macro "items" consistent?

I have a "toggleable" li![]. When clicked it renders a "highlighted" component, when clicked again it renders the normal component.
However when clicking to go back to normal the items are rendered in opposite order.
I.e. the below initially renders a_string before the span!.
li![
    class![C.my_1, C.py_1, C.px_2, C.rounded],
    a_string , span![class![C.mx_4, C.italic, C.font_bold],"foo"],
    simple_ev(Ev::Click, Msg::ImprovementListing(Include(position)))
]

on re-rendering after clicking again renders the span! before a_string.
Funnily enough if I put a_string in its own span![] then everything seems to work okay.
Not sure if this is a bug or something I am not fully understanding.
By the way, awesome, awesome framework!

This isn't intended behavior; rendering bug.

Can you post enough code to reproduce this standalone? Was unable to by modifying the quickstart's view fn to this?
fn view(model: &Model) -> impl View<Msg> {
    vec![
    if model.val < 3 || model.val > 5
    {
        li![
            class!["A", "B", "C"],
            "line1" , span![class!["D", "E"],"foo"],
            // simple_ev(Ev::Click, Msg::ImprovementListing(Include(position)))
            simple_ev(Ev::Click, Msg::Increment)
        ]
    } else { empty![] },

        button![
            simple_ev(Ev::Click, Msg::Increment),
            format!("Hello, World × {}", model.val)
        ]
    ]
}

No problem, its embedded in a large app at the moment so ill chuck stuff out and get a minimal example working shortly.

I'm having this issue as well and was able to eventually track it down to the use of text nodes that are within the same type of containing element. Here's a fully working example to repro:
#[macro_use]
extern crate seed;
use seed::prelude::*;

#[derive(Clone)]
enum Page {
    Home,
    Foo,
}

struct Model {
    page: Page,
}

impl Default for Model {
    fn default() -> Self {
        Self { page: Page::Home }
    }
}

#[derive(Clone)]
enum Msg {
    ShowPage(Page),
}

fn update(msg: Msg, model: &mut Model, _: &mut impl Orders<Msg>) {
    match msg {
        Msg::ShowPage(page) => model.page = page,
    }
}

// The first render of all views are correct.

// On the second and all subsequent renders, "text node" will be placed at a
// position corresponding to the number of child nodes that are present in the
// previous view. In this example, view_home contains 4 child nodes, so it will
// be placed as the fourth element when view_foo is re-rendered.
// This causes subsequent renders to be rendered as such:
//   div
//     div 1
//     div 2
//     div 3
//     text node
//     div 4
fn view_foo() -> Node<Msg> {
    p![
        div!["foo: div 1"],
        "text node",
        div!["foo: div 2"],
        div!["foo: div 3"],
        div!["foo: div 4"],
    ]
}

// When view_home is rendered following view_foo, the element that corresponds
// to the position of "text node" in the initial rendering of view_foo will be
// placed as the last sibling element.
// This causes subsequent renders to be ordered as:
//    div
//      a
//      div 2
//      div 3
//      div 1
fn view_home() -> Node<Msg> {
    p![
        a![attrs! { At::Href => "/foo" }, "foo"],
        div!["home: div 1"],
        div!["home: div 2"],
        div!["home: div 3"],
    ]
}

fn view(model: &Model) -> impl View<Msg> {
    match model.page {
        Page::Home => view_home(),
        Page::Foo => view_foo(),
    }
}

fn routes(url: seed::Url) -> Option<Msg> {
    Some(match url.path.get(0).map(String::as_str) {
        Some("foo") => Msg::ShowPage(Page::Foo),
        _ => Msg::ShowPage(Page::Home),
    })
}

#[wasm_bindgen(start)]
pub fn render() {
    seed::App::build(|_, _| Model::default(), update, view)
        .routes(routes)
        .finish()
        .run();
}

It appears that text nodes are being placed at the end of all siblings, and they are being positioned based on the number of siblings in the previous render.
However, this only occurs when the containing element is of the same type (a div in this case). If the parent element is changed to something like a p in only one of the view functions in the example, then the issue disappears. If no text nodes are used at all, then rendering is consistent.
The errant behavior can be triggered with or without the use of the browser history buttons.
Thanks for all the work on this framework. It composes really well and feels very Rusty :)

Thank you for the detailed breakdown and diagnosis! I apologize for taking so long to address this. I've modified your example to allow a button to re-render the foo page:
#[macro_use]
extern crate seed;
use seed::prelude::*;

#[derive(Clone)]
enum Page {
    Home,
    Foo,
}

struct Model {
    page: Page,
    val: u32,
}

impl Default for Model {
    fn default() -> Self {
        Self { page: Page::Home, val: 0 }
    }
}

#[derive(Clone)]
enum Msg {
    ShowPage(Page),
    Increment,
}

fn update(msg: Msg, model: &mut Model, _: &mut impl Orders<Msg>) {
    match msg {
        Msg::ShowPage(page) => model.page = page,
        Msg::Increment => model.val += 1,
    }
}

// The first render of all views are correct.

// On the second and all subsequent renders, "text node" will be placed at a
// position corresponding to the number of child nodes that are present in the
// previous view. In this example, view_home contains 4 child nodes, so it will
// be placed as the fourth element when view_foo is re-rendered.
// This causes subsequent renders to be rendered as such:
//   div
//     div 1
//     div 2
//     div 3
//     text node
//     div 4
fn view_foo(val: u32) -> Node<Msg> {
    p![
        div!["clickme", simple_ev(Ev::Click, Msg::Increment)],
        div!["foo: div 1"],
        "text node",
        div!["foo: div 2"],
        div!["foo: div 3"],
        div![val.to_string()],
    ]
}

// When view_home is rendered following view_foo, the element that corresponds
// to the position of "text node" in the initial rendering of view_foo will be
// placed as the last sibling element.
// This causes subsequent renders to be ordered as:
//    div
//      a
//      div 2
//      div 3
//      div 1
fn view_home() -> Node<Msg> {
    p![
        a![attrs! { At::Href => "/foo" }, "foo"],
        div!["home: div 1"],
        div!["home: div 2"],
        div!["home: div 3"],
    ]
}

fn view(model: &Model) -> impl View<Msg> {
    match model.page {
        Page::Home => view_home(),
        Page::Foo => view_foo(model.val),
    }
}

fn routes(url: seed::Url) -> Option<Msg> {
    Some(match url.path.get(0).map(String::as_str) {
        Some("foo") => Msg::ShowPage(Page::Foo),
        _ => Msg::ShowPage(Page::Home),
    })
}

#[wasm_bindgen(start)]
pub fn render() {
    seed::App::build(|_, _| Init::new(Model::default()), update, view)
        .routes(routes)
        .finish()
        .run();
}

Clicking the button should trigger the bug, right? I'm unable to get the elements to render out of order. What should I do to trigger the re-render that breaks the order? Thank you.

Does @AlterionX 's fix work for you? Merged, but not released.

I had similar problems with markdown (raw!) today. Could you test https://github.com/David-OConnor/seed/pull/254 with your projects / examples, please?

Tested #254 with my project and rendering is now behaving as expected. Looks like this is fixed. Thanks!

authors: David-OConnor MartinKavik jayson-lennon rebo

repo: David-OConnor/seed


text:
DLRadiobutton deprecated in swift 4

The import of the Library indicates it is deprecated on swift 4 iOS 11, Xcode 9.
Kindly help

Just tried in Xcode 9. Didn't get any prompts for DLRadioButton is deprecated. I updated the swift example to use Swift 4, it works perfectly :)

authors: DavydLiu stonekase

repo: DavydLiu/DLRadioButton


text:
#2065 QA - FAQ Content for DFI Loan Payback

Related: #2065
Acceptance Criteria: check FAQ content — DFI payment for DUSD loans
Android:

[x] Loans > Select Vault > Loans tab > in DUSD card, PAYBACK LOAN > DFI > ? Read more
[x] Settings > About > Knowledge base > Loans > Check Why is there a 1% fee when paying DUSD loans with DFI?

Translation:

[x] DE
[ ] FR
[ ] ZHT
[ ] ZHS

iOS:

[ ] Loans > Select Vault > Loans tab > in DUSD card, PAYBACK LOAN > DFI > ? Read more
[ ] Settings > About > Knowledge base > Loans > Check Why is there a 1% fee when paying DUSD loans with DFI?

Translation:

[ ] DE
[ ] FR
[ ] ZHT
[ ] ZHS

Android
– UI for DE & FR version:
Actual:

Blue line: Not aligned
Orange line: Missing .

Expected:

A 1% fee is imposed when you pay with DFI. to be aligned with ? Read more

Android
– UI for ZHS & ZHT version:
Actual:

FAQ still in EN

Expected:

FAQ to be in ZHT & ZHS respectively

repo: DeFiCh/wallet


text:
Send – UI - x and qr-code buttons misalign

What UI/UX improvements would you like to be implemented:
Actual:
• In Send screen, after pasting an address to send, x and qr-code buttons becomes misaligned
Expected:
• after pasting an address to send, x and qr-code buttons should remain in its original position

Why is this needed:
• Inconsistency in UI
Which component/screens does this concern?:
iOS & Android:
• Send
Anything else we need to know?:

Acceptance Criteria: x and qr-code buttons should remain in its original position
Android:

[ ] Send > paste address > x and qr-code buttons should remain in its original position

iOS:

[ ] Send > paste address > x and qr-code buttons should remain in its original position

authors: izzycsy thedoublejay


text:
🛑 UK Datacentre is down

In 5b60274, UK Datacentre (http://www.thehostingfolks.org) was down:

HTTP code: 403
Response time: 730 ms

Resolved: UK Datacentre is back up in 63b41aa after 16 minutes.

repo: Deathbyteacup/thfstatuspage


text:
fix(@vtmn/vue): typescript build init

Pull Request checklist
🚨 Please review the guidelines for contributing to this repository.

[x] Make sure you are requesting to pull a topic/feature/bugfix branch. Don't request your main!
[x] Check the commit's or even all commits' message styles matches our requested structure.
[x] Check your code additions will fail neither code linting checks nor unit test.
[x] Check PR name, it must follow the https://www.conventionalcommits.org pattern
[x] If it's a new component in CSS, ask for design review

Description
Following suggestions from @Wizyma, thanks a lot!
Close #440
Does this introduce a breaking change?

No

Other information

❤ Thank you!

hey @lauthieb
So after some investigation (and getting to know vue in the same time ahah :p) i reviewed a bit the config, and for the code itself i looked on how others vue3 lib were built.
if we look at Equal for example we can see that overall our conf looks the same, but the components how they are built, how the shim is writen and how the index.ts looks is quite difference from ours, so i tried going with this approach and it seems to work quite well, i still have some issues with the typings (it seems to be a real pain point :D)
And as for storybook it was a cache issue and we need to import the css file from the vue lib in storybook : import '@vtmn/vue/dist/style.css'
https://user-images.githubusercontent.com/29448654/137215875-8b0c0eb0-289e-425e-a83a-63b9d9cd9cd9.mov
So to summarize components declarations now look like
import { App as Application } from 'vue';
import YOUR_COMPONENT from './YOUR_COMPONENT.vue';

YOUR_COMPONENT.install = (Vue: Application) => {
  Vue.component(YOUR_COMPONENT.name, YOUR_COMPONENT);
};

export default YOUR_COMPONENT;

shim-vue.d.ts :
declare module '*.vue' {
  import { defineComponent } from 'vue'
  const Component: ReturnType<typeof defineComponent>
  export default Component
}

index.ts
/* eslint-disable */
import { App as Application, Plugin } from 'vue';
import * as components from './components/index';

function install(Vue: Application) {
  // tslint:disable-next-line: forin
  for (const component in components) {
    // @ts-expect-error
    Vue.component(components[component].name, components[component])
  }
}

export default install;

export { default as VtmnButton } from './components/VtmnButton'
export { default as VtmnCheckbox } from './components/VtmnCheckbox'
export { default as VtmnLink } from './components/VtmnLink'
export { default as VtmnRadioButton } from './components/VtmnRadioButton'
export { default as VtmnTextInput } from './components/VtmnTextInput'
export { default as VtmnToggle } from './components/VtmnToggle'

the vite config
import typescript from '@rollup/plugin-typescript'; // new import added

module.exports = defineConfig({
  plugins: [
    ...plugions
    typescript({ sourceMap: true })
  ],
  build: {
     ...
  },
});

I still need to spend more time on the types part but thats a good step forward on improving the tooling !!

hey @lauthieb  !
yep it should ! And do not forget to launch storybook with --no-manager-cache  and to add the styles import to it !

Hmm... Is it possible to have the same behavior as we already have with @vtmn/react, the fact that we doesn't need to explicitly import CSS styles. They are scoped inside each components.

I will see what i can do to not break the current behavior !

Hi @Wizyma, thanks a lot for your suggestions! I will keep your solution even if there are some cons.
I've just made your propositions and it works. Can you please review my work by seeing the new README.md also?
You can test easily by launching: yarn start:vue and try to modify a Vue story and some Vue sources.
Thanks!

authors: Wizyma lauthieb

repo: Decathlon/vitamin-web


text:
sasori card

please consider this pr for hackoctober fest and merge it

please merge it bro if any problem in card then tell me so that i can solve that problem

repo: DecodersCommunity/animepedia


text:
"inappropriate ioctl for device" for Logitech USB Receiver

When configuring mouse forward for my Logitech MX Vertical (key 0x115, sym mouse 9), it fails to grab or output the correct button event.
Snippet of input-event-codes.h:
#define BTN_FORWARD             0x115

ptt-fix output:
Apr 21 16:45:36.628 WARN ignoring device
        device=/dev/input/by-id/usb-Logitech_USB_Receiver-if02-mouse
        reason="failed to open"
        err="get device name: inappropriate ioctl for device"

If I've configured this incorrectly, feel free to let me know.
If the ioctl request itself is the issue I can go ahead and grab strace output so we can pick apart the file descriptor.

Are there any other devices under /dev/input that the mouse could correspond to? A number of physical devices show up as several different devices under there sometimes, and usually only one or two will work. For example, my mouse shows up as all four of
usb-04d9_USB_Laser_Game_Mouse-event-if02
usb-04d9_USB_Laser_Game_Mouse-event-mouse
usb-04d9_USB_Laser_Game_Mouse-if01-event-kbd
usb-04d9_USB_Laser_Game_Mouse-mouse

but usb-04d9_USB_Laser_Game_Mouse-mouse doesn't work as only the others support the necessary ioctl produce the events that ptt-fix looks for. The reason that there are so many is because, for example, usb-04d9_USB_Laser_Game_Mouse-if01-event-kbd is the one that yields events that correspond to keyboard keys that have been mapped to mouse buttons.

As there's been no response for several weeks now, I'm going to assume that you managed to fix the issue and close this. Feel free to comment again if that is not the case.

authors: DeedleFake MirandaStreeter

repo: DeedleFake/ptt-fix