### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
needed = query.all()
        assert needed == [orm_dag]
        orm_dag.has_import_errors = True
        session.merge(orm_dag)
        session.flush()
        query, _ = DagModel.dags_needing_dagruns(session)
        needed = query.all()
        assert needed == []
    @pytest.mark.parametrize(
        ("fileloc", "expected_relative"),
        [
            (os.path.join(settings.DAGS_FOLDER, "a.py"), Path("a.py")),
            ("/tmp/foo.py", Path("/tmp/foo.py")),
        ],
    )
    def test_relative_fileloc(self, fileloc, expected_relative):
        dag = DAG(dag_id="test")
        dag.fileloc = fileloc
        assert dag.relative_fileloc == expected_relative
    @pytest.mark.parametrize(
        "reader_dags_folder", [settings.DAGS_FOLDER, str(repo_root / "airflow/example_dags")]
    )
    @pytest.mark.parametrize(
        ("fileloc", "expected_relative"),
        [
            (str(Path(settings.DAGS_FOLDER, "a.py")), Path("a.py")),
            ("/tmp/foo.py", Path("/tmp/foo.py")),
        ],
    )
    def test_relative_fileloc_serialized(