Add support for logging

You can set logger when configuring a particular app like this:
final logger = Logger('x');
logger.root.level = Level.ALL;
final app = App(AppConfiguration(logLevel: LogLevel.all, logger):

You can specify the default logger to use for any app like this:
final logger = Logger('x');
logger.root.level = Level.ALL;
App.defaultLogger = logger;

Note that there are two log levels involved. The LogLevel used by realm core, and the Level used by the standard logging package. For a trace message to appear on the loggers onRecord stream, both levels must be passed. The realm-core level is fixed for the app when it is first created, using the logLevel argument to the AppConfiguration constructor. The level used by the Logger can change over time.
If nothing is specified, the default default logger traces everything to the console, but by default realm-core only traces errors (or worse).

Just a reminder to change default logLevel from error to info.
/// Instantiates a new [AppConfiguration] with the specified appId.
  AppConfiguration(
    this.appId, {
    Uri? baseUrl,
    Directory? baseFilePath,
    this.defaultRequestTimeout = const Duration(seconds: 60),
    this.localAppName,
    this.localAppVersion,
    this.metadataEncryptionKey,
    this.metadataPersistenceMode = MetadataPersistenceMode.plaintext,
    this.logLevel = LogLevel.info,
    this.maxConnectionTimeout = const Duration(minutes: 2),
    HttpClient? httpClient,
  })  : baseUrl = baseUrl ?? Uri.parse('https://realm.mongodb.com'),
        baseFilePath = baseFilePath ?? Directory(Configuration.filesPath),
        httpClient = httpClient ?? HttpClient();


[Token scanning-Phase 1-2] Select, revoke and block.

Enable the Admin to revoke the selected API keys:

Expire the API key;
Set the revokedby flag;

Revoke:

Done:

Could you provide the SQL that the migration generates?
Also make sure the migration is generated on top of latest dev branch since Scott recently added a migration and these things need to be added one on top of another.

Migrations will be updated after we finalize the solution towards the unsupported Index problem from EF6.2.


Incorrect linter errors when whitespace around binops is missing

Try a+b, it gives a linter error for b. a+ b works though. Autocomplete seems to work in all cases, so not sure it's a lezer grammar bug or just a linter bug.

it's a problem with the method walkThrough that doesn't find the node corresponding to b.
It's used here: https://github.com/prometheus-community/codemirror-promql/blob/master/src/lang-promql/parser/parser.ts#L300
It's linked to this issue and comment: https://github.com/codemirror/codemirror.next/issues/270#issuecomment-704420758
For this particular case, it doesn't really to have the Subtree corresponding to b, it's just need to have the start/end position. So it's still possible to create another method that returns these information instead of trying to find the node and failed to find it


Custom Dataset

Nice work. How would you extend data prep and the rest of the pipeline for a custom dataset? assuming the same N-way K-shot (N,K) as CoCo or VOC are considered and the number of classes are the same too. Maybe good to add a section in the readme file on this one.

I am fighting for CVPR... After the DDL, I will add this feature. If you can not wait, you can reference the detectron2 tutorials to add your dataset: https://detectron2.readthedocs.io/tutorials/datasets.html

@fanq15 : now that the CVPR DDL is passed :), can you add the custom dataset feature. This'll help your base code to gain some popularity ...

@fanq15 : now that the CVPR DDL is passed :), can you add the custom dataset feature. This'll help your base code to gain some popularity ...

@fanq15 : now that the CVPR DDL is passed :), can you add the custom dataset feature. This'll help your base code to gain some popularity ...

Looking forward to it, too!


Implement struct terms and eliminations

This implements struct terms and eliminations. For example, we can now write:
struct Point : Type {
    x : Int,
    y : Int,
}

const origin : Point = struct {
    x = 0,
    y = 0,
};

const origin_x = origin.x;
const origin_y = origin.y;

Closes #247.

Merging after discussion!


lots of msedgewebview2.exe instances

Microsoft PowerToys version
"0.59.0"
Running as admin

[ ] Yes

Area(s) with issue?
SVG Preview
Steps to reproduce
Edge Chromium froze and killed it
Opened Process Explorer (SysInternals) and seeing lots of msedgewebview2 open, held by dllhost (for Thumbs cache) and by prevhost.exe (guess that is for generating previews).
Note that I didn't have Windows Explorer open (and also that SVG thumbs don't seem to work on Win11 anyway [possibly cause I have my SVGs on OneDrive])
✔ Expected Behavior
would expect msedgewebview2 to not be shown since I had no Edge open anymore (had killed it), nor any Windows Explorer folder (apart from having the desktop)
❌ Actual Behavior

Other Software
No response

@jaimecbernardo There seems to be a ptoblem, that subprocesses of prevhost  don't get terminated as long as there's a prevhost instance running

The user is running 0.59.0. This was a fix for 0.60 : https://github.com/microsoft/PowerToys/commit/18cb5639a85c052ca11171e857c628c54c6fa8d2
Can you please update and see if it fixes your issue?
/needinfo


Question: why does with_standard_compiler_flags not include CPPFLAGS?

I've noticed that I'm unable to build openldap why Omnibus without including CPPFLAGS in the environment, because openldap uses AC_EGREP_CPP to check for dependency compatibility, e.g. in build/configure.m4:1111
dnl Check for Cyrus SASL version compatility
AC_DEFUN([OL_SASL_COMPAT],
[AC_CACHE_CHECK([Cyrus SASL library version], [ol_cv_sasl_compat],[
        AC_EGREP_CPP(__sasl_compat,[
#ifdef HAVE_SASL_SASL_H
#include <sasl/sasl.h>
#else
#include <sasl.h>
#endif

/* Require 2.1.15+ */
#if SASL_VERSION_MAJOR == 2  && SASL_VERSION_MINOR > 1
        char *__sasl_compat = "2.2+ or better okay (we guess)";
#elif SASL_VERSION_MAJOR == 2  && SASL_VERSION_MINOR == 1 \
        && SASL_VERSION_STEP >=15
        char *__sasl_compat = "2.1.15+ or better okay";
#endif
        ],      [ol_cv_sasl_compat=yes], [ol_cv_sasl_compat=no])])
])

Setting env['CPPFLAGS'] = env['CFLAGS'] does the trick, of course, but I'm curious to understand if there is a reason for omnibus to not do this by default?
Cheers,

@krallin No hard reason it was not included. All the software we are building with Omnibus up to this point just hasn't needed it. /cc @lamont-granquist

yep, just hasn't come up yet in our internal builds

@schisamo Oh, OK then, thanks!  : )
I've noticed I actually get a lot of warnings like the following:
configure: WARNING: bzlib.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: bzlib.h: proceeding with the compiler's result

Would it make sense to include CPPFLAGS in the standard compiler flags (considering it usually isn't a fatal issue, but sometimes is?)

We actually set it for ruby compiles:
https://github.com/opscode/omnibus-software/blob/12909667bfb281f65093afb15157a7eb1523b3cc/config/software/ruby.rb#L71
Putting it in the default flags would hopefully make that line go away.

@krallin Want to take a stab at a PR for this feature?

@schisamo Sure, that sounds good.
I'll try and do that within a few days then!

@schisamo ,
So, looking into this, it seems that CLFAGS is being used mostly for what appears to be pre-processor options (-I and -D specifically, which according to e.g. this doc are expected to be in CPPFLAGS)
I guess we have two options:

Replace CFLAGS with CPPFLAGS for -I and D, set CFLAGS only when there are actual compiler options passed (i.e. on AIX, there are a few actual compiler options in CFLAGS). I'm concerned this will break all configs that do  x = env['CFLAGS'].
Do that, but also default CFLAGS (and CXXFLAGS) to CPPFLAGS (unless otherwise set, like in AIX's case). This provides backwards compatibility.
Merely give CPPFLAGS the treatment CXXFLAGS is currently receiving (which is to inherit CFLAGS's value). This keeps things like they currently are (with preprocessor flags in CLFAGS), but should work anyway.

Thoughts? I guess this comes down to your stability policy (the PR itself should be pretty trivial).

AFAIK just defaulting CPPFLAGS to CFLAGS should be fine for what we're doing.  I wouldn't remove anything from CFLAGS unless it's identified as a problem with some compiler (and i'd be more worried about clang or xlc than gcc).

This was fixed with #416.


Update rclone-beta.json

Does this repository auto update apps (Extras and main buckets appear to)?

Please save the file without UTF-8 BOM.
Also the checkver regex should be changed to simply rclone v(.+)

Fixed the update service. It fixed this with https://github.com/scoopinstaller/versions/commit/e599d99152a762bbe4b5fc13e1f227527e2117a4

Fixed the update service. It fixed this with https://github.com/scoopinstaller/versions/commit/e599d99152a762bbe4b5fc13e1f227527e2117a4


feat: Enhance delete conversation workflow with keyboard shortcuts

I would like to suggest an enhancement to the delete conversation workflow for a more consistent and efficient use. Currently, the ctrl + shift + delete keyboard shortcut triggers the delete conversation confirmation modal, which is a great feature. However, it would be even more efficient if we could also confirm the deletion by pressing the enter key within the modal.
Here is a suggested modification:
<DeleteConfirmDialog
    bind:show={showDeleteConfirm}
    title={$i18n.t('Delete chat?')}
    on:confirm={() => {
        deleteChatHandler(deleteChat.id);
    }}
    on:keydown={(event) => {
        if (event.key === 'Enter') {
            event.preventDefault();
            deleteChatHandler(deleteChat.id);
        }
    }}
>

        {$i18n.t('This will delete')} {deleteChat.title}.

</DeleteConfirmDialog>

I am not entirely sure if this implementation is feasible, but it should provide a good starting point for discussion.

Would it be possible also to add a delete button the message generated by the LLM.
There is small delete button for the human input but not for the answer by the LLM.
Thanks

Currently, the ctrl + shift + delete keyboard shortcut triggers the delete conversation confirmation modal, which is a great feature.

Ctrl+Shift+Delete on my keyboard prompts me to Clear browsing data and cookies on Firefox v131.0.3 (64-bit), which is the latest version as of the time of me making this comment.

Added to dev!

Added to dev!

I can confirm Ctrl+Shift+Delete now prompts me to delete a chat as expected on Firefox browser and pressing Enter confirms the deletion of the chat as expected.


chore(queue): refactor queue package

Signed-off-by: Bo-Yi.Wu<EMAIL_ADDRESS>

Codecov Report

Merging #34 (6835fba) into main (df9ad16) will decrease coverage by 3.85%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #34      +/-   ##
==========================================
- Coverage   84.76%   80.90%   -3.86%
==========================================
  Files           2        2
  Lines         151      110      -41
==========================================
- Hits          128       89      -39
+ Misses         16       14       -2
  Partials        7        7

Flag
Coverage Δ

go-1.17
80.90% <100.00%> (-3.86%)
:arrow_down:

go-1.18
80.90% <100.00%> (-3.86%)
:arrow_down:

go-1.19
80.90% <100.00%> (-3.86%)
:arrow_down:

ubuntu-latest
80.90% <100.00%> (-3.86%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

nats.go
72.36% <100.00%> (-7.98%)
:arrow_down:

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


How to disable menu open pan gestures for other views except one view

I want menu button only in home page. I don't want open menu button in other controllers

Have the same issue

Also have same issue

sideMenuController()?.sideMenu?.allowPanGesture = false
The above statement will disable the pan gestures. So in any view controller, if you want to disable the pan gesture, use, it.
NB: Set it true for those view controllers which needs pan gestures.


Default names for AloStreamConfigs

Describe the feature
It would be nice if StreamConfigs came with a default name() implementation.
Rational
There is an established convention where if you have a given stream, say defined as "MyStream", then there is a Config named "MyStreamConfig". There is a further convention that the name of that stream is written in Kebab case, i.e. "my-stream".
Currently, you have to manually follow this convention. This can get tedious in the early stages of writing the Stream and you're constantly changing the name. You may find you wind up with a Stream name that no longer matches (in convention) its name.
Example Scenario
I create a Stream called "MyStream" with "MyStreamConfig". I later rename it to "MyBetterStream" and "MyBetterStreamConfig". The Config's name should automatically be "my-stream" in the first scenario, then change to "my-better-stream" without me needing to explicitly change it

Closed via #27


Rename client packages

Motivation
Renames
ktc-tagmanager to @kentico/xperience-tag-manager
xperience-tagmanager-web-admin to @kentico/xperience-tag-manager-web-admin
to address possible package resolution issues.

It's probably worth noting that I've updated to v3.2.0 and it seems like #30 was not actually resolved. I don't think #33 was actually tested before release.
Maybe it can be tested and fixed here?
It should be fixed in https://github.com/Kentico/xperience-by-kentico-tag-manager/releases/tag/v3.2.1


All dashboard toolbars should use/inherit same style

All dashboard toolbars should use/inherit same style

Defering/Closing for now.


Add bindings for recovering lost tokens

Need bindings for the https://github.com/loomnetwork/loomchain/blob/master/builtin/plugins/gateway/gateway.go#L861 and https://github.com/loomnetwork/loomchain/blob/master/builtin/plugins/gateway/gateway.go#L820 functionalities. Also e2e tests.

Resolved


Suggest image hosting service

This exercise doesn't tell users that image upload is supported, but I see why they might infer it. This PR just says more explicitly that we don't support image upload.

I'll deploy this one @getaaron . Thanks.


Too many recursive call to build a quadtree, in d3.geom.js

Hi, I'm using d3 for visualizing huge-network.
and testing many kinds of huge networks data(10000+ nodes) with force-directed layout.
On the specific network data, I meet the error: "RangeError: Maximum call stack size exceeded" with chrome 12.
I tracked this error and found this is the stack-overflow error(too many recursion with firefox)..
I think that it is caused by a limitation of recursion(http://www.javascriptrules.com/2009/06/30/limitation-on-call-stacks/).
So I fixed the function insertChild(quadtree), on d3.geom.js, to the iterative version.. error is disappeared! (and some speedup?)
Recursive version(BEFORE):
function insertChild(n, p, x1, y1, x2, y2) {
// Compute the split point, and the quadrant in which to insert p.
var sx = (x1 + x2) * .5,
    sy = (y1 + y2) * .5,
    right = p.x >= sx,
    bottom = p.y >= sy,
    i = (bottom << 1) + right;

// Recursively insert into the child node.
n.leaf = false;
n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
// Update the bounds as we recurse.
 if (right) x1 = sx; else x2 = sx;
 if (bottom) y1 = sy; else y2 = sy;
 insert(n, p, x1, y1, x2, y2);
}

Iterative version(AFTER):
function insertChild(n, p, x1, y1, x2, y2) {
var s=new Array();
while(true)
{
    var sx = (x1 + x2) * .5,
        sy = (y1 + y2) * .5,
        right = p.x >= sx,
        bottom = p.y >= sy,
        i = (bottom << 1) + right;

    n.leaf = false;
    n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
    // Update the bounds as we recurse.
    if (right) x1 = sx; else x2 = sx;
    if (bottom) y1 = sy; else y2 = sy;
    if (isNaN(p.x) || isNaN(p.y)) return; // ignore invalid points
    if (n.leaf) {
        var v = n.point;
        if (v) {
            if ((Math.abs(v.x - p.x) + Math.abs(v.y - p.y)) >= .01) {
                n.point=null;
                s.push({arg1:n, arg2:p, arg3:x1, arg4:y1, arg5:x2, arg6:y2});
            }
        }
        else {
                n.point=p;
                if(s.length==0) break;
                else
                { var obj=s.pop(); n=obj.arg1; p=obj.arg2; x1=obj.arg3; y1=obj.arg4; x2=obj.arg5; y2=obj.arg6; }
            }
        }
    }
}

Do you have tens of thousands of coincident nodes? I just tested the quadtree example, and 500,000 points with uniform random distribution didn't trigger this error—and that's more than can be displayed with reasonable interactivity. It'd be nice to change the implementation to handle coincident points more efficiently, but I'd rather not adopt the more complex stack-based implementation.

I know this issue is old, but I am also running into a maximum call stack problem. First time using d3.quadtree, so maybe I'm doing something wrong?
Sample of data:
[[8, 70], [284, 70], [43, 70.2], [158, 70.2], [61, 70.2], [224, 70.2], [379, 70.2], [75, 70.2], [185, 70.2]]
And there are roughly 300 points that look about the same - x between 1 and 400, y hovering around 70.
		let quadtree = d3.geom.quadtree()
			.extent([[-1, -1], [width + 1, height + 1]])
			(data);


Issue/153

Add a failing and a passing test for #153

This PR is not an attempt at fixing this as the Aff internals are still over my head, but hopefully it incentives finding a fix by having CI fail for a legit use-case of the library :)

I got the tests to pass using this, but it's probably wrong since I do not understand the implications
            kills[kid] = kill(early, fail === lhs ? head._2 : head._1, function (/* unused */) {
              return function () {
                delete kills[kid];
                if (tmp) {
                  tmp = false;
                } else if (tail === null) {
                  join(step || fail, null, null); // notice the 'step || fail'
                } else {
                  join(step, tail._1, tail._2);
                }
              };
            });

Note that invincible is just built using bracket, where the effect is run as part of acquisition (which can't be cancelled), so it's not tied directly to invincible.
https://github.com/slamdata/purescript-aff/blob/ac1fff841121158b7307f719b69a64e7df625986/src/Effect/Aff.js#L778-L780
The problem here is that we are in a guarded if (fail) block, which means step is always null. We should be passing fail into join. I think this is a copy-paste error :)


Add OpenTelemetry Collector Builder docs

Desired feature or idea.
Per https://github.com/open-telemetry/opentelemetry-collector-releases/pull/164, the OpenTelemetry Collector Contrib maintainers want to promote usage of the OpenTelemetry Collector Builder so that people build their own distribution with only the components they use.
To facilitate this, we could add a dedicated section explaining how the builder works and how to build a sample custom distribution.
Additional context
We use the OpenTelemetry Collector builder for building the official opentelemetry-collector and opentelemetry-collector-contrib distros. The opentelemetry-collector manifest is an example of real-world usage of the builder.

@mx-psi awesome! We do have some docs on this here I believe, but I imagine it could be updated: https://opentelemetry.io/docs/collector/custom-collector/
But moreover, this sounds like more a guidance issue than anything else. We could definitely have that documented. I'd propose that something also be added to the Getting Started pages here: https://opentelemetry.io/docs/collector/getting-started/
I'll gladly review a PR if you're up for it.

Has https://opentelemetry.io/docs/collector/custom-collector/ evolved to satisfy what's needed to close this issue? @mx-psi

Yes, I think that page is clear enough :) Thanks for following up!


Add an extra parameter to the progress method to notify extra contextual data

This is useful when we want to notify some extra data during the progress update

my apologies @ChrisCinelli there were opened some high prio issues that made 0.8.10 (https://github.com/LearnBoost/kue/blob/master/History.md#0810--2014-12-13) already with a large backlog, I think we'd better merge it in 0.9 since this is an API enhancement and 0.8.11 may be the last 0.8.x :)


ListView selected items error

Category
[ ] Enhancement
[x] Bug
[ ] Question
Version
[   1.2.5     ]
Expected / Desired Behavior / Question
Documentation example contains the 'selection' property, although this is currently an option property and omitting it causes a JavaScript error.
Property should not be optional or code should check if this._selection is not undefined.
Happy to submit a PR if given direction on the preferred approach (check if this._selection is not undefined?)
Observed Behavior
"TypeError: Cannot read property 'setItems' of undefined"
ListView.tsx, line 63
Steps to Reproduce
Add a ListView control without 'selection' property.

@joelfmrodrigues this was already reported in #67 and #65 and fixed in v1.3.0. You can test it out by installing the latest beta.

That's great, thanks
Searched on the list of open issues for similar items, but not closed ones :|
Closing...


TMUX conf issue

I just installed yadr on my Macbook Pro running macOS Catalina 10.15.4 and tried to launch tmux with tmux new -t work. I'm seeing the following error. .tmux.conf:30: unknown key: C- if-shell. I'm running tmux version 3.0a_1.

I found solution in https://github.com/christoomey/vim-tmux-navigator/issues/243
Please change like:
# line 30
bind -n 'C-\' if-shell "$is_vim" "send-keys C-\\" "select-pane -l"

Sorry @duccuong2808, I'm not exactly sure how this applies since we're not trying to bind a key... How would we modify if-shell "[ -f ~/.tmux.conf.user ]" 'source ~/.tmux.conf.user'

Thanks @duccuong2808 that worked!


Is this a valid way of interfacing xtensor with python?

This is a question/idea concerning the xtensor/python wrapping.
I was wondering if the following way I'm currently interfacing xt::xarray to numpy arrays in python is somehow valid and not an abomination. I'm writing down here the ideas, but I also wrote a self-contained and completely commented "example" project attached to this issue.
What this wrapping method allowed me to do:

Wrap xarray and xstrided_view;
Allow propagation of changes from python to C++ xtensor arrays;
Creating numpy views of the xtensor-wrapped arrays, and other similar things.

Full Example: pytensor.zip
C++ to Python
First I had to take care of transforming xtensor strides to numpy strides:
template <typename T>
inline typename xt::xarray<T>::strides_type strides_to_pystrides(typename xt::xarray<T>::strides_type strides)
{
    for (auto &stride : strides)
        stride *= sizeof(T);
    return strides;
}

Once I had a way of adapting the strides, I transformed the xarray into a pybind11::array_t, as follows:
template <typename T>
inline typename pybind11::array_t<T> array_to_pyarray(typename xt::xarray<T> &src)
{
    return pybind11::memoryview::from_buffer(
        src.data(),                             // buffer
        src.shape(),                            // shape
        strides_to_pystrides<T>(src.strides()), // strides
        false                                   // readonly
    );
}

I've tested, and the changes made in python are correctly registered in C++. The only thing I know I must avoid is overriding the array with itself in python, otherwise, it will be a mess (more on this inside the attached full example).
A this point I thought, maybe I can do the same with views? So I wrote the following function:
template <typename T>
inline pybind11::array_t<T> view_to_pyarray(typename xt::xstrided_view<xt::xarray<T> &, xt::xindex> &view)
{
    // Return a memory view, allowing changes from python.
    return pybind11::memoryview::from_buffer(
        view.data() + view.data_offset(),       // buffer
        view.shape(),                           // shape
        strides_to_pystrides<T>(view.strides()) // strides
    );
}

I mean, that's all from this side.
Python to C++
The interfacing in the other direction is done in a similar fashion.
I needed some "adaptation" functions.
First, for the shape:
template <typename T>
inline typename xt::xarray<T>::shape_type pyinfo_to_shape(const pybind11::buffer_info &info)
{
    size_t ndim = static_cast<size_t>(info.ndim);
    typename xt::xarray<T>::shape_type shape(ndim);
    for (size_t i = 0; i < ndim; ++i)
        shape[i] = info.shape[i];
    return shape;
}

Second, for the strides:
template <typename T>
inline typename xt::xarray<T>::strides_type pyinfo_to_strides(const pybind11::buffer_info &info)
{
    typename xt::xarray<T>::strides_type strides;
    for (size_t i = 0; i < info.strides.size(); ++i)
        strides.push_back(info.strides[i] / info.itemsize);
    return strides;
}

Once I had both those adaptation function, I could easily modify the xt::xarray:

template <typename T>
inline xt::xarray<T> &pyarray_to_array(const pybind11::array_t<T> &src, xt::xarray<T> &dst)
{
    // Get the infos regarding the python array.
    pybind11::buffer_info info = src.request();
    // Transform the python shape.
    auto shape = pyinfo_to_shape<T>(info);
    // Transforms the buffer size to unsigned.
    auto size = static_cast<size_t>(info.size);

    // Re-initialize the xarray if the shape is different.
    if (dst.shape() != shape)
        dst = xt::xarray<T>(shape);

    // Get the pointers to the buffers.
    T *dst_ptr = static_cast<T *>(dst.data()), *src_ptr = static_cast<T *>(info.ptr);

    // Copy the data.
    for (size_t i = 0; i < size; ++i)
        dst_ptr[i] = src_ptr[i];
    return dst;
}

Then, I've done the same for the views:
template <typename T>
inline typename xt::xstrided_view<xt::xarray<T> &, xt::xindex> &pyarray_to_view(
    const pybind11::array_t<T> &src,
    typename xt::xstrided_view<xt::xarray<T> &, xt::xindex> &dst)
{
    // Get the infos regarding the python array.
    pybind11::buffer_info info = src.request();
    // Transform the python shape.
    auto shape = pyinfo_to_shape<T>(info);
    // Transforms the buffer size to unsigned.
    auto size = static_cast<size_t>(info.size);

    if (shape != dst.shape())
        throw std::runtime_error("Shapes must match");
    if (size != dst.size())
        throw std::runtime_error("Sizes must match");

    // Get the pointers to the buffers.
    T *dst_ptr = static_cast<T *>(dst.data() + dst.data_offset()), *src_ptr = static_cast<T *>(info.ptr);

    // Copy the data.
    for (size_t i = 0; i < size; ++i)
        dst_ptr[i] = src_ptr[i];
    return dst;
}

Error To Avoid
Let us take an extract of the example I attached to the issue. Here is the C++ registration:
/// @brief Just an example of dataset containing xtensor arrays and views.
class DataSet {
public:
    /// A set of arrays.
    xt::xarray<double> x1;
    DataSet() : x1{{9, 8}, {7, 6}, {5, 4}, {3, 2}} {
        // Nothing to do.
    }
};
PYBIND11_MODULE(pytensor, m) {
    pybind11::class_<DataSet>(m, "DataSet")
        .def(pybind11::init<>())
        .def_property("x1",
            [](DataSet &self) { return array_to_pyarray(self.x1); },
            [](DataSet &self, const pybind11::array_t<double> &m) { pyarray_to_array(m, self.x1); });
}

In python I need to avoid overriding the same array with itself:
from pytensor import DataSet
# Create the dataset.
ds = DataSet()
# Reshape x1 and override it.
print("ds.x1    :\n", ds.x1, "\n")
ds.x1 = ds.x1.reshape(2, 2, 2)
print("ds.x1    :\n", ds.x1, "\n")

This will output:
ds.x1    :
 [[9. 8.]
 [7. 6.]
 [5. 4.]
 [3. 2.]]
ds.x1    :
 [[[0.000000e+000 9.381848e-317]
  [7.000000e+000 6.000000e+000]]

 [[5.000000e+000 4.000000e+000]
  [3.000000e+000 2.000000e+000]]]

So except for this, it is behaving nicely the binding. I can also provided a solution to this problem:
from copy import copy
...
ds.x1 = copy(ds.x1.reshape(2, 2, 2))

Meh.. this requires a copy, is not that nice but it works.
Conclusion
I'm no expert, I started working with xtensor a couple of months ago.
I needed to interface something that was already using xt::xtensor to python, without changing everything to xt::pyarray. I'm lazy, and also I didn't know how to make all the strided_view inside the code work with the xt::pyarray.
I might be doing something nasty with this code, but I don't know all the meticulous details of how xtensor and python are actually handling the memory. I only know that both numpy and xtensor use the row-major ordered arrays and I'm hoping that's enough.
Thank you very much for reading through my explanation.
Cheers,
Enrico

Hi,
Thanks for this very detailed explanation. xtensor-python already provides C++ bindings for Numpy arrays, which can operates in place: pyarray (for dynamic number of dimensions) and pytensor (for static number of dimensions). They handle for you the conversion of strides and the auto assign problem, and any change from the python side will reflect on the C++ side (and vice versa).
#include <xtensor-python/pyarray.hpp>

pyarray<double> do_something(const pyarray<double>& arg)
{
    // ...
    // Will print the strides in the 'xtensor format' (i.e. strides
    // in number of elements instead of number of bytes).
    std::cout << xt::adapt(arg.strides()) << std::endl;
    // Fine:
    arg = arg;

    return arg + 1.;
}

PYBIND11_MODULE(pytensor, m)
{
    m.def("do_something", do_something);
}

a = np.array([1., 2.], [3., 4.])
b = do_sometihng(a)
print(b)

This should print the strides of a (from the C++ side) and b which is [[2., 3.], [4., 5]].
The main drawback is that pyarray is different form xarray. You can assign a pyarray object to an xarray object (and vice versa) but this results in a copy. Also we don't have bindings for views. Which makes me think we could implement your idea of a memory view of a buffer in-memory and have a pyadaptor, that would allow to directly provide xtensor structures to Python. That would actually be awesome!
Is that something you would like to implement?

Thank you very much for the reply.
I get the usefulness of both pyarray and pytensor compared to a more ``handmade'' solution, and I know that xt::adapt is quite useful (like a swiss army knife).
Anyway, I will gladly investigate how to write a pyadaptor. I might need some pointers to start with, and I will definitely need to check your coding guidelines.
Regards,
Enrico

Hi @JohanMabille,
When you said:

Also we don't have bindings for views.

in https://github.com/xtensor-stack/xtensor-python/issues/254#issuecomment-817560282
Did you mean for numpy views or xtensor views ?
I am experiencing some strange behaviour when I pass numpy views (resulting from some array indexing, e.g. arr[:, 99:]) to my bindings function, and I am wondering whether this is because you don't have bindings for numpy views ? Or if passing numpy views for pytensor parameters should work ?
Thanks.

Hi @JohanMabille and @Galfurian

Which makes me think we could implement your idea of a memory view of a buffer in-memory and have a pyadaptor, that would allow to directly provide xtensor structures to Python.

I would be incredibly interested in a pyadaptor that can take convert numpy arrays to xtensors/xarrays without copying. Did anything happen regarding this feature? If not: Do you have some pointers on how to start implementing this? E.g. Is there an adaptor in the xtensor-stack that I could use as a template?  I may get the chance to work on this feature in the future.


Afrimmlu

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 3 committers have signed the CLA.:x: Israel Abebe Azime:x: JessicaOjo:x: IsraelAbebeIsrael Abebe Azime seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


RequestSingleInstanceLockAsync callback does not seem to work

Version:  9.31.2

Target: Windows 10

I cannot get the RequestSingleInstanceLockAsync callback to work at all. I have tried several things and it just does not seem to get called.
I have set up a test to see if its firing. Basically, if a second instance is launched, I just want it to kill the first instance. It does not kill the app. In my actual app, I want it to restore the window if necessary and focus the window; that wouldn't work either. It seems the callback just isn't being called at all.
The lock is working, it won't launch the second instance. (Although it does launch the splash screen which is not very nice).
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
    }

    app.UseRequestLocalization(localizationOptions);

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapBlazorHub();
        endpoints.MapFallbackToPage("/_Host");
    });

    if (HybridSupport.IsElectronActive)
    {
        var task = Electron.App.RequestSingleInstanceLockAsync(MyCallback);
        var hasLock = task.GetAwaiter().GetResult();
        if (!hasLock)
        {
            Electron.App.Exit();
            return;
        }
        // Normal browser window setup, etc.
    }
}

public void MyCallback(string[] args, string directory)
{
    Electron.App.Exit(); // !!! This is never executed.
}

Any idea what is going on here? Or am I using this incorrectly?

Hi, any idea when will this bug get fixed?

I have worked out a temporary fix. Since I can tell apart what are the first and second instance, I can use named pipes in order to send over the arguments to the first instance. And on the first instance have a thread which will run at the background which will listen to the named pipe and act accordingly. Problem is I can't extract the arguments out of the second instance since they don't have switches. So is there any way of extracting the whole arguments array? I need the single instance use in order to implement OAuth for my app so there is only one argument which is passed to the second instance.
Achieving that will give me a full temporary solution to the problem until you fix the bug.
Thanks.

Hi @matanelrb
the support of handle command line arguments in singleInstance is implemented for the next Electron.NET 13.5.1 release.
see https://github.com/ElectronNET/Electron.NET/issues/520


Make a catalog of notebooks.

see #82
@awlostowski-noaa
A catalog of notebooks -- as a markdown file linked from the main readme here -- would allow a first time user to begin to explore the capabilities we have demonstrated. We could explain the Colab links, so they could explore without needing another notebook environment.

What notebooks, ideally would we have?

Models (MESH, MC)
Framework (v02, v01)
Network routing with MC (v02, v01)
qlat integration (getting qlat from WRF, informing the model with it)

What is the state of the union for moving documentation to gh-pages? It would be great to see such a catalog of notebooks in a readthedocs-esk format. Here is an example of what I am talking about.
The most widely used python doc and api doc generator is sphinx, I have been playing around with it in my free time with the direction of moving some of the stuff that I have been working on to the platform. As you can see in the shared hydrodata link, it is fully integrated with notebooks, so you could display all of your notebooks in an organized and well formatted manner. Just food for thought.


Add function to generate public URL for an item in the Key-value store

This is useful e.g. if you're storing screenshots to key-value store and want to add a link to a table in dataset. Something like:
KeyValueStore.getPublicUrl('my-screenshot.png');

For local store it could return a file:// link, for cloud storage a https:// link.

Hello, I'm interested in contributing for the first time, can I take this?

Sure, go for it!

FYI, the cloud URL can be generated like:
https://api.apify.com/v2/key-value-stores/${storeId}/records/${key}

Alright, sounds good, thank you @jancurn

https://github.com/apifytech/apify-js/pull/304


unable to configure Automatic transcoding

When I set the path to the ffmpeg, it is not recognized or saved.
Perhaps there is another version that's expected? How would I know how to proceed?

Sorry to hear about the trouble. Have you followed https://lbry.com/faq/video-publishing-guide carefully? You can send us more details about which OS you are on, what you've tried at<EMAIL_ADDRESS>


2.1

Q
A

Is bugfix?
no

New feature?
no

Breaks BC?
no

Tests pass?
yes

Fixed issues
Yii 2.1 -> Yii 3.0

Merged. Thanks!


Docs : Instructions ?

Usage and Developement are understood, but it would be nice to have instructions on how to reference the assets :
<link href="...
<script...

there is no script and if you really need instructions on how to use the CSS.. then you might don't really need these flags :D

Nevermind, got it by looking at the source code of the demo.
Thanks.


Add Match.userData()

<?php
pattern('word')
    ->match('word')
    ->all()
    ->forEach(function (Match $m) {
        $m->setUserData('welp');
    })
    ->filter(function (Match $m) {
        return $m->getUserData() == 'welp' ; // true
    });

or maybe
<?php
$m->userData = 'welp';
return $m->userData == 'welp' ;

PS: Why even bother, when you can duck-type userData?

Ok, Match.getUserData() and Match.setUserData() is required because after filter() (or generally, after using a different base) Match instances are lost.


feat: add ingest file and custom command not found error message

:tada: This PR is included in version 1.6.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Modified FileCompactor to ignore TABLE_MAJC_OUTPUT_DROP_CACHE for minc

FileCompactor is also used by MinorCompactor then when the property TABLE_MAJC_OUTPUT_DROP_CACHE is set to true, the output file was being created with CreateFlag.SYNC_BLOCK and setDropBehind. This change modifies FileCompactor to not do that for minc output files.

To summarize the multiple tickets revolving around dropping pages from the page cache:
#3077 - calls setDropBehind() on the FSDataInputStream and FSDataOutputStream when reading and writing WAL files. Property.TSERV_WAL_SYNC can be set to true to enable the WAL output file to be created with CreateFlag.SYNC_BLOCK
#3079 - calls FSDataInputStream.setDropBehind() on the input files read in FileCompactor.
#3083 - modifies FileCompactor to create output file using CreateFlag.SYNC_BLOCK and setDropBehind() when Property.TABLE_MAJC_OUTPUT_DROP_CACHE is set to true.
I didn't realize at the time of #3083  that the FileCompactor was used for writing minc files also. This PR is for discussion about what the right approach is for minc output files. Should we leave their pages in the cache? Should we drop them like majc files? Should we make it configurable via a new property Property.TABLE_MINC_OUTPUT_DROP_CACHE ?


For #3, I've heard horror stories...  I've personally worked on a team writing Linux-only software that was very system-resource-intensive both to compile and to run (so running full-screen in a VM slowed the dev cycle substantially) at a very large and nominally all-Windows tech company.  I would have loved having something like WSL.

One more point. VM's take up extra power and on my small (by design) dev machine (mostly commenting and cleaning up results from clusters for research) the WSL is a huge battery saver over VM's. Just Huge. Edge case though I may be, back saved and wall wart free am I.

It works but it seems to be slow, like there's no openGL acceleration (moving windows, etc.. is slow).
I also get the same warnings as @Stretto in the terminal:
compiz (opengl) - Error: GL::textureFromPixmap is not supported.
WARN  2017-01-11 12:26:51 unity.glib.dbus.proxy GLibDBusProxy.cpp:196 Unable to connect to proxy: "Could not connect: No such file or directory"... Trying to reconnect (attempt 5) ERROR 2017-01-11 12:26:54 unity.glib.dbus.proxy GLibDBusProxy.cpp:203 Unable to connect to proxy: Could not connect: No such file or directory
Is there something wrong with the configuration ?

@warpdesign -- which X implementation are you using, on the Windows side?  (Xming?  VcXsrv?)  I don't know a lot about X's OpenGL support, but I know that at minimum the X server must be compatible, and some Windows X servers aren't.

@aseering I am using VcXsrv which is supposed to support openGL: I have activated it when running XLaunch.

In the VcXsrv log, I can read this:
(II) AIGLX: enabled GLX_MESA_copy_sub_buffer
(II) AIGLX: enabled GLX_SGI_swap_control
(II) 80 pixel formats reported by wglGetPixelFormatAttribivARB
(II) GLX: Initialized Win32 native WGL GL provider for screen 0

So it seems it's using software based rendering. No wonder it's slow.

I am interested in rdp.  Could someone post instructions please.
How do you access the xrdp connection locally without conflicting  with windows native rdp support
How do you login to the xrdp connection   ?   what user/password do you use ?

I am having the same issue as @warpdesign  The GUI does not refresh on moving the cursor.

MobaXterm has a separate XServer exe you can start without starting MobaXterm. Up to now, this XServer runs the most stable of all the ones I've tried.
I have a shortcut in my startup folder executing the following command:
C:\Users\Simon\Documents\MobaXterm\slash\bin\XWin_MobaX.exe -silent-dup-error -nolisten inet6 -hostintitle +bs  -clipboard -ac -wgl -multiwindow -noreset :0
so I always have an XServer listening on :0.

compiz (core) - Error: Plugin initScreen failed: composite

root@CIRCLE-TANGDI:/mnt/c/Users/Circle# compiz
compiz (core) - Info: Loading plugin: core
compiz (core) - Info: Starting plugin: core
compiz (core) - Info: Loading plugin: ccp
compiz (core) - Info: Starting plugin: ccp
compizconfig - Info: Backend     : ini
compizconfig - Info: Integration : true
compizconfig - Info: Profile     : default
compiz (core) - Info: Loading plugin: composite
compiz (core) - Info: Starting plugin: composite
compiz (core) - Fatal: No composite extension
compiz (core) - Error: Plugin initScreen failed: composite
compiz (core) - Error: Failed to start plugin: composite
compiz (core) - Info: Unloading plugin: composite
compiz (core) - Info: Loading plugin: opengl
compiz (core) - Info: Starting plugin: opengl
compiz (core) - Error: Plugin 'composite' not loaded.
compiz (core) - Error: Plugin init failed: opengl
compiz (core) - Error: Failed to start plugin: opengl
compiz (core) - Info: Unloading plugin: opengl
compiz (core) - Info: Loading plugin: place
compiz (core) - Info: Starting plugin: place
compiz (core) - Info: Loading plugin: resize
compiz (core) - Info: Starting plugin: resize
compiz (core) - Fatal: No composite extension
compiz (core) - Fatal: No composite extension
Segmentation fault (core dumped)
root@CIRCLE-TANGDI:/mnt/c/Users/Circle#

@Guerra24 @fpqc @paladox @robinduckett @therealkenc

startx failed,canot luanch up desktop enviroment .!!!!!!!!!!!!!!!!!
[   297.171] _XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root
[   297.174] [config] failed to pre-init udev
[   297.174]
X.Org X Server 1.18.4
Release Date: 2016-07-19
[   297.174] X Protocol Version 11, Revision 0
[   297.175] Build Operating System: Linux 4.4.0-45-generic x86_64 Ubuntu
[   297.175] Current Operating System: Linux DESKTOP-LG3KHKP 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64
[   297.175] Kernel command line: BOOT_IMAGE=/kernel roBuild Date: 02 November 2016  10:06:10PM
[   297.175] xorg-server 2:1.18.4-0ubuntu0.2 (For technical support please see http://www.ubuntu.com/support)
[   297.175] Current version of pixman: 0.33.6
[   297.175] 	Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[   297.176] Markers: (--) probed, () from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   297.177] (==) Log file: "/home/windys/.local/share/xorg/Xorg.0.log", Time: Thu Mar  2 01:18:29 2017
[   297.180] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   297.181] (==) No Layout section.  Using the first Screen section.
[   297.181] (==) No screen section available. Using defaults.
[   297.181] () |-->Screen "Default Screen Section" (0)
[   297.181] (**) |   |-->Monitor ""
[   297.182] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[   297.182] (==) Automatically adding devices
[   297.182] (==) Automatically enabling devices
[   297.182] (==) Automatically adding GPU devices
[   297.182] (==) Max clients allowed: 256, resource mask: 0x1fffff
[   297.182] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[   297.182] 	Entry deleted from font path.
[   297.182] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[   297.182] 	Entry deleted from font path.
[   297.182] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[   297.183] 	Entry deleted from font path.
[   297.183] (WW) The directory "/usr/share/fonts/X11/Type1" does not exist.
[   297.183] 	Entry deleted from font path.
[   297.183] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[   297.183] 	Entry deleted from font path.
[   297.183] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[   297.183] 	Entry deleted from font path.
[   297.183] (==) FontPath set to:
/usr/share/fonts/X11/misc,
built-ins
[   297.183] (==) ModulePath set to "/usr/lib/x86_64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
[   297.183] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[   297.183] (II) Loader magic: 0x7f6e0203edc0
[   297.183] (II) Module ABI versions:
[   297.183] 	X.Org ANSI C Emulation: 0.4
[   297.183] 	X.Org Video Driver: 20.0
[   297.183] 	X.Org XInput driver : 22.1
[   297.184] 	X.Org Server Extension : 9.0
[   297.184] (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound (Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory)
[   297.184] (++) using VT number 2
[   297.184] (II) no primary bus or device found
[   297.184] (II) LoadModule: "glx"
[   297.188] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[   297.201] (II) Module glx: vendor="X.Org Foundation"
[   297.201] 	compiled for 1.18.4, module version = 1.0.0
[   297.201] 	ABI class: X.Org Server Extension, version 9.0
[   297.201] (==) AIGLX enabled
[   297.201] (==) Matched modesetting as autoconfigured driver 0
[   297.201] (==) Matched fbdev as autoconfigured driver 1
[   297.201] (==) Matched vesa as autoconfigured driver 2
[   297.201] (==) Assigned the driver to the xf86ConfigLayout
[   297.201] (II) LoadModule: "modesetting"
[   297.204] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[   297.205] (II) Module modesetting: vendor="X.Org Foundation"
[   297.205] 	compiled for 1.18.4, module version = 1.18.4
[   297.205] 	Module class: X.Org Video Driver
[   297.205] 	ABI class: X.Org Video Driver, version 20.0
[   297.205] (II) LoadModule: "fbdev"
[   297.209] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[   297.209] (II) Module fbdev: vendor="X.Org Foundation"
[   297.209] 	compiled for 1.18.1, module version = 0.4.4
[   297.209] 	Module class: X.Org Video Driver
[   297.209] 	ABI class: X.Org Video Driver, version 20.0
[   297.209] (II) LoadModule: "vesa"
[   297.213] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
[   297.214] (II) Module vesa: vendor="X.Org Foundation"
[   297.214] 	compiled for 1.18.1, module version = 2.3.4
[   297.214] 	Module class: X.Org Video Driver
[   297.214] 	ABI class: X.Org Video Driver, version 20.0
[   297.214] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[   297.214] (II) FBDEV: driver for framebuffer: fbdev
[   297.214] (II) VESA: driver for VESA chipsets: vesa
[   297.214] (WW) xf86OpenConsole: VT_GETSTATE failed: Inappropriate ioctl for device
[   297.214] (WW) xf86OpenConsole: VT_ACTIVATE failed: Inappropriate ioctl for device
[   297.215] (EE)
Fatal server error:
[   297.215] (EE) xf86OpenConsole: Switching VT failed
[   297.215] (EE)
[   297.216] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
[   297.216] (EE) Please also check the log file at "/home/windys/.local/share/xorg/Xorg.0.log" for additional information.
[   297.216] (EE)
[   297.217] (WW) xf86CloseConsole: KDSETMODE failed: Inappropriate ioctl for device
[   297.217] (WW) xf86CloseConsole: VT_GETMODE failed: Inappropriate ioctl for device
[   297.218] (EE) Server terminated with error (1). Closing log file.

@Guerra24 did you try to run unity8.
I tried mir_demo_server_basic but it didn't work.
ERROR: /build/buildd/mir-0.1.8+14.04.20140411/src/platform/graphics/mesa/linux_virtual_terminal.cpp(213): Throw in function int mir::graphics::mesa::LinuxVirtualTerminal::find_active_vt_number()
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >
std::exception::what: Failed to find the current VT```

@CircleGood, I think someone had the same problem above in the comments - you have to use VcXsrv, Xming will not work.

@Guerra24 can't usb search on Top left corner

I have an issue in Bash:
Cannot open /dev/tty0: No such file or directory
Another issue, in VCXSrv:
Cannot move old log file "C:/Users/User/AppData/Local/Temp/VCXSrv.0.log" to "C:/Users/User/AppData/Local/Temp/VCXSrv.0.log.old"

I got ubuntu to work.
I have had some errors opening programs from the panel: "Failed to fork (cannot allocate memory)." That's probably due to limited RAM(my laptop has like 3GB RAM).
What happens if you download something on Firefox in Ubuntu? I installed the Rust programming language just minutes ago, and no issues yet. What happens if I attempt to install the Servo engine?

It's not as good as running on a virtual machine. It's all too easy to crash.

Why there is no menu-bar on top right?
Like this one:

Any suggestions?

The indicators aren't there because the indicator services aren't started. Normally they start with the session, but you don't have a session. You can run some combination of the services below for the indicators you want. If any of them ran, that is. Which in general they won't, because in general they are querying devicey stuff. [Interestingly, even the indicator-datetime-service fails because of some missing surface in timerfd_settime(). I thought at least that one might work.]
Or... you could look at the time, network, and battery status in the Windows taskbar....
/usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service
/usr/lib/x86_64-linux-gnu/indicator-session/indicator-session-service
/usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service
/usr/lib/x86_64-linux-gnu/indicator-power/indicator-power-service
/usr/lib/x86_64-linux-gnu/indicator-bluetooth/indicator-bluetooth-service
/usr/lib/x86_64-linux-gnu/indicator-application/indicator-application-service
/usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service
/usr/lib/x86_64-linux-gnu/indicator-printers/indicator-printers-service

Thanks, Too bad.
The Dash search isn't working as well.
Any suggestions?

Here is the new dbus fix:
sudo sed -i 's$.*$tcp:host=<IP_ADDRESS>,port=0\nANONYMOUS\n<allow_anonymous/>$' /usr/share/dbus-1/session.conf

Hi, with Ubuntu 14.04 i managed to start nearly all X11 clients using (among other tweaks) LIBGL_ALWAYS_INDIRECT=1. With Ubuntu 16.04 i seem to hit a hard barrier, recent qt5 applications apparently demand OpenGL >= 2.0 while with indirect glx you get only OpenGL 1.4 compatibility. Do i understand things correctly and any hints how to proceed? Thx in advance.

Addendum to my previous post: While trying to start kdevelop5 from kubuntu backports i get
QQuickWidget: Failed to make context current
QQuickWidget::resizeEvent() no OpenGL context
and an unusable black GUI.

LIBGL_ALWAYS_INDIRECT=1

@fehrin - You want the opposite of that per this post. You can ignore the audio and udev parts unless you want/need those.
You also want to not run compiz, but I digress...

Hi, thx i followed most of your advice, but i am not there yet.
First i use Cygwin X11 with start option -listen tcp, before your advice i had additionally +iglx -wgl, any hint about this?
If i now (all the install / upgrade steps done) omit LIBGL_ALWAYS_INDIRECT=1 on the WSL side, i get
franz@DESKTOP-EBDMKFM:~$ glxinfo
name of display: :0
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
Major opcode of failed request:  150 (GLX)
Minor opcode of failed request:  6 (X_GLXIsDirect)
Serial number of failed request:  23
Current serial number in output stream:  22

I had to -nowgl, now it works, thx again.
Maybe not important but
kdevelop: /lib/x86_64-linux-gnu/libudev.so.1: no version information available (required by /usr/lib/x86_64-linux-gnu/libKF5Solid.so.5)

libGL error: failed to load driver: swrast

Glad it is working. It isn't clear from your description though whether you actually have OpenGL working or whether you have just successfully made QT fall back (not that falling back is bad). If you get the failed to load driver: swrast it means you don't have a software renderer installed. You need to do:
sudo apt install mesa-utils
glxgears   # if OpenGL is working you'll see the gears

The act of installing mesa-utils sets up OpenGL. You still want -nowgl (in the Cygwin parlance) because the rendering is being done client side (and Cygwin is none the wiser).

no version information available (required by /usr/lib/x86_64-linux-gnu/libKF5Solid.so.5)

Are you getting that after installing libudev-stub or did you skip that step? Either way the stub is being obsoleted in by recent kernel work, so hopefully that will solve itself soon. And either way squared, it's probably a pretty soft fail. Bonne chance.

Hi, with -nowgl it works and the udev warning (i did all of your installation steps) disappeared magically (?) in the meantime.
I get the "usual" warnings about udisks2, /proc/vmstat ... but these are work in progress as i understand. I found no X11 application failing to start as of now, but the heavy ones like kdevelop5 take some time to fully appear.

I just installed Ubuntu from the Windows Store from Windows 10 Insider Preview (I'm migrating from the legacy lxrun installation), and tried to run gnome-terminal with VcXsrv (after running `apt-get install gnome-terminal) and got thsese two errors:
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

I followed @therealkenc's recommendation and installed mesa-utils and after restarting the ubuntu session, I got this error:
Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error spawning command line 'dbus-launch --autolaunch= --binary-syntax --close-stderr': Child process exited with code 1

I saw the info about the "redis dbux fix"; however, this Ubuntu environment doesn't have a file at /etc/dbus-1/session.conf. Come to find out, all I had to do was start dbus with /etc/init.d/dbus start and voilà! I'm off to the races.
Now to find out how to make this work from a shortcut (which will probably prove interesting, since this thing doesn't run service startup scripts...)

You want the steps listed for Chrome in #648 (which is not special) here and mentioned earlier in #2285 here. In short:
export DISPLAY=localhost:0
export NO_AT_BRIDGE=1
exec dbus-run-session -- bash
sudo service dbus start
# run whatever app that expects to live in a dbus session

Anybody had any luck with gnome desktop?
videblu@V4-SFP:~$ gnome-session --disable-acceleration-check

(process:84): dconf-CRITICAL **: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.

(process:84): dconf-CRITICAL **: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: WARNING: Could not make bus activated clients aware of XDG_CURRENT_DESKTOP=GNOME environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: WARNING: Could not make bus activated clients aware of QT_IM_MODULE=ibus environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: WARNING: Could not make bus activated clients aware of XMODIFIERS=@im=ibus environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: WARNING: Could not make bus activated clients aware of GNOME_DESKTOP_SESSION_ID=this-is-deprecated environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: WARNING: Could not make bus activated clients aware of XDG_MENU_PREFIX=gnome- environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: WARNING: Using null backend for session tracking
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: dconf-CRITICAL: unable to create directory '/home/videblu/.cache/dconf': Permission denied.  dconf will not work properly.
gnome-session-binary[83]: WARNING: Unable to read ICE authority file /home/videblu/.ICEauthority: Permission denied

videblu@V4-SFP:~$ sudo gnome-session --disable-acceleration-check
[sudo] password for videblu:
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of XDG_CURRENT_DESKTOP=GNOME environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of QT_IM_MODULE=ibus environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of XMODIFIERS=@im=ibus environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of GNOME_DESKTOP_SESSION_ID=this-is-deprecated environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of XDG_MENU_PREFIX=gnome- environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[13]: WARNING: Using null backend for session tracking
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of SESSION_MANAGER=local/V4-SFP:@/tmp/.ICE-unix/13,unix/V4-SFP:/tmp/.ICE-unix/13 environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
GNOME_KEYRING_CONTROL=/home/videblu/.cache/keyring-GZOM6Y
SSH_AUTH_SOCK=/home/videblu/.cache/keyring-GZOM6Y/ssh
GNOME_KEYRING_CONTROL=/home/videblu/.cache/keyring-GZOM6Y
SSH_AUTH_SOCK=/home/videblu/.cache/keyring-GZOM6Y/ssh
Home directory not accessible: Permission denied
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
gnome-session-binary[13]: WARNING: App 'pulseaudio.desktop' exited with code 1
GNOME_KEYRING_CONTROL=/home/videblu/.cache/keyring-GZOM6Y
SSH_AUTH_SOCK=/home/videblu/.cache/keyring-GZOM6Y/ssh
Activating service name='org.a11y.atspi.Registry'
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of QT_IM_MODULE=ibus environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of XMODIFIERS=@im=ibus environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
Successfully activated service 'org.a11y.atspi.Registry'
SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry

(gnome-settings-daemon:39): libupower-glib-WARNING **: Couldn't connect to proxy: Could not connect: No such file or directory

(gnome-settings-daemon:39): libupower-glib-CRITICAL **: up_client_get_lid_is_present: assertion 'UP_IS_CLIENT (client)' failed

(gnome-settings-daemon:39): power-plugin-WARNING **: Unable to start gsd_power manager: Could not connect: No such file or directory
error: XDG_RUNTIME_DIR not set in the environment.

(gnome-settings-daemon:39): libnm-glib-WARNING **: (nm-object.c:179):constructor: code should not be reached

(gnome-settings-daemon:39): GLib-GObject-CRITICAL **: object NMClient 0xf74100 finalized while still in-construction

(gnome-settings-daemon:39): GLib-GObject-CRITICAL **: Custom constructor for class NMClient returned NULL (which is invalid). Please use GInitable instead.

(gnome-settings-daemon:39): sharing-plugin-WARNING **: Couldn't get NMClient: NMClient initialization failed (or you passed NULL 'result' by mistake)

** (gnome-settings-daemon:39): CRITICAL **: dbus_g_proxy_new_for_name: assertion 'connection != NULL' failed
**
libnm-glib:ERROR:nm-remote-settings.c:1182:constructed: assertion failed: (priv->dbus_proxy)
gnome-session-binary[13]: WARNING: Application 'gnome-settings-daemon.desktop' killed by signal 6
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of QT_IM_MODULE=ibus environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid
gnome-session-binary[13]: WARNING: Could not make bus activated clients aware of XMODIFIERS=@im=ibus environment variable: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: rejected attempt to call UpdateActivationEnvironment by connection :1.0 () with unknown uid

(gnome-settings-daemon:75): libupower-glib-WARNING **: Couldn't connect to proxy: Could not connect: No such file or directory

(gnome-settings-daemon:75): libupower-glib-CRITICAL **: up_client_get_lid_is_present: assertion 'UP_IS_CLIENT (client)' failed

(gnome-settings-daemon:75): power-plugin-WARNING **: Unable to start gsd_power manager: Could not connect: No such file or directory
error: XDG_RUNTIME_DIR not set in the environment.

(gnome-settings-daemon:75): libnm-glib-WARNING **: (nm-object.c:179):constructor: code should not be reached

(gnome-settings-daemon:75): GLib-GObject-CRITICAL **: object NMClient 0x1e1e100 finalized while still in-construction

(gnome-settings-daemon:75): GLib-GObject-CRITICAL **: Custom constructor for class NMClient returned NULL (which is invalid). Please use GInitable instead.

(gnome-settings-daemon:75): sharing-plugin-WARNING **: Couldn't get NMClient: NMClient initialization failed (or you passed NULL 'result' by mistake)

** (gnome-settings-daemon:75): CRITICAL **: dbus_g_proxy_new_for_name: assertion 'connection != NULL' failed
**
libnm-glib:ERROR:nm-remote-settings.c:1182:constructed: assertion failed: (priv->dbus_proxy)
gnome-session-binary[13]: WARNING: Application 'gnome-settings-daemon.desktop' killed by signal 6
gnome-session-binary[13]: WARNING: App 'gnome-settings-daemon.desktop' respawning too quickly
gnome-session-binary[13]: CRITICAL: We failed, but the fail whale is dead. Sorry....

Sounds great , I will try.

I did everything as mentioned (ubuntu-desktop), including the new dbus fix. But after starting compiz, vcxsrv stays black. If I quit vcxsrv it even says that 1 client is connected. Any ideas?

Hi, I'm having trouble installing compizconfig-settings-manager. Following all the errors looks like the linux-libc-dev is failing with an Input/output error. Tried 'touch' the file in which case it fails when can't make a file with the same name but with capitals. Any ideas how to solve it? I've copied the error below. Thanks!
sudo apt-get install linux-libc-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
snap-confine
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed
linux-libc-dev
0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
1117 not fully installed or removed.
Need to get 0 B/836 kB of archives.
After this operation, 4,460 kB of additional disk space will be used.
(Reading database ... 141475 files and directories currently installed.)
Preparing to unpack .../linux-libc-dev_4.4.0-96.119_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.4.0-96.119) ...
dpkg: error processing archive /var/cache/apt/archives/linux-libc-dev_4.4.0-96.119_amd64.deb (--unpack):
unable to create '/usr/include/linux/netfilter/xt_tcpmss.h.dpkg-new' (while processing './usr/include/linux/netfilter/xt_tcpmss.h'): Input/output error
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/linux-libc-dev_4.4.0-96.119_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Hello,  I have created a vb-script that can be invoked from the windows explorer context menu which will launch a gnome-terminal
rem Start Gnome Terminal from Windows Explorer Context Menu
rem wscript C:\Users\xxxx\exe\gterm.vbs "%V"
strDir = WScript.Arguments(0)
strWindowTitle = "TempBash"
strProgramProcess = "vcxsrv.exe"
Set objShell = CreateObject("WScript.Shell")
Set objfso = CreateObject("Scripting.FileSystemObject")
strComputer = "."
Set objWMI = GetObject("winmgmts:\" & strComputer & "\root\CIMV2")
Set colProcessList = objWMI.ExecQuery _
("Select * from Win32_Process Where Name = '" & strProgramProcess & "'")
If colProcessList.Count = 0 Then
rem MsgBox "Not Running"
rem start VcXsrv
objShell.Run """C:\Program Files\VcXsrv\vcxsrv.exe"" :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl", 1, False
End If
Function CreateTempFileName
Dim tfolder, tname, tfile
Const TemporaryFolder = 2
Set tfolder = objfso.GetSpecialFolder(TemporaryFolder)
tname = objfso.GetTempName
CreateTempFileName = tfolder.path & "" & tname
End Function
objTempFile = CreateTempFileName
rem Set objExec = objShell.Exec("tasklist.exe /FI ""WINDOWTITLE eq " & strWindowTitle & """")
objShell.Run "cmd /c tasklist /FI ""WINDOWTITLE eq " & strWindowTitle & """ >" & objTempFile, 0, True
Set objTextFile = objfso.OpenTextFile(objTempFile, 1)
Do While objTextFile.AtEndOfStream <> True
strText = objTextFile.ReadLine
rem Msgbox strText
If Instr(strText, "INFO: No") > 0 Then
rem MsgBox   "Not Found."
rem objShell.Run "cmd /c start ""TempBash"" /min bash --noprofile --norc", 0, True
objShell.Run "cmd /c title " & strWindowTitle & "&&bash --noprofile --norc", 0, False
Exit Do
End If
Loop
objTextFile.Close
objFSO.DeleteFile(objTempFile)
rem objShell.Run "nircmd.exe win hide ititle ""TempBash"" ", 0, False
rem WScript.Quit 0
rem MsgBox "here i am"
ret = Instr(strDir,"lxss")
if ret Then
strDir = Replace ( strDir, "", "/" )
mylen = Len ( strDir ) - ret - 4
mypath = Right ( strDir, mylen )
mypath = Replace ( mypath, "rootfs/", "/" )
mypath = Replace ( mypath, "rootfs", "/" )
rem MsgBox mypath
objShell.Run "cmd /c bash --login -c ""gnome-terminal --working-directory=" & mypath & """", 0, False
Else
objShell.CurrentDirectory = strDir
objShell.Run "cmd /c bash --login -c ""gnome-terminal"" ", 0, False
End if

Here is an updated version of my vbscript:    gterm.vbs
gterm.zip
rem Start Gnome Terminal from Windows Explorer Context Menu
rem wscript C:\Users\xxxx\exe\gterm.vbs "%V"
LaunchTarget = "gnome-terminal"
rem Launch my X-server
strProgramProcess = "vcxsrv.exe"
strComputer = "."
Set objWMI = GetObject("winmgmts:\" & strComputer & "\root\CIMV2")
Set objShell = CreateObject("WScript.Shell")
Set colProcessList = objWMI.ExecQuery _
("Select * from Win32_Process Where Name = '" & strProgramProcess & "'")
If colProcessList.Count = 0 Then
rem MsgBox "Not Running"
rem start VcXsrv
objShell.Run """C:\Program Files\VcXsrv\vcxsrv.exe"" :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl", 1, False
WScript.Sleep(100)
End If
rem For some strange reason gnome-terminal will not start unless a previous shell session exists
rem Therefore launch a hidden shell session
strWindowTitle = "TempBash"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Function CreateTempFileName
Dim tfolder, tname, tfile
Const TemporaryFolder = 2
Set tfolder = objFSO.GetSpecialFolder(TemporaryFolder)
tname = objFSO.GetTempName
CreateTempFileName = tfolder.path & "" & tname
End Function
strTempFile = CreateTempFileName
rem Locate Hidden Bash Window & Launch if it does not exist
rem Set objExec = objShell.Exec("tasklist.exe /FI ""WINDOWTITLE eq " & strWindowTitle & """")
objShell.Run "cmd /c tasklist /FI ""WINDOWTITLE eq " & strWindowTitle & """ >" & strTempFile, 0, True
Set objTextFile = objFSO.OpenTextFile(strTempFile, 1)
Do While objTextFile.AtEndOfStream <> True
strText = objTextFile.ReadLine
rem Msgbox strText
If Instr(strText, "INFO: No") > 0 Then
rem MsgBox   "Not Found."
rem objShell.Run "cmd /c start ""TempBash"" /min bash --noprofile --norc", 0, True
objShell.Run "cmd /c title " & strWindowTitle & "&&bash --noprofile --norc", 0, False
rem WScript.Sleep(1000)  '  1 second delay
WScript.Sleep(500)
Exit Do
End If
Loop
objTextFile.Close
objFSO.DeleteFile(strTempFile)
rem objShell.Run "nircmd.exe win hide ititle ""TempBash"" ", 0, False
rem WScript.Quit 0
rem MsgBox "here i am" & strDir
rem If no context menu argument do normal launch
If WScript.Arguments.Count = 0 Then
rem WScript.Sleep(1000)
objShell.Run "cmd /c bash ~ --login -c """ & LaunchTarget & """ ", 0, False
WScript.Quit 0
End If
rem Check for hidden virtual bash file system
rem This file-system is a Linux sandbox and can only be edited with Linux programs
strDir = WScript.Arguments(0)
IsLxss = Instr(strDir,"\lxss")
if IsLxss Then
rem convert lxss to Linux file system format
strDir = Replace ( strDir, "", "/" )
mylen = Len ( strDir ) - IsLxss - 4
mypath = Right ( strDir, mylen )
mypath = Replace ( mypath, "/rootfs/", "/" )
mypath = Replace ( mypath, "/rootfs", "/" )
rem MsgBox mypath
rem Launch from lxss file-system
objShell.Run "cmd /c bash --login -c """ & LaunchTarget & " --working-directory=" & mypath & """", 0, False
Else
rem Launch from normal windows directory
rem WScript.Interactive = false
rem WScript.Echo strDir
objShell.CurrentDirectory = strDir
rem objShell.Run "cmd /c cd " & strDir & " && bash --login -c ""gnome-terminal"" ", 0, False
objShell.Run "cmd /c bash --login -c """ & LaunchTarget & """ ", 0, False
End if

I get only black screen on VcXsrv

compiz
compiz (core) - Info: Loading plugin: core
compiz (core) - Info: Starting plugin: core
compiz (core) - Fatal: Couldn't open display localhost:0
compiz (core) - Info: Stopping plugin: core
compiz (core) - Info: Unloading plugin: core
But I have got this......
the same also for Xfce4
startxfce4
/usr/bin/startxfce4: X server already running on display localhost:0
xrdb: Connection refused
xrdb: Can't open display 'localhost:0'
Failed to start message bus: Failed to open "/usr/share/dbus-1/session.conf": Permission denied
EOF in dbus-launch reading address from bus daemon

Some updated guide to this based on at least FCU if not the latest Insiders would be due now thanks to the many issues fixed thus far. It appears some steps no longer work as intended due to the fixes. Since this discussion has covered only Unity and XFCE4, I would recommend using Plasma-KDE as the example for the updated guide.

I'm getting the same on 18.04 and w10 build 1709:
SNIPPED from ubuntu.exe console
donofrio@WSAL0196:~$ startxfce4
/usr/bin/startxfce4: X server already running on display localhost:0.0
Gtk-Message: 00:18:39.581: Failed to load module "unity-gtk-module"
_IceTransmkdir: Owner of /tmp/.ICE-unix should be set to root
gpg-agent[37]: WARNING: "--write-env-file" is an obsolete option - it has no effect
gpg-agent[38]: gpg-agent (GnuPG) 2.2.4
(xfce4-session:26): xfce4-session-WARNING **: 00:18:39.724: gpg-agent returned no PID in the variables
started
(xfce4-session:26): GLib-CRITICAL **: 00:18:39.725: g_file_test: assertion 'filename != NULL' failed
(xfce4-session:26): xfce4-session-WARNING **: 00:18:39.726: xfsm_manager_load_session: Something wrong with (null), Does it exist? Permissions issue?
Gtk-Message: 00:18:39.791: Failed to load module "unity-gtk-module"
Gtk-Message: 00:18:39.829: Failed to load module "unity-gtk-module"
Gtk-Message: 00:18:39.829: Failed to load module "unity-gtk-module"
Gtk-Message: 00:18:39.844: Failed to load module "unity-gtk-module"
Gtk-Message: 00:18:39.873: Failed to load module "unity-gtk-module"
Gtk-Message: 00:18:39.917: Failed to load module "unity-gtk-module"
Gtk-Message: 00:18:39.991: Failed to load module "unity-gtk-module"
shared memfd open() failed: Function not implemented
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.002: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.013: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.018: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.031: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.055: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.087: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
Gtk-Message: 00:18:40.104: Failed to load module "unity-gtk-module"
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.105: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.117: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
Gtk-Message: 00:18:40.175: Failed to load module "unity-gtk-module"
(xfce4-session:26): Gtk-WARNING **: 00:18:40.204: Unable to locate theme engine in module_path: "pixmap",
(xfce4-session:26): Gtk-WARNING **: 00:18:40.209: Unable to locate theme engine in module_path: "pixmap",
(xfce4-session:26): Gtk-WARNING **: 00:18:40.212: Unable to locate theme engine in module_path: "pixmap",
(Thunar:46): Gtk-WARNING **: 00:18:40.221: Unable to locate theme engine in module_path: "pixmap",
(xfsettingsd:49): libupower-glib-WARNING **: 00:18:40.221: Couldn't connect to proxy: Could not connect: No such file or directory
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.225: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(Thunar:46): Gtk-WARNING **: 00:18:40.225: Unable to locate theme engine in module_path: "pixmap",
(xfdesktop:48): Gtk-WARNING **: 00:18:40.227: Unable to locate theme engine in module_path: "pixmap",
(xfsettingsd:49): libupower-glib-CRITICAL **: 00:18:40.228: up_client_get_lid_is_closed: assertion 'UP_IS_CLIENT (client)' failed
(xfce4-panel:44): Gtk-WARNING **: 00:18:40.235: Unable to locate theme engine in module_path: "pixmap",
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.237: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(Thunar:46): Gtk-WARNING **: 00:18:40.242: Unable to locate theme engine in module_path: "pixmap",
(xfsettingsd:49): GLib-GObject-WARNING **: 00:18:40.259: invalid (NULL) pointer instance
(xfdesktop:48): Gtk-WARNING **: 00:18:40.262: Unable to locate theme engine in module_path: "pixmap",
(xfce4-panel:44): Gtk-WARNING **: 00:18:40.273: Unable to locate theme engine in module_path: "pixmap",
(update-notifier:55): dconf-CRITICAL **: 00:18:40.286: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:40.287: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(xfsettingsd:49): GLib-GObject-CRITICAL **: 00:18:40.290: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(xfdesktop:48): Gtk-WARNING **: 00:18:40.302: Unable to locate theme engine in module_path: "pixmap",
(xfce4-panel:44): Gtk-WARNING **: 00:18:40.317: Unable to locate theme engine in module_path: "pixmap",
(update-notifier:55): dconf-CRITICAL **: 00:18:40.321: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
shared memfd open() failed: Function not implemented
(xfwm4:40): xfwm4-WARNING **: 00:18:40.341: Error opening /dev/dri/card0: No such file or directory
(nm-applet:50): dconf-CRITICAL **: 00:18:40.360: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
** (update-notifier:55): WARNING **: 00:18:40.362: already running?
(deja-dup-monitor:52): GVFS-RemoteVolumeMonitor-WARNING **: 00:18:40.369: remote volume monitor with dbus name org.gtk.vfs.UDisks2VolumeMonitor is not supported
(nm-applet:50): dconf-CRITICAL **: 00:18:40.384: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(nm-applet:50): nm-applet-WARNING **: 00:18:40.435: Error connecting to system D-Bus: Could not connect: No such file or directory
(nm-applet:50): dconf-CRITICAL **: 00:18:40.435: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
/usr/share/system-config-printer/applet.py:45: PyGIWarning: Notify was imported without specifying a version first. Use gi.require_version('Notify', '0.7') before import to ensure that the right version gets loaded.
from gi.repository import Notify
(nm-applet:50): nm-applet-WARNING **: 00:18:40.445: Could not connect: No such file or directory
system-config-printer-applet: failed to connect to system D-Bus
(xfce4-volumed:78): xfce4-volumed-CRITICAL **: 00:18:40.520: xvd_context_state_callback: The connection failed or was disconnected, is PulseAudio Daemon running?
(xfwm4:40): Gtk-WARNING **: 00:18:40.527: Unable to locate theme engine in module_path: "pixmap",
(xfce4-volumed:78): xfce4-volumed-WARNING **: 00:18:40.535: xvd_connect_to_pulse: failed to connect context: Connection refused
(xfwm4:40): Gtk-WARNING **: 00:18:40.541: Unable to locate theme engine in module_path: "pixmap",
(nm-applet:50): dconf-CRITICAL **: 00:18:40.543: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(xfce4-volumed:78): xfce4-volumed-WARNING **: 00:18:40.548: Unable to initialize pulseaudio support, quitting
(xfwm4:40): Gtk-WARNING **: 00:18:40.557: Unable to locate theme engine in module_path: "pixmap",
(xfce4-volumed:78): GLib-GObject-CRITICAL **: 00:18:40.570: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Gtk-Message: 00:18:40.581: Failed to load module "unity-gtk-module"
(nm-applet:50): libnm-CRITICAL **: 00:18:40.620: ((libnm/nm-client.c:265)): assertion '' failed
(nm-applet:50): libnm-CRITICAL **: 00:18:40.630: ((libnm/nm-client.c:226)): assertion '' failed
(nm-applet:50): libnm-CRITICAL **: 00:18:40.634: ((libnm/nm-client.c:281)): assertion '' failed
(nm-applet:50): libnm-CRITICAL **: 00:18:40.647: ((libnm/nm-client.c:324)): assertion '' failed
(nm-applet:50): libnm-CRITICAL **: 00:18:40.649: ((libnm/nm-client.c:361)): assertion '' failed
(nm-applet:50): libnm-CRITICAL **: 00:18:40.653: ((libnm/nm-client.c:380)): assertion '' failed
(nm-applet:50): libnm-CRITICAL **: 00:18:40.655: ((libnm/nm-client.c:417)): assertion '' failed
(nm-applet:50): libnm-CRITICAL **: 00:18:40.665: ((libnm/nm-client.c:882)): assertion '' failed
Gtk-Message: 00:18:40.701: Failed to load module "unity-gtk-module"
(wrapper-1.0:152): Gtk-WARNING **: 00:18:40.721: Unable to locate theme engine in module_path: "pixmap",
(wrapper-1.0:152): Gtk-WARNING **: 00:18:40.725: Unable to locate theme engine in module_path: "pixmap",
(wrapper-1.0:152): Gtk-WARNING **: 00:18:40.733: Unable to locate theme engine in module_path: "pixmap",
Gtk-Message: 00:18:40.746: Failed to load module "unity-gtk-module"
Gtk-Message: 00:18:40.798: Failed to load module "unity-gtk-module"
(xfsettingsd:49): Gtk-WARNING **: 00:18:40.841: Unable to locate theme engine in module_path: "pixmap",
(xfsettingsd:49): Gtk-WARNING **: 00:18:40.859: Unable to locate theme engine in module_path: "pixmap",
(wrapper-1.0:157): Gtk-WARNING **: 00:18:40.876: Unable to locate theme engine in module_path: "pixmap",
(xfsettingsd:49): Gtk-WARNING **: 00:18:40.882: Unable to locate theme engine in module_path: "pixmap",
(wrapper-1.0:157): Gtk-WARNING **: 00:18:40.894: Unable to locate theme engine in module_path: "pixmap",
(wrapper-1.0:157): Gtk-WARNING **: 00:18:40.922: Unable to locate theme engine in module_path: "pixmap",
(xfce4-session:26): xfce4-session-WARNING **: 00:18:41.014: failed to run script: Failed to execute child process “/usr/bin/pm-is-supported” (No such file or directory)
(xfce4-session:26): xfce4-session-WARNING **: 00:18:41.037: failed to run script: Failed to execute child process “/usr/bin/pm-is-supported” (No such file or directory)
(nm-applet:50): libnm-CRITICAL **: 00:18:41.079: ((libnm/nm-client.c:882)): assertion '' failed
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:41.111: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(deja-dup-monitor:52): dconf-CRITICAL **: 00:18:41.120: unable to create directory '/home/donofrio/.cache/dconf': Permission denied.  dconf will not work properly.
(xfdesktop:48): GVFS-RemoteVolumeMonitor-WARNING **: 00:18:41.219: remote volume monitor with dbus name org.gtk.vfs.UDisks2VolumeMonitor is not supported
(wrapper-2.0:138): Gtk-WARNING **: 00:18:41.241: Negative content width -3 (allocation 1, extents 2x2) while allocating gadget (node button, owner GtkToggleButton)
(wrapper-2.0:158): Gtk-WARNING **: 00:18:41.242: Negative content width -3 (allocation 1, extents 2x2) while allocating gadget (node button, owner GtkToggleButton)
** (xfdesktop:48): WARNING **: 00:18:41.378: Failed to get system bus: Could not connect: No such file or directory
SNIPPED from ubuntu.exe console
my setup is http://www.tinyurl.com/donofrio1804 would love to know what to do to resolve these, I use xfce4 daily on my work desktop's and would like console to not be upset all day with me in the background.  I tried to start dbus like I did in 17.04 but xfce4 desktop didn't want to stay up like that and seems to work just fine except all these WARNINGs.  help :)

Everything is working as it should, just want to clean up these 'extra' console messages (sometime they point to a missing package and sometimes it's just a notice that "Function not implemented")  Anyone else using xfce4 or other gui's with ubuntu (18.04) and WSL?

18.04 isn't supported yet. If and when it is, it will hopefully be updated in #2874

It's working great for last week I've been using it daily in my work "daily driver" (my onedrive shows the photo of it working) and beside spurious console messages it's going good....doing the session.conf dbus tcp workaround now....on my desktop's

As in the referenced issue, it isn't officially supported by MS. The only supported distro is 16.04 as that is what's currently in the Windows Store. There was also some issues upgrading to non-LTS that were resolved in Insiders but I'm sure you'll see plenty of "function not implemented". That being said, running 17.04 and below have run better than expected using xfce4 and that was without using the dbus tcp workaround (dbus doesn't need the workaround with 16299)

Keep in context I did not upgrade (that was the part that felt broken when I edited sources.list before) now I did the whole squish.fs (https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.squashfs) for base then added as my ppt outlines to get full xfce4 desktop on core 18.04 and put ubuntu-desktop and other packages back in till I get the full desktop that works like it did in 16.04 (had to use offline ubuntu.exe method because our corp doesn't allow the store.)

Ah see that's an important repro step nobody would assume. You installed via unofficial method using a project such as LxRunOffline (a guess based on you mentioning squash.fs). A side note: you can install Ubuntu offline by downloading the .appx file. Also you don't modify sources.list for upgrades.Sources.list is automatically updated when you do-release-upgrade. I do recommend installing all desktop packages after the upgrade to save time having to update everything. Upgrades seem to run cleaner when you have only the base packages installed.

no I didn't do lxrunoffline - I used this method - https://github.com/Microsoft/WSL/issues/2618

I was using LxrunOffline as an example. I figured it was that issue but left it open ended in case you did something else.  Anyways, your original question is about using 18.04 for this and I provided with"17.04 and lower work well". Implying that it doesn't fair so well in distro versions above 17.04 as used in the Ubuntu installation from the Windows Store (That is after determining a method I don't recall at the moment of bypassing the errors brought with upgrading to 17.10 and 18.04 by replacing a few key packages such as bash by hand to get apt up and running.)

Not that Kali Linux is on the store.
Is it possible to run it with desktop environment?

@naweiss Actually they provide a nice informative video that you can follow along with. Still haven't figured out how to get X running inside yet though through their method.  Here's the link. Scroll down to the bottom for the directions, but recommend reading through all of it and watching all videos.

Nice, but I actually hoped there is a way to run the default desktop environment.
I think it's Gnome3

Another question, the used xrdp and remote desktop instead of VcXsrv.
Can it be done on Ubuntu as well?

why would you remote desktop when x11forwarding is working awesomely with VcXsrv?


Bump epel minimum version (for Puppet 4)

epel and apt are soft dependencies and shouldn't be in metadata.json, but that's something to be fixed up another day #43


Premission issues in MQ IPT Docker image

After following image build instruction for MQ IPT (https://github.com/ibm-messaging/mq-container/tree/master/incubating/mqipt) you can encounter in running container two permission issues:

IOException reading //AMQJAVA.LOG

IOException reading //AMQJAVA.LOG
java.io.IOException: Permission denied

That log appear twice at container start then it is not visible. Prefix '//' suggest that some path is not set?

Couldn't create user preferences directory. User preferences are unusable.

WARNING: Couldn't create user preferences directory. User preferences are unusable.
Sep 16, 2024 2:09:22 PM java.util.prefs.FileSystemPreferences$1 run
WARNING: java.io.IOException: No such file or directory
Sep 16, 2024 2:09:53 PM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock User prefs.  Unix error code 2.
Sep 16, 2024 2:09:53 PM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.

Those logs appear every 30s and might be distractious. Quick fix for that is create home directory for 1001 USER (used in dockerfile) but I am not sure if this is the correct solution.
(used MQ IPT version: <IP_ADDRESS> LinuxX64, I don't know if it occurs in other versions)
I don't see any problem with MQ IPT itself. The question is whether these two errors do not cause some sort of bug.

Hi,
You can make the change in your own fork.

You seem to be using MQIPT <IP_ADDRESS>.
The first issue  has already been fixed in MQIPT 9.3.2. MQIPT doesn't need the AMQJAVA.LOG file, and from MQPIT 9.3.2 onwards it doesn't get created. We suggest you should upgrade to MQIPT 9.4.
The second issue is because the JRE tries to create a user preferences directory, but there is no home directory available. It's not needed by MQIPT, rather, it's something that the JRE does automatically. It seems that your suggested fix is correct – if the user home directory is present and writeable the error disappears. The suggested change could be made in your own fork, or,
you can alternatively add the following options system properties:
-Djava.util.prefs.userRoot=/tmp
-Djava.util.prefs.systemRoot=/tmp


Updating promotion-pull-requests.md to reflect that build admins no longer need to cut packages for official releases

…

What type of PR is this?
/kind cleanup
/kind documentation

What this PR does / why we need it:
Which issue(s) this PR fixes:

Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/sig release
/assign @jeremyrickard @xmudrii

/retest

/retest


Revert "Initiate Code Freeze For 2023-01"

Reverts adoptium/.github#37
Uplift code freeze when Jan 2023 release is almost done.

duplicated, close this one


Append row to existing excel file

Prerequisites

[ x] Checked if your Laravel Excel version is still supported: https://docs.laravel-excel.com/3.1/getting-started/support.html#supported-versions
[x ] Able to reproduce the behaviour outside of your code, the problem is isolated to Laravel Excel.
[x ] Checked that your issue isn't already filed.
[x ] Checked if no PR was submitted that fixes this problem.
[ x] Filled in the entire issue template

Versions

PHP version: 7.4
Laravel version: 5.7
Package version: 3.1

Description
Can not append row to existing excel file
Steps to Reproduce

Expected behavior:
Append row to existing excel file
Actual behavior:

Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

Duplicate of https://github.com/Maatwebsite/Laravel-Excel/issues/2068#issuecomment-479499890


chore: release main

:robot: I have created a release beep boop
@markdown-confluence/cli: 4.6.3
4.6.3 (2023-04-28)
Miscellaneous Chores

@markdown-confluence/cli: Synchronize obsidian packages versions

Dependencies

The following workspace dependencies were updated

dependencies

@markdown-confluence/lib bumped from 4.6.2 to 4.6.3
@markdown-confluence/mermaid-puppeteer-renderer bumped from 4.6.2 to 4.6.3

@markdown-confluence/lib: 4.6.3
4.6.3 (2023-04-28)
Bug Fixes

Wrong Ordering of AutoSettingsLoader Loaders (4b1dc22)

@markdown-confluence/mermaid-electron-renderer: 4.6.3
4.6.3 (2023-04-28)
Miscellaneous Chores

@markdown-confluence/mermaid-electron-renderer: Synchronize obsidian packages versions

Dependencies

The following workspace dependencies were updated

dependencies

@markdown-confluence/lib bumped from 4.6.2 to 4.6.3

@markdown-confluence/mermaid-puppeteer-renderer: 4.6.3
4.6.3 (2023-04-28)
Miscellaneous Chores

@markdown-confluence/mermaid-puppeteer-renderer: Synchronize obsidian packages versions

Dependencies

The following workspace dependencies were updated

dependencies

@markdown-confluence/lib bumped from 4.6.2 to 4.6.3

obsidian-confluence: 4.6.3
4.6.3 (2023-04-28)
Miscellaneous Chores

obsidian-confluence: Synchronize obsidian packages versions

Dependencies

The following workspace dependencies were updated

dependencies

@markdown-confluence/lib bumped from 4.6.2 to 4.6.3
@markdown-confluence/mermaid-electron-renderer bumped from 4.6.2 to 4.6.3

obsidian-confluence-root: 4.6.3
4.6.3 (2023-04-28)
Bug Fixes

Wrong Ordering of AutoSettingsLoader Loaders (4b1dc22)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/obsidian-confluence-v4.6.3 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/%40markdown-confluence/lib-v4.6.3 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/%40markdown-confluence/mermaid-electron-renderer-v4.6.3 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/%40markdown-confluence/cli-v4.6.3 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/%40markdown-confluence/mermaid-puppeteer-renderer-v4.6.3 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/obsidian-confluence-root-v4.6.3 :sunflower:


Upgrade fabric8 maven plugin to 4.0.0

Relates to: SB-1326

Something is wrong with CI and it is not getting triggered...

I'll merge it anyway since all the rest seems to be working


added the feature to lay down images

Related to #7.

Add tests
Add this feature to README.md

Codecov Report

Merging #9 (139fe5a) into main (e37a716) will increase coverage by 0.04%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
+ Coverage   98.40%   98.44%   +0.04%
==========================================
  Files           2        2
  Lines         125      129       +4
==========================================
+ Hits          123      127       +4
  Misses          1        1
  Partials        1        1

Impacted Files
Coverage Δ

converter.go
100.00% <100.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

Completed and closed #7.