Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include sync as a package #124

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

netandreus
Copy link
Contributor

What problem or bug does this solve?
Now we can use sync as a standalone composer package.

@mikegioia
Copy link
Owner

@netandreus What problem is this solving? I'm not sure at first glance.

@mikegioia
Copy link
Owner

Do you happen to have any info on why the paths are checked in that way? I'm unfamiliar with what a standalone composer package is.

@netandreus
Copy link
Contributor Author

Let's try to introduce that we need to use libremail-sync like a common composer package for some project located in /var/www/mailsync/current. It's all about watcher app, we talked about earlier. Here is structure of my project. I use symfony 5 framework.

dependent-project-structure

Here is this projects composer.json file, located in /var/www/mailsync/current/composer.json

{
    "type": "project",
    "license": "mit",
    "minimum-stability": "dev",
    "repositories": [
        {
            "type":"package",
            "package": {
                "name": "netandreus/zend_mail",
                "version":"@dev",
                "source": {
                    "url": "[email protected]:netandreus/zend-mail.git",
                    "type": "git",
                    "reference":"develop-lsub"
                }
            },
            "comments": [
                "netandreus(particlebits)/zend-mail requires zendframework/zend-stdlib ~2.5",
                "but it is the cause of numerous errors, and i does not include it",
                "other netandreus(particlebits)/zend-mail requirements included to this file"
            ]
        },
        {
            "type":"package",
            "package": {
                "name": "netandreus/imap",
                "version":"2.0",
                "source": {
                    "url": "[email protected]:netandreus/imap.git",
                    "type": "git",
                    "reference":"develop-fixes"
                }
            }
        }
    ],
    "require": {
        "php": "^7.2.5",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "symfony/console": "5.0.*",
        "symfony/dotenv": "5.0.*",
        "symfony/flex": "^1.3.1",
        "symfony/framework-bundle": "5.0.*",
        "symfony/orm-pack": "^1.0",
        "symfony/yaml": "5.0.*",
        "netandreus/ima-sync": "dev-master"
    },
    "require-dev": {
    },
    "config": {
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/",
            "Zend\\Mail\\": "vendor/netandreus/zend_mail/src/",
            "Pb\\Imap\\": "vendor/netandreus/imap/src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
    "replace": {
        "paragonie/random_compat": "2.*",
        "symfony/polyfill-ctype": "*",
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php72": "*",
        "symfony/polyfill-php71": "*",
        "symfony/polyfill-php70": "*",
        "symfony/polyfill-php56": "*"
    },
    "scripts": {
        "auto-scripts": {
            "cache:clear": "symfony-cmd",
            "assets:install %PUBLIC_DIR%": "symfony-cmd"
        },
        "install-sync": [
            "ln -s -f ../vendor/netandreus/imap-sync/sync ./bin/sync"
        ],
        "post-install-cmd": [
            "@auto-scripts",
            "@install-sync"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "conflict": {
        "symfony/symfony": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "5.0.*"
        }
    }
}

Some comments:

netandreus/imap-sync - is composer package, making from my fork of libremail sync (with all issues resolved).
netandreus/zend_mail - fork of your project with my fixes
netandreus/imap - fork of your project with my fixes
If you accept my PR - I can you direct links to your repos.

Task
We need to run composer script from /var/www/mailsync/current/vendor/netandreus/imap-sync/sync
When it started, it find autoload file in /var/www/mailsync/current/vendor/netandreus/imap-sync/sync/autoload.php
but there is no such file. Compiled autoload.php for all dependencies of main project located in
/var/www/mailsync/current/vendor/composer/autoload.php

Problem
That is the problem. We need to add ability to sync / libremail /server load autoload.php not only them source dir:

/var/www/mailsync/current/vendor/netandreus/imap-sync/vendor/autoload.php

but from dependent projects dir:

/var/www/mailsync/current/vendor/autoload.php

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants