SonataUserBundle and Symfony 3.4 - fosuserbundle

I have a question whichone version should I use?
I started with Symfony 3.4 LTS which requires FOSUserBundle ^2.0. To use SonataUserBundle with FOSUserBundle I need to use ^4.0. In 4.0 there's no user profile things. I need to implement them all or I missed something?

There are only one way to use SonataUserBundle of version 4.x-dev but... with special commit reference (3dd68a6aae95cffe6a4275d68c27d2766d8b93f7) and FosUserBundle of version 2.0.1.
I know for sure, that this works for Symfony 3.3.2
Here is example of composer.json and composer.lock:
Composer.json
"require": {
...
"friendsofsymfony/user-bundle": "v2.0.1",
...
"sonata-project/admin-bundle": "3.18.2",
"sonata-project/doctrine-orm-admin-bundle": "3.1.4",
"sonata-project/user-bundle": "4.x-dev",
...
"symfony/symfony": "^3.3.2",
...
},
Compose.lock (sonata user bundle part)
{
"name": "sonata-project/user-bundle",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/sonata-project/SonataUserBundle.git",
"reference": "3dd68a6aae95cffe6a4275d68c27d2766d8b93f7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sonata-project/SonataUserBundle/zipball/3dd68a6aae95cffe6a4275d68c27d2766d8b93f7",
"reference": "3dd68a6aae95cffe6a4275d68c27d2766d8b93f7",
"shasum": ""
},
...

To use SonataUserBundle 4.x with Symfony 3.4 (and more specifically PHP 5.6/7.0), you can use "runroom/sonata-user": "4.x-dev" (see https://github.com/Runroom/SonataUserBundle), which is a fork of one of Sonata's team member to restore PHP 5.6/7.0 compatibility for SonataUserBundle.

Related

Adding local dependency in Zeppelin Helium

I am creating a Zeppelin Helium Visualization and I need to add one local dependency. I am working on Zeppelin 0.8.snapshot version.
I am not able to do it, I have tried adding in the following manner. I tried using "*" for my modules, I also tried providing relative path without success.
My module has to be added locally.
{
"name": "zeppelin_helium_xxx",
"description" : "xxx",
"version": "1.0.0",
"main": "heliumxxx",
"author": "",
"license": "Apache-2.0",
"dependencies": {
"mymodule": "*",
"zeppelin-tabledata": "*",
"zeppelin-vis": "*"
}
}
Currently, Zeppelin doesn't support the relative path in helium json. You need to provide the absolute path for the artifact field.
Here is one example from https://github.com/1ambda/zeppelin-highcharts-columnrange/blob/master/zeppelin-highcharts-columnrange.json
{
"type" : "VISUALIZATION",
"name" : "zeppelin-highcharts-columnrange",
"version" : "local",
"description": "Column range chart using highcharts library",
"artifact" : "/Users/lambda/github/1ambda/zeppelin-highcharts-columnrange",
"icon": "<i class=\"fa fa-align-center\"></i>"
}
Additionally, there is a JIRA ticket for this issue.
https://issues.apache.org/jira/browse/ZEPPELIN-2097
And you might see an incorrect error message when you load local helium packages.
ERROR [2017-03-05 12:54:14,308] ({qtp1121647253-68}
HeliumBundleFactory.java[buildBundle]:131) - Can't get module name and version of package zeppelin-markdown-spell
Then check the artifact value again. Probably, it's invalid.
https://issues.apache.org/jira/browse/ZEPPELIN-2212

Best Practice to avoid Angular Version Conflict

This diagram explains my question ---->
Version Conflict
My product takes a dependency on a node package, which takes a dependency on a certain version of Angular, lets say version #y.
However, my product relies on a different version of Angular - lets say version #x.
I cannot ensure that #x = #y.
What is the best way to avoid such version conflicts?
If your dependency is for e.g. Angular X.Y and your angular version is X, compatibility problems shouldn't arise, but you can use npm shrinkwrap functionality which will allow you to lockdown version of dependencies.
It will generate npm-shrinkwrap.json file.
{
"name": "A",
"version": "1.1.0",
"dependencies": {
"B": {
"version": "1.0.1",
"from": "B#^1.0.0",
"resolved": "https://registry.npmjs.org/B/-/B-1.0.1.tgz",
"dependencies": {
"C": {
"version": "1.0.1",
"from": "org/C#v1.0.1",
"resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
}
}
}
}
}
You can read more about it here.

Atom custom language package not picking up file extensions or highlighting correctly

I'm trying to build a simple atom package that displays some filetypes associated with squarespace development in the correct highlighted way. Iv'e tried reading the docs and looking at related packages and mirroring mine off of theirs but it seems no matter what I do atom wont pickup that these file types have an associated language package installed, and when I manually apply my language it doesn't even highlight them correctly.
The associations I'm trying to build are
.block -> html
.region -> html
.list -> html
.item -> html
.conf -> json
.preset -> json
my package.json looks like
{
"name": "language-squarespace",
"version": "0.4.0",
"description": "Syntax Highlighting for SquareSpace files",
"repository": {
"type": "git",
"url": "https://github.com/blaketarter/language-squarespace"
},
"license": "MIT",
"engines": {
"atom": "*",
"node": "*"
}
}
and an example of one of my grammar files is
'filetypes': [
'block'
]
'name': 'block (squarespace)'
'patterns': [
{
'include': 'source.html'
}
]
'scopeName': 'source.block'
I feel like im missing something important because I based mine off of https://github.com/rgbkrk/language-ipynb and things seem to match.

Composer wont update to lastest package

I'm using Cakephp and Miles's uploader plugin. I've got the composer plugin installed, and I'm using the latest copy of wamp. Fileinfo extension is enabled in php. when I try to update using composer it doesn't - it just uses a previous version. If I change the json file to force an update to the latest version I get and error message telling me the ext-fileinfo is not present - but it is.............
I need to get the lastest version as I have an error which shows up on my webserver which is running php 5.3 (wamp is using 5.4)
Additional info:-
The main composer.json is :-
{"config":{"vendor-dir":"Vendor"},
"require": {
"mjohnson/uploader": "4.3.*",
"mjohnson/utility": "1.5.*",
"mjohnson/decoda": "*",
"titon/utility": "*",
"cakephp/debug_kit": "2.2.*"
}
}
I'm expecting mjohnson/uploader to update (
a sub set composer.JSON is held in the uploader package :-
{
"name": "mjohnson/uploader",
"type": "cakephp-plugin",
"description": "File uploader and validation plugin for CakePHP.",
"keywords": ["cakephp", "uploader", "plugin", "file", "validation", "attachment"],
"homepage": "http://milesj.me/code/cakephp/uploader",
"license": "MIT",
"authors": [
{
"name": "Miles Johnson",
"homepage": "http://milesj.me"
}
],
"require": {
"php": ">=5.3.3",
"ext-curl": "*",
"ext-mbstring": "*",
"composer/installers": "*",`enter code here`
"mjohnson/transit": ">=1.4"
},
"support": {
"source": "https://github.com/milesj/Uploader"
}
}
and I would also have expected mjohnson/transit to have updated
I had a similar problem with ext-fileinfo and ext-curl on Windows 7. My problem was the path variable causing the wrong php.exe to be executed by composer. If php -m from the command line shows ext-fileinfo is not present that could be your problem too.

yii2 composer update fatal error

When I update my composer to add yii2-solr extension to my project, I encounter with an error like below:
The "yiisoft/yii2-composer" plugin requires composer-plugin-api 1.0.0, this *WILL* break in the future and it should be fixed ASAP (require ^1.0 for example).
The "fxp/composer-asset-plugin" plugin requires composer-plugin-api 1.0.0, this *WILL* break in the future and it should be fixed ASAP (require ^1.0 for example).
PHP Fatal error: Call to undefined method Fxp\Composer\AssetPlugin\Package\Version\VersionParser::parseLinks() in /root/.composer/vendor/fxp/composer-asset-plugin/Repository/VcsPackageFilter.php on line 272
Fatal error: Call to undefined method Fxp\Composer\AssetPlugin\Package\Version\VersionParser::parseLinks() in /root/.composer/vendor/fxp/composer-asset-plugin/Repository/VcsPackageFilter.php on line 272
before that I've ran composer self-updatebut still not work and when I want to run
composer global require "fxp/composer-asset-plugin:1.0.1"
again the above error shown.
This is my composer.json file content:
{
"name": "yiisoft/yii2-app-basic",
"description": "Yii 2 Basic Project Template",
"keywords": ["yii2", "framework", "basic", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "stable",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": ">=2.0.5",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"filsh/yii2-oauth2-server": "*",
"johnitvn/yii2-rbac-plus": "*",
"yiisoft/yii2-sphinx": "^2.0",
"yiisoft/yii2-solr": "*"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*"
},
"config": {
"process-timeout": 1800
},
"scripts": {
"post-create-project-cmd": [
"yii\\composer\\Installer::postCreateProject"
]
},
"extra": {
"yii\\composer\\Installer::postCreateProject": {
"setPermission": [
{
"runtime": "0777",
"web/assets": "0777",
"yii": "0755"
}
],
"generateCookieValidationKey": [
"config/web.php"
]
},
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
How can I fix this error?
Thanks.
1) Remove old version of Composer Asset Plugin:
composer global remove "fxp/composer-asset-plugin"
2) Install newer version. Recommended version for installation is now (by the moment of writing this) 1.1.1 (see official docs).
composer global require "fxp/composer-asset-plugin:~1.1.1"
I'd even recommend to use:
composer global require "fxp/composer-asset-plugin:*"
3) Run composer install in your project folder. In case of errors, delete vendor folder contents and composer.lock file and run composer install again.
If arogachev's answer doesn't exactly work for you, here is a quick fix.
Manually delete the vendor folder in your global composer installation. The folder to delete for eg. on ubuntu : /home/user/.composer/vendor
Install the newer version of the plugin
composer global require "fxp/composer-asset-plugin:*"
That should be all. You will get all your files back and you can continue
Bower-Asset skip way:
You can require yidas/yii2-composer-bower-skip before yiisoft/yii2 in composer.json file:
"require": {
"php": ">=5.4.0",
"yidas/yii2-composer-bower-skip": "~2.0.0",
"yiisoft/yii2": ">=2.0.5",
"yiisoft/yii2-bootstrap": "*",
...
Then run composer update.
This case is for that you don't need the update for Bower.
See https://github.com/yidas/yii2-composer-bower-skip
Rollback composer to 1.x version - the said plugin does not work (yet) with composer 2.x (as discussed here):
sudo composer self-update --rollback

Resources