# Buggy code
def __init__(
    self,
    project_name,
    version,
    project_root,
    source_paths,
    macro_paths,
    data_paths,
    test_paths,
    analysis_paths,
    docs_paths,
    target_path,
    clean_targets,
    log_path,
    modules_path,
    quoting,
    models,
    on_run_start,
    on_run_end,
    archive,
    seeds,
    profile_name,
    target_name,
    send_anonymous_usage_stats,
    use_colors,
    threads,
    credentials,
    packages,
    args,
):
    # 'vars'
    self.args = args
    self.cli_vars = dbt.utils.parse_cli_vars(getattr(args, "vars", "{}"))
    # 'project'
    Project.__init__(
        self,
        project_name=project_name,
        version=version,
        project_root=project_root,
        profile_name=profile_name,
        source_paths=source_paths,
        macro_paths=macro_paths,
        data_paths=data_paths,
        test_paths=test_paths,
        analysis_paths=analysis_paths,
        docs_paths=docs_paths,
        target_path=target_path,
        clean_targets=clean_targets,
        log_path=log_path,
        modules_path=modules_path,
        quoting=quoting,
        models=models,
        on_run_start=on_run_start,
        on_run_end=on_run_end,
        archive=archive,
        seeds=seeds,
        packages=packages,
    )
    # 'profile'
    Profile.__init__(
        self,
        profile_name=profile_name,
        target_name=target_name,
        send_anonymous_usage_stats=send_anonymous_usage_stats,
        use_colors=use_colors,
        threads=threads,
        credentials=credentials,
    )
    self.validate()


# Traceback (PermissionError)
[Errno 13] Permission denied: '/.dbt'
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/dbt/main.py", line 76, in main
results, succeeded = handle_and_check(args)
File "/usr/local/lib/python3.7/site-packages/dbt/main.py", line 120, in handle_and_check
dbt.tracking.initialize_tracking()
File "/usr/local/lib/python3.7/site-packages/dbt/tracking.py", line 275, in initialize_tracking
active_user.initialize()
File "/usr/local/lib/python3.7/site-packages/dbt/tracking.py", line 51, in initialize
cookie = self.get_cookie()
File "/usr/local/lib/python3.7/site-packages/dbt/tracking.py", line 71, in get_cookie
user = self.set_cookie()
File "/usr/local/lib/python3.7/site-packages/dbt/tracking.py", line 62, in set_cookie
dbt.clients.system.make_directory(cookie_dir)
File "/usr/local/lib/python3.7/site-packages/dbt/clients/system.py", line 85, in make_directory
raise e
File "/usr/local/lib/python3.7/site-packages/dbt/clients/system.py", line 79, in make_directory
os.makedirs(path)
File "/usr/local/lib/python3.7/os.py", line 221, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/.dbt'

# Fixed code
def __init__(
    self,
    project_name,
    version,
    project_root,
    source_paths,
    macro_paths,
    data_paths,
    test_paths,
    analysis_paths,
    docs_paths,
    target_path,
    clean_targets,
    log_path,
    modules_path,
    quoting,
    models,
    on_run_start,
    on_run_end,
    archive,
    seeds,
    profile_name,
    target_name,
    config,
    threads,
    credentials,
    packages,
    args,
):
    # 'vars'
    self.args = args
    self.cli_vars = dbt.utils.parse_cli_vars(getattr(args, "vars", "{}"))
    # 'project'
    Project.__init__(
        self,
        project_name=project_name,
        version=version,
        project_root=project_root,
        profile_name=profile_name,
        source_paths=source_paths,
        macro_paths=macro_paths,
        data_paths=data_paths,
        test_paths=test_paths,
        analysis_paths=analysis_paths,
        docs_paths=docs_paths,
        target_path=target_path,
        clean_targets=clean_targets,
        log_path=log_path,
        modules_path=modules_path,
        quoting=quoting,
        models=models,
        on_run_start=on_run_start,
        on_run_end=on_run_end,
        archive=archive,
        seeds=seeds,
        packages=packages,
    )
    # 'profile'
    Profile.__init__(
        self,
        profile_name=profile_name,
        target_name=target_name,
        config=config,
        threads=threads,
        credentials=credentials,
    )
    self.validate()